我正在尝试在我没有 root 访问权限的机器上设置一些 vsftpd 实例。身份验证应通过带有 pam_listfile 的 PAM 完成,如下所示:
pam_listfile.so item=group sense=allow file=/path/filename onerr=fail
我可以要求管理员为我设置一个 PAM 服务并包含该行,但他不愿意为我的 6 个 vsftpd 实例创建 6 个 PAM 服务,我确实需要为每个 vsftpd 服务器设置不同的 /path/filename。
有没有办法解决这个问题?我可以不使用绝对路径作为参数吗?
(我知道正确的解决方案是使用一个 vsftpd 实例并正确设置虚拟用户。但不幸的是,我必须使用我所拥有的工作,并且用户已经存在于 Active Directory 中,并且使用另一个 PAM 服务对系统进行了身份验证。)
您更好的答案可能是从 vsftpd 迁移到 proftpd,这可以支持无需 PAM 集成的虚拟用户的需求。在您的 /etc/proftpd.conf 中,您将包含以下行:
group.ftp 文件只是 'ftp' 和 'nobody' 的标准组设置,您的 passwd 文件将为所有条目分配相同的 user:group。您只需指定用户名、密码和登录目录(shell 使用 /sbin/nologin)。如果您的管理员会为您准备好基础工作,并允许您拥有/编辑密码文件,则只需 5 分钟即可完成设置。
好吧,不幸的是答案是vsftpd无法做到这一点。
与其使用文件,不如在 PAM 文件中指定组是否有帮助?这样,您可能不需要许多平面文件。(取决于你的意图。)
如何将 FTP 限制为特定的本地组?