在我的configuration文件中,我有
local_root = /家庭/ $ USER
但$ USER似乎没有给我用户的login名。 当我尝试login并且无法更改到该目录时,它将其作为字面值$ USER。
这听起来像你正试图chroot用户到他们的主目录; 请在/etc/vsftpd/vsftpd.conf尝试此/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
我发现CentOS的示例configuration(上面引用的)引用了chroot_local_user ,但实际上并没有在configuration文件中提供它,这有点不直观。
更新:多解释一下:
如果chroot_local_user=yes则用户将被chroot加到他们的主目录,除非他们在chroot_list_file中列出(在这种情况下,他们可以正常访问整个文件系统)。
如果chroot_local_user=no那么用户不会被chroot加到他们的主目录,除非他们被列在chroot_list_file (在这种情况下,他们会得到chroot)。
因此,默认情况下chroot(这听起来像你想要完成的),设置chroot_local_user=yes 。 在chroot_list_file列出任何exception(你不需要chroot的用户)。
请注意,在这两种情况下,您都不必在没有FTP访问权限的情况下列出此文件中的用户。