限制 FTP 访问单个目录的最佳方法是什么?

限制 FTP 访问单个目录的最佳方法是什么?

我有一个运行 Ubuntu 10.04 的 VPS,我想授予某人对单个目录的 SFTP 访问权限,但阻止他们查看系统上的任何其他内容。实现此目的的最佳方法是什么?

我考虑过从系统上的所有内容中删除“所有人”的权限,但这似乎是解决这个问题的一个非常迟钝的工具(并且会导致其他问题) - 我希望这里有更好的选择。

编辑:我很感谢大家的回答!(而且我通过阅读/研究学到了很多东西)。我最终找到并使用了 Linode 的这份指南,因为它列出了所有步骤:http://library.linode.com/security/sftp-jails/

答案1

最好的方式是使用 ftps 和 chroot(vsftpd) 或带有 ssl(Apache2,nginx) 的 web-dav。

生成证书:

openssl req -x509 -nodes -days 365 -newkey rsa:1024  -keyout /etc/vsftpd/vsftpd.pem   -out /etc/vsftpd/vsftpd.pem

编辑配置:

 ssl_enable=YES
 rsa_cert_file=/etc/vsftpd/vsftpd.pem
 chroot_local_user=YES

答案2

如果你想要 SFTP(SSH 的子系统),请查看本指南 这里

如果您想要带有 SSL 层的 FTP,那么 ooshro 的建议就可以了。

答案3

在 Ubuntu 中你可以使用scponly相当容易

sudo apt-get install scponly
sudo dpkg-reconfigure -plow scponly

一旦安装并配置完成,您就可以使用提供的脚本来创建用户帐户和监狱。

cd /usr/share/doc/scponly/setup_chroot
sudo gunzip setup_chroot.sh.gz
sudo chmod +x setup_chroot.sh
sudo ./setup_chroot.sh

按照屏幕上的提示配置用户。

相关内容