背景:我的经理希望我为我们的 FTP 服务器创建一个管理帐户。通过 ftp 登录后,它应立即显示用户的所有主目录,并能够以任何可能的方式修改任何目录或文件。
最好的解决方法是什么?我计划将此 ftp 管理员 chroot 到 /home,但我不知道如何正确处理权限。也许可以创建一个名为 ftp_admins 的组,然后 chgrp /home 文件夹?但这样不会影响用户访问他们的文件夹吗?
任何帮助都将受到赞赏。
答案1
这是一件非常非常尖锐的事情,你应该告诉你的经理,互联网是这么认为的。
实现这一目标的最简单方法是从头开始。
创建一个目录/ftphome/
或类似的东西。将该目录的所有权分配给经理,chown boss.boss /ftphome/
在该目录下创建用户目录,并分配所有权username.boss
以将组所有权授予老板组。
然后将 vsftpd 中的 umask 设置为007
确保所有新文件都创建 770(这是一个掩码......),授予“boss”组中的任何人读/写/执行权限
答案2
将它们放在一个公共组中的计划可能是最好的。大多数情况下,用户不需要检查其主目录下的文件和目录的组成员身份,因此这不会造成干扰。
可能存在问题的一件事是,新目录没有适当的权限,无法使上述管理员用户访问文件。您必须检测这些目录的创建并修改其权限,或者您必须让 cron 定期执行修改权限的脚本。
另一个可能存在的问题是,由于这些文件归相关用户所有,因此他们可以自行修改权限,从而使管理员用户无法访问这些文件。
答案3
最终放弃了 vsftpd,因为它无论如何都不支持虚拟用户的虚拟配额。使用 pure-ftpd 解决了我所有的问题,它附带一个 pure-uploadscript 工具,该工具将在每个上传的文件上运行一个脚本。我当前的脚本将每个文件更改为由 ftpadmin 用户拥有。