SFTP用户的文件/目录权限

在1.5周的Debian 6 VPS上使用SSH之后,我想通过SFTP上传文件。 我之前已经尝试过,但是使用root帐户,由于安全更改,SSH帐户无法使用。

所以我已经做了一个单独的用户,现在让我们叫他sftpuser ,谁属于组sftp 。 他在sshd_config中获得了一个特殊的条目:

Match Group sftp ChrootDirectory /var/www ForceCommand internal-sftp PasswordAuthentication yes 

所以,他很幸运,并不需要密钥文件来连接,但他仅限于/ var / www。 那么,这工作,我可以完美login,并查看所有文件。 但由于他们是根用户所拥有,他不能上传任何东西,这使得他毫无用处。

在我通过文件权限的野外旅程中,我已经阅读了大量的八进制数字组合和怪异的解决方法,但没有什么比较合适的。 如果我理解正确的话,chmod只能用来创build一个可写入某个用户(本例中是root ),group(猜测是什么,在这种情况下为root )或者其他的目录。 我不得不解决这个问题而不破坏PHP-FPM和nginx的'最好'的想法是将sftpuser添加到组。 即使我认为这将是一个坏主意,这应该不会造成太大的破坏,因为sftpuser是chroot,无法打开一个shell。 但是,无论如何,这并不起作用,我无法写入任何文件,甚至没有组中的sftpuser

也就是说,我真的可以帮助find正确的东西来用于我的目的。 我不希望像我这里写的文字墙壁,只是一点点的提示,指向正确的方向。

我所做的是为sftpuser创build一个home卷(我们称之为/ sftphome),它必须由root拥有,并具有以下权限和所有权:

/ sftphome

 drwxr-xr-x root root 

那么sftpuser的sftp主目录也必须由root拥有:

/ sftphome / sftpuser

 drwxr-xr-x root root 

然后创build一个sftpuser可以上传和下载的目录:

/ sftphome / sftpuser /上传

 drwx------ sftpuser sftpuser 

当然要确保/ sftphomeconfiguration正确:

 ChrootDirectory /sftphome 

这样做的最终结果是,当sftpuserlogin到sftp服务器时,该用户被引导到/ sftphome / sftpuser ,然后必须cd上传才能够上传和下载文件。