我在 Debian Wheezy 机器上安装了 Pure-FTPD。因为我想让用户 chroot 到他们的主目录,所以我查看了 virtualchroot 功能。
经过一些配置后,我现在认为 PureFTPD 启动可以按预期工作(输出service pure-ftpd restart
):
Restarting ftp server: Running: /usr/sbin/pure-ftpd-virtualchroot -l pam -8 UTF-8 -u 1000 -E -A -O clf:/var/log/pure-ftpd/transfer.log -B
我可以看到-A
由文件/etc/pure-ftpd/conf/ChrootEveryone
内容产生的参数1
。
但奇怪的是,实际上没有用户被 chroot。就好像该-A
选项被默默忽略了一样。用户仍然可以向上遍历目录树。
守护进程独立启动,如 /etc/defaults/pure-ftpd-common 所示
STANDALONE_OR_INETD=standalone
VIRTUALCHROOT=true
,事实上我刚刚停止了 inetd 超级服务器并重新启动了 pure-ftpd,连接仍然有效。
我发现这线程,并且它肯定不是由任何超级服务器启动的。
编辑 1:我尝试寻找解决方法并找到了选项TrustedGID
。因此,我使用组 ID 0 作为受信任组,这意味着所有其他组都应被 chroot。但是,这也没有发生,因此不太可能是某种错误。