![vsftpd 中的 chroot 与 home_folder](https://linux22.com/image/788826/vsftpd%20%E4%B8%AD%E7%9A%84%20chroot%20%E4%B8%8E%20home_folder.png)
我正在使用 vsftpd,但似乎无法通过 vsftpd.conf 获得我想要的行为。如果您希望 /folder 成为更改根文件夹以禁止用户向上移动一个文件夹,但所有会话的起始目录都是 /folder/$USER,该怎么办?
#vsftpd.conf
user_sub_token=$USER
local_root=/folder
#user_config_dir=/etc/vsftpd/users
passwd_chroot_enable=YES
#hide everything
hide_file={.*}
如果我使用 passwd_chroot_enable=YES,那么它将覆盖 local_root=/folder 并将会话 chroot 到 /folder/$USER(/etc/passwd 中指定的主文件夹)。chroot 和会话的登录主文件夹不应该是两个完全不同的东西吗?为什么要这样把它们混在一起?我希望用户登录到他们的主文件夹,但只能返回一个文件夹。这样,ftp 会话中的路径将是 /username,而不仅仅是 /。
下面是它在 sftpd(sshd_config)中运行的一个示例:
Match Group mtlsftpprd001_edi-ftp
ChrootDirectory /folder
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp -l INFO -d %u
KerberosAuthentication yes