在我的配置文件中,我有
local_root=/home/$用户
但 $USER 似乎没有提供用户的登录名。当我尝试登录时,它将其视为 $USER,但无法更改到该目录。
答案1
听起来你正在尝试将用户 chroot 到他们的主目录中;请尝试这样做/etc/vsftpd/vsftpd.conf
:
chroot_local_user=yes
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list
chroot_local_user
我发现 CentOS 的示例配置(上面引用)引用了它,但实际上并没有在配置文件中提供它,这有点不直观。
更新:进一步解释一下:
如果chroot_local_user=yes
用户被 chroot 到他们的主目录,除非他们被列出chroot_list_file
(在这种情况下他们可以正常访问整个文件系统)。
如果chroot_local_user=no
这样,用户就不会被 chroot 到他们的主目录,除非他们被列出chroot_list_file
(在这种情况下,他们确实会被 chroot)。
因此,要默认 chroot(这听起来像您想要完成的),请设置chroot_local_user=yes
。在中列出所有例外(您不想 chroot 的用户)chroot_list_file
。
请注意,在任何一种情况下,您不必在此文件中列出没有 FTP 访问权限的用户。