我正在设置 vsftpd 服务器:
Linux 2.6.32-26-server #48-Ubuntu SMP Wed Nov 24 10:28:32 UTC 2010 x86_64 GNU/Linux
当我设置时chroot_local_user=YES
,没有任何效果(/
我登录时仍然可以看到)。 syslog 或 中没有任何内容/var/log/vsftpd.log
表明出了什么问题。 我知道我正在编辑正确的 conf 文件,并且当我重新启动守护进程时其他设置确实会生效,因为这些有效:
ssl_enable=YES
force_local_data_ssl=YES
force_local_logins_ssl=YES
知道哪里出了问题吗?谢谢。
编辑:
我touch
已将/etc/vsftpd.chroot_list
其设为空(没有 chroot 拒绝的用户),并添加了:
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
然后重新启动:
sudo /etc/init.d/vsftpd restart
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service vsftpd restart
Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the restart(8) utility, e.g. restart vsftpd
vsftpd start/running, process 5606
还是没效果。
答案1
文档没有非常清楚地说明如何执行此操作,并且如果不看整个配置文件就很难判断您遗漏了什么。
盲目猜测:
passwd_chroot_enable If enabled, along with chroot_local_user, then a chroot() jail location may be specified on a per-user basis. Each user's jail is derived from their home directory string in /etc/passwd. The occurrence of /./ in the home directory string denotes that the jail is at that particular location in the path. Default: NO
尝试将其设置为 YES。如果仍然不起作用,请:
- 将您的完整配置文件添加到您的问题中
- 显示你以哪个用户身份登录
- 解释一下你如何验证自己没有被 chroot
答案2
您可能还需要将 local_enabled 设置为 YES,具体取决于您如何设置您的帐户。