我有一个运行 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
按照屏幕上的提示配置用户。