使用 mod_sql 进行 proftp 用户和组设置的最佳实践

使用 mod_sql 进行 proftp 用户和组设置的最佳实践

我正在运行 proftp,但不确定如何正确配置用户和组。

在我的 proftpd.conf 中我配置了:

# Set the user and group that the server runs as
User                proftp
Group               proftp

这将影响系统用户,proftpd服务正在运行。

mod_sql有相同设置的选项,对我来说似乎加倍了:

# The SQLDefaultGID directive configures the default GID for users. 
# This value must be greater than any configured SQLMinUserGID. Default: 65533
SQLDefaultGID xxxx


# The SQLDefaultUID directive configures the default UID for users. 
# This value must be greater than any configured SQLMinUserUID. Default: 65533
SQLDefaultUID xxxx

还有运行该用户的 proftpd 服务,我可以使用顶部

是否存在最佳实践,如何设置这些值以实现最佳安全性?

答案1

这些设置没有直接关系,除此之外两者都可能导致以该用户身份运行的 proftpd 进程出现。

第一个控制主进程在使用完整的 root 权限初始化之后切换到哪个用户 ID,以便能够获得其所需的所有权限。

其他 (SQL) 设置是默认值,只有当用户通过 mod_sql 进行身份验证并且用于该身份验证的查询不返回该信息时,这些默认值才会起作用。因此,它们是否被使用取决于您的 SQL 设置。如果它们适用于此类通过 SQL 身份验证的用户,则处理用户会话的进程将使用该 UID/GID 运行 - 操作系统会使用这些进程执行文件系统权限检查,并将它们用作新创建的文件和文件夹的默认所有者/组。

如何设置任何非系统身份验证(例如 SQL)取决于您的需要。

如果数据库中的所有用户都已 chroot 到某个不同的目录,并且没有 shell 用户或类似用户,那么如果他们共享一个用户 ID/组 ID(您可能还会将其定义为操作系统用户/组),以便使用某个已知名称在 shell 中列出文件和进程,则可能没问题且方便。同样适用于分配给用户的一些共享的只写、只读甚至读写目录,在这种情况下,所有用户都具有相同的权限是可以的或希望的。

如果您想在用户之间共享一些数据,或者他们或其中一些用户需要通过 FTP 或 shell 等访问他们有权限访问的文件。您可能希望拥有唯一的用户 ID 和一些用户单独或通常分配到的组。但在这种情况下,您要么需要另外将用户创建为系统用户,要么指示系统也使用 SQL 用户数据库,要么您必须处理在操作系统级别分配的不同数字 ID。也可以将 UID 用作某种主要组,这样具有相似或相同权限的用户就可以共享一个 UID。

最终,这实际上只取决于您想要的结果 - 以及用户(除 root 之外)如何访问系统。以及您是否已经有一些想要采用的默认设置,而不是在没有真正需要的情况下一直使其不同。

相关内容