我刚刚安装vsftpd
并创建了一个新用户:sudo useradd new_user -m
。然后我取消了以下行的注释/etc/vsftpd.conf
:
chroot_local_user=YES
允许用户仅查看(访问)她/他的主目录。
然后我重新启动了 vsftpd。
问题:当我通过该新用户ssh
或ftp
客户端连接时,新用户可以看到(访问)每个计算机目录,并且我希望她/他看到只有她/他的主目录。
我使用的是 Ubuntu 14.04
答案1
尝试
passwd_chroot_enable=yes
passwd_chroot_enable
如果与 chroot_local_user 一起启用,则可以根据每个用户指定 chroot() jail 位置。每个用户的 jail 都来自 /etc/passwd 中的主目录字符串。主目录字符串中出现的 /./ 表示 jail 位于路径中的特定位置。
另请注意,AFAIR vsftp 必须以 root 身份运行才能让任何 chroot 设置生效!
也可以看看
作为启动用户运行
[...] 具体来说,当设置此选项时,vsftpd 不会/无法使用 chroot 技术来限制文件访问(即使由 root 启动)。 [...]
答案2
抱歉,我没有 Ubuntu 14.04 中未修改的 /etc/vsftpd.conf 副本可供比较。也许这会有所帮助。
如果您已chroot_list_enable
激活,您可以提供本地用户的列表,这些用户在登录时会被放置在其主目录中的 chroot() 监狱中。
如果 chroot_local_user 设置为 YES,含义略有不同。在这种情况下,该列表将成为不被放置在 chroot() 监狱中的用户列表。默认情况下,包含此列表的文件是 /etc/vsftpd.chroot_list,但您可以使用设置覆盖此chroot_list_file
设置,该设置的手册页摘录如下。
chroot_list_file
该选项是包含本地用户列表的文件的名称,这些本地用户将被放置在其主目录的 chroot() 监狱中。这chroot_list_enable
仅当启用该选项时,该选项才相关。如果启用该选项chroot_local_user
,则列表文件将成为不放入 chroot() 监狱的用户列表。
Default: /etc/vsftpd.chroot_list
资料来源: