我已阅读,研究,testing,似乎仍然无法正确工作。 我在Debian上运行VSFTPD。 通过configuration一个testing帐户,将用户的主目录指向实际驻留在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服务器时,访问被拒绝。 那么,我在这里错过了什么? 在此先感谢您的帮助和洞察力。
当你设置chroot_local_user=YES时, chroot_local_user=YES的效果反转,它成为不限制在chroot上的用户列表。
所以从/etc/vsftpd.chroot_list中删除您的testing帐户的用户名,你应该没问题。
用man vsftpd.conf快速检查就可以解释:
chroot_list_enable
如果激活,您可以提供一个本地用户列表,这些用户在login时被放置在主目录的chroot()监狱中。 如果将chroot_local_user设置为YES,则含义稍有不同。 在这种情况下,列表变成了一个不被放入chroot()监狱的用户列表。 默认情况下,包含此列表的文件是/etc/vsftpd.chroot_list,但您可以使用chroot_list_file设置覆盖此文件。