如何限制 ftp 用户只能访问给定的子目录?

如何限制 ftp 用户只能访问给定的子目录?

我知道这个问题在 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并列出无法访问系统根目录的用户。不在该列表中的用户仍然可以访问根目录。

相关内容