因此,在工作中,我被要求使用免费软件将我们的一些服务从 Windows 迁移到 Linux,包括代理、DNS 和 FTP。我还被要求尽量避免使用 GUI,所以我选择了 CentOS 7。
经过长时间的努力,我成功地启动并运行了 CentOS 7,同时运行了 vsftpd。我创建了一个管理员帐户,一切都很顺利。
我在复制实际 FTP 中的目录树时遇到了问题。我使用上述 FTP 将文件传输到我的 30 个客户。每个人都有一个按客户 ID 编号从 1 到 30 的文件夹,他们只能以完全权限访问自己的文件夹和子文件夹。这些客户端文件夹嵌套在“客户端”文件夹下,该文件夹由负责向每个客户端上传文件的区域管理。该区域应该具有对每个客户 ID 文件夹的完全访问权限。现在看起来像这样:
-FTP
-Clients
-01
-02
-##
-30
为了完成类似的任务,我创建了以下帐户:
adduser uploaders -d /home/clients
adduser clientname01 -d /home/clients/01
adduser clientname02 -d /home/clients/02
adduser clientname## -d /home/clients/##
adduser clientname30 -d /home/clients/30
并将他们囚禁在他们的 chroot 中
chroot_local_user=YES
当我登录该
uploaders
帐户时,我被锁定在 chroot 中,但无法访问编号的文件夹当我登录任何客户的帐户时,我正站在根目录上,可以访问那里的几乎每个文件夹。
实现我正在尝试的目标的正确方法是什么?
答案1
如果您使用设置用户的主目录adduser
,则无需 chroot - 您的用户将可以使用该local_enable
选项自动访问其主目录。
如果文件位于不同位置,只需将其更改home
为该位置即可。只要他们不希望ssh
进来,就不会有问题。
确保您的vsftpd.conf
文件具有:
anonymous_enable=NO
local_enable=YES
write_enable=YES
并且没有任何chroot
线条。如果您不希望用户通过 FTP 写入他们的主目录,则write_enable
应该如此。NO