具有 MySQL 身份验证 mod 的 ProFTPd 的 UID 和 GID

UID & GID for ProFTPd with MySQL auth mod

大家好!

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

我使用这些说明为 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 用户名、密码、主目录插入数据库。这将包括需要插入的任何 UID 和 GIU。
  2. 创建一个 beanstalkd 任务来为新 ftp 用户创建 homedir 并传递 SELECT 查询中使用的 ftp 用户名。
  3. FTP 服务器会检查 beanstalkd 并发现它有任务要执行。
  4. FTP 服务器将在数据库中查询与新 ftp 用户关联的详细信息。 (例如 homedir、UID、GID 等)
  5. FTP 服务器将创建新用户的 homedir 并将其添加到数据库中的 UID 和 GID。

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

  1. 新 ftp 用户的 UID 和 GID 应该是唯一的吗?
  2. 如果是这样,在 ProFTPD auth from MySQL 的上下文中,是否有一种简单的方法可以让 MySQL 到 AUTO_INCREMENT 新值开始分别是 5500 和 5500?

谢谢!

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

一般来说,最好为您的用户设置单独的 UID 和 GID 值。这有助于确保这些文件的文件系统 access/permissions 是 unique/separate。如果您为所有用户重新使用相同的 UID/GID,这就像让 一个 用户具有多个工作密码一样——对于文件系统,所有文件和目录都将是由同一用户拥有和访问,无论他们如何登录。错误的配置将允许一个用户访问另一个用户的文件,因为对于文件系统(只关心 UIDs/GIDs,而不关心名称),他们都是一样的。

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

希望对您有所帮助!