【问题标题】:UID & GID for ProFTPd with MySQL auth mod带有 MySQL auth mod 的 ProFTPd 的 UID 和 GID
【发布时间】:2020-04-19 17:36:21
【问题描述】:

祝大家今天好!

我有一个带有 MySQL 8.0 和 ProFTPD 1.3.5e 服务器的 Ubuntu 18.04 LTS 服务器。

我使用这些说明为 ProFTPd 设置 MySQL 身份验证。

https://medium.com/@nico26deo/how-to-set-up-proftpd-with-a-mysql-backend-on-ubuntu-c6f23a638caf

而且效果很好!

上面的文章设置了第一个用户“test”,其 UID 为 5500,GID 为 5500。它说应该创建 FTP 用户目录并将其更改为 5500:5500。都很好。

它没有说的是当第二个和第三个以及后续用户出现时该怎么做。使用 INSERT 查询在数据库中创建新用户很容易,但是 UID 和 GID 对于新的 ftp 用户来说应该是唯一的吗?如果是这样,是否有一种简单的方法可以让 MySQL AUTO_INCREMENT 分别高于 5500 和 5500 的新值?

显然,在该查询之外,我需要一个辅助进程来创建目录并将其转换为数据库中正确的 UID 和 GID。我的想法如下:

  1. 将新的 ftp 用户名、密码、homedir 插入数据库。这将包括需要插入的任何 UID 和 GIU。
  2. 创建 beanstalkd 任务,为新的 ftp 用户创建 homedir,并传递 SELECT 查询中使用的 ftp 用户名。
  3. FTP 服务器会检查 beanstalkd 并发现它有任务要执行。
  4. FTP 服务器将查询数据库以获取与新 ftp 用户相关的详细信息。 (例如 homedir、UID、GID 等)
  5. FTP 服务器将创建新用户的主目录并将其更改为数据库中的 UID 和 GID。

所以为了让我的问题一清二楚:

  1. UID 和 GID 对于新的 ftp 用户应该是唯一的吗?
  2. 如果是这样,在来自 MySQL 的 ProFTPD 身份验证的上下文中,是否有一种简单的方法可以让 MySQL AUTO_INCREMENT 分别从 5500 和 5500 开始的新值?

谢谢!

【问题讨论】:

    标签: mysql authentication proftpd


    【解决方案1】:

    对于使用 MySQL 的自动递增,您可以在用户表中定义 UID 和 GID 列,如使用 AUTO_INCREMENT MySQL 关键字。

    一般来说,最好为您的用户设置单独的 UID 和 GID 值。这有助于确保对这些文件的文件系统访问/权限是唯一的/独立的。如果您为所有用户重新使用相同的 UID/GID,这就像让 one 用户拥有多个工作密码——对于文件系统,所有文件和目录都将归其所有,并且可以访问到同一用户,无论他们如何登录。错误的配置将允许一个用户访问另一个用户的文件,因为对于文件系统(只关心 UID/GID,而不是名称),它们都是相同的。

    至于创建主目录,这可以在 ProFTPD 本身中自动/完成,使用其 CreateHome 配置指令。

    希望这会有所帮助!

    【讨论】:

    • 不幸的是,我似乎在一个表中不能有多个 AUTO_INCREMENT 语句。我已经为从 1 开始编号的用户使用 AUTO_INCREMENT 作为 MySQL UID。但是 CreateHome 指令是一个可靠的建议。我已经添加了它,它工作得很好!谢谢!
    猜你喜欢
    • 2016-06-17
    • 2012-09-14
    • 1970-01-01
    • 2011-07-14
    • 1970-01-01
    • 1970-01-01
    • 2015-08-10
    • 1970-01-01
    • 2017-08-12
    相关资源
    最近更新 更多