安全的SFTPconfiguration,允许SFTP用户写访问

我试图在Ubuntu 12.04上设置OpenSSH以允许以下操作

  • 用户只能使用SFTP(无shell访问)
  • 用户可以写入(上传)文件
  • 访问是安全的,使用户不能查看其他用户的文件,也不能危害服务器

为此,我试图设置Chroot

https://help.ubuntu.com/community/SSH/OpenSSH/Configuring

http://www.serverubuntu.it/SFTP-chroot

不幸的是,我似乎碰到了一个砖墙,总结如下:

这是ChrootDirectory的所有权问题,sshd将拒绝sftp连接到被设置为chroot的所有拥有所有权/ sshd不认为安全的目录的帐户。 sshd明显严格的所有权/许可要求规定,chrootpath中的每个目录必须由root拥有,且只能为所有者写入。 因此,例如,如果chroot环境位于用户的主目录中,则/ home和/ home / username必须由root拥有,并且具有沿755或750(组所有权应允许用户访问)的权限。

https://wiki.archlinux.org/index.php/SFTP-chroot

“必须由根拥有,只能为所有者写”似乎转化为“只能由写入”

这似乎限制了只需要下载文件的用户的chroot的效用。

我试图

  • 将主目录组所有权更改为sftpusers (我创build的组,其用户是其成员)
  • 将文件权限从755更改为775以允许组写入

当我这样做,我不能再用SFTPlogin。

更改所有权和许可权恢复了login的能力。

如何以安全的方式安装SFTP,以便用户可以将file upload到自己的主目录?

我刚刚提出这个问题,我find了一个解决scheme。

在chroot目录创build一个目录,例如

/家/ myuser的/传输

该目录可以由用户写入。