我已经阅读、研究和测试过,但似乎仍然无法使其正常工作。我在 Debian 上运行 VSFTPD。使用配置为将用户主目录指向实际位于 NAS 共享上的挂载点的测试帐户,例如 /home/ftp/NAS/UserHomeFolder,连接后,我可以将目录更改为 Linux 服务器的根目录并导航到 etc 文件夹、usr 等。在我的 vsftpd.conf 文件中,我有 chroot_local_user=YES,chroot_list_file=/etc/vsftpd.chroot_list 选项已启用,我正在使用的帐户列在 vsftpd.chroot_list 文件中。关于 PAM,我有 pam_service_name=vsftpd。ssl_enable=YES、allow_anon_ss=NO、force_local_data_ssl=YES、force_local_logins_ssl=YES。如果我使用 chsh -s /bin/nologin secureftptestaccount(我将 /bin/nologin 添加到 shell 列表中),则在尝试连接到 FTP 服务器时会拒绝访问。那么,我在这里遗漏了什么?提前感谢您的帮助和见解。
答案1
当你设置反转chroot_local_user=YES
的效果时chroot_list_file=
,它将成为不限于 chroot 的用户列表。
因此,从 /etc/vsftpd.chroot_list 中删除测试帐户的用户名就没问题了。
快速检查一下man vsftpd.conf
就可以解释:
chroot_list_enable
如果激活,您可以提供本地用户列表,这些用户在登录时将被放置在其主目录中的 chroot() jail 中。如果 chroot_local_user 设置为 YES,则含义略有不同。在这种情况下,列表将成为不应放置在 chroot() jail 中的用户列表。默认情况下,包含此列表的文件是 /etc/vsftpd.chroot_list,但您可以使用 chroot_list_file 设置覆盖它。