我需要允许不受信任的用户SFTP访问其Web服务器根目录下的特定目录。我不希望他访问系统的任何其他部分(包括网络的其余部分),所以我想到使用OpenSSH的 ChrootDirective
。基本上类似于所描述的方法 这里 。
但是,似乎没有办法做到这一点,同时允许Web服务器(或git部署脚本)写入该目录,因为只要我这样做,我得到一个 fatal: bad ownership or modes for chroot directory component "/srv/www/"
错误。
我曾想过在其他地方创建目录 mount --bind
它,但限制似乎适用于chrooted目录,而不仅仅是它的父母,所以我再次遇到同样的问题。
我知道这是一个安全的事情,但这在那里并不真正相关:
- 其他用户是可信的(好吧,相对而言,他们无论如何也无法添加suid文件)
- 不受信任的用户只有SFTP访问权限,而不是SSH,所以他们不能以任何方式运行任何东西
那么,我忽略了什么?出于那种混乱的任何理智方式? (最好不要移动到FTP或在两个目录之间设置incron / rsync。)
/home/jdoe/srv-www/downloads
..同时 其他 用户也需要能够访问该目录。