如何在 Chrooted VSFTPD 中退出子目录并进入主目录?

如何在 Chrooted VSFTPD 中退出子目录并进入主目录?

我在 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 的用户无法到达比他们的家更高的地方。

相关内容