我知道这个问题在 StackExchange 上发布了很多次,但没有一个解决方案对我有用。
我在 ubuntu 上使用 vsftpd 服务器,我想限制用户对给定子目录的访问(只读)。我发现的大多数解决方案都说更改用户的主目录可以完成这项工作:
usermod -d /home/subdirectory <username>
之前的设置/etc/vsftpd.conf
:
local_enable = YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
并将用户名添加到/etc/vsftpd.chroot_list
.
无论如何,如果我使用浏览器,这效果很好。它会将我定向到给定的主目录,但我无法访问其父目录。
问题是当我使用 FileZilla 时。我直接连接到主目录,但我也可以查看和访问父目录(以及其中的文件)。
我还尝试了一些其他解决方案,使用sftp
编辑文件/etc/ssh/sshd_config
和使用internal-sftp
,但也不起作用。
答案1
我设法通过设置找到了这个问题的解决方案:
chroot_local_user=NO
vsftpd.chroot_list
并列出无法访问系统根目录的用户。不在该列表中的用户仍然可以访问根目录。