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

我有一个运行Ubuntu 10.04的VPS,我想给一个人SFTP访问一个目录,但阻止他们看到系统上的其他任何东西。 什么是最好的方法来拉断呢?

我认为从系统上的所有东西中删除“所有人”的权限,但是对于这个问题,这似乎是一个非常钝的工具(而且会导致其他问题) – 我希望这里有一个更好的select。

编辑 :我欣赏的答案! (我通过他们学习了一堆阅读/研究)。 我最终发现并使用了Linode的这个指南,因为它拼写了所有步骤: http : //library.linode.com/security/sftp-jails/

最好的方法是使用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 

编辑configuration:

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

如果你想要SSH的子系统的SFTP 在这里查看这个指南

如果你想用SSL层的FTP比ooshrobuild议是好的。

有了Ubuntu,你可以很容易地使用scponly

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

一旦安装和configuration完毕,您可以使用提供的脚本来创build用户帐户和监狱。

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

按照屏幕上的提示来configuration用户。