我有一个 VSFTPD 设置,其中用户被 chroot 到他们的主目录。标准的东西。但这要求他们的所有主目录对他们来说都是不可写的(以避免安全问题)。没问题,如果他们想上传文件,他们可以将文件上传到可写的文件夹之内他们的 chroot。
但现在他们每次上传时都必须切换到该文件夹。如果我使用 VSFTPD 配置文件中的 local_root 选项将他们的默认登录位置移动到该可写文件夹,那么那成为他们的 chroot,我们又回到原点:它无法被写入。
我的问题是,如何将 VSFTPD 放置用户的默认位置移动到其 chroot jail 内的可写目录,而不使 chroot 目录本身可写?
答案1
使用 vsftpd 执行此操作只有一种方法,并且必须在系统密码文件中设置路径。不能在 vsftpd.conf 文件中设置路径。
在 /etc/vsftpd.conf 文件中,设置以下两个选项:
chroot_local_user=YES
passwd_chroot_enable=YES
您还必须更改用户的 unix 主目录以指示 chroot jail 的根目录。chroot jail 根目录将位于/./
主目录路径左侧的路径中。即,/ftphome/./home/user/
将 chroot jail 设置为,/ftphome/
而 jail 内的用户目录将是home/user
。您可以通过执行以下命令来执行此操作:
sudo usermod -d /ftphome/./home/user/ user
显然,chroot 目录和里面的用户目录应该按照正常的 chroot 准备进行设置。