![登录时自动切换到 chroot jail 中的子文件夹](https://linux22.com/image/720373/%E7%99%BB%E5%BD%95%E6%97%B6%E8%87%AA%E5%8A%A8%E5%88%87%E6%8D%A2%E5%88%B0%20chroot%20jail%20%E4%B8%AD%E7%9A%84%E5%AD%90%E6%96%87%E4%BB%B6%E5%A4%B9.png)
我正在设置一个 FTP 服务器来替换旧的 Windows 服务器安装。我在 Ubuntu 16.04 上使用 vsftpd。
公司外部有多个用户(自动化测试系统),我们希望使变更透明化 - 无需对客户端机器进行任何更改
我已经关注这指导并设置虚拟用户和 chroot jail。这工作正常,当我使用 Filezilla 登录时,我可以看到我已成功 chroot 到虚拟用户的主目录 ( home/vftp/$USER
)。
但是。为了防止越狱,这个目录必须是不可写的,所以我创建了一个home/vftp/$USER/uploads
具有写权限的子目录。因为我不想在客户端机器上进行更改,所以我需要让他们uploads
登录时更改到这个目录,这样他们只需登录+上传,而不必更改目录。
我知道我可以允许可写的根目录(因此不需要子文件夹)allow_writeable_chroot=YES
,但由于这是一台面向外部的机器,所以这并不是一个好主意。
有没有办法可以将用户置于 chroot jail 中,但将他们的工作目录切换到子目录?
答案1
如果您可以设置用户主目录,则可以passwd_chroot_enable=YES
在 中指定vsftpd.conf
主目录,例如/home/vftp/USER/./uploads
中/etc/passwd
。
它将创建 chroot jail/home/vftp/USER
并使用uploads
子目录作为用户HOME
目录。