我在 RHEL7 上托管了一个 vsftp 服务器。我有多个用户登录 vsftp 服务器。此 VSFTP 已 chroot。我的要求是一些用户应该登陆他们的主目录,其余的用户应该登陆他们的主目录内的特定子文件夹。进入子文件夹的用户应该能够进入他们各自的主目录。
john 的密码条目示例:
约翰:x:1234:123:测试帐户:/ftp/home/john/./test:/etc/ftponly
通过上述配置,当 john 登录 VSFTP 服务器时,他将被放置在其主目录中的“test”文件夹中。但是,当我执行“cd ..”时,他无法进入“/ftp/home/john/”文件夹。
我的要求: john 应该能够进入 /ftp/home/john/ 文件夹。但不是 /ftp/home/
vsftpd.conf
这是我的文件的内容:
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
local_enable=YES
allow_writeable_chroot=YES
dual_log_enable=YES
答案1
虽然/ftp/home/john/./test
是有效passwd
条目,但此处的点.
假定没有意义
-bash-4.1$ echo $HOME
/home/testuser/./test
-bash-4.1$ pwd
/home/testuser/./test
-bash-4.1$ cd ..
-bash-4.1$ pwd
/home/testuser
-bash-4.1$ cd test
-bash-4.1$ pwd
/home/testuser/test
所以用户的主目录john
并不/ftp/home/john/test
像/ftp/home/john
你想象的那样。为了允许用户john
访问,/ftp/home/john
您需要将其主文件夹设置为/ftp/home/john
(或更高)。在vsftpd
(大多数情况下)chroot 的用户无法到达比他们的家更高的地方。