SFTP – 允许用户只上传到www

Ubuntu服务器12.04

我需要允许用户offlineuser只能上传文件到var/www/mysite/web/目录。 该目录充当站点根目录以及上传位置(传统设置)。

在我的/etc/ssh/sshd_config文件中:

随着下面的评论,他们可以上传任何地方。 只要我取消注释,他们根本无法连接。

 AllowUsers offlineuser ubuntu Subsystem sftp internal-sftp Match Group sftponly ChrootDirectory /var/www/mysite/web/%u ForceCommand internal-sftp PasswordAuthentication no X11Forwarding no AllowTcpForwarding no 

offlineuser是sftponly组的成员

这取自: Chroot SFTP连接和OpenSSH SFTP chroot()与ChrootDirectory

UPDATE1

 :pam_unix(sshd:session): session opened for user offlineuser by (uid=0) : fatal: bad ownership or modes for chroot directory component "/var/www/mysite/" : pam_unix(sshd:session): session closed for user offlineuser 

所以,这是非常清楚的,但我真的不得不chown目录离线用户? 如果万维网数据要写入它(这可能是?),这不会造成问题吗?

从sshd_config手册页 :

指定要validation后chroot(2)的目录的path名。 path名的所有组件都必须是不能由任何其他用户或组写入的根拥有的目录。 在chroot之后,sshd(8)将工作目录更改为用户的主目录。

看来,所有的父目录必须只能以root身份写入,即使对于SFTP也是如此。 如果这是不可能的,我会build议将目录移动到别处(例如/home/web/offlineuser ),然后将其绑定到/绑定到位。

如果你改变chroot目录

 ChrootDirectory /var/www/mysite/web/ 

然后在/ etc / passwd中给用户一个/ testuser的主目录,那么你可以正确拥有/ var / www / mysite / web / testuser所拥有的/ var / www / mysite / web / testuser的。