OpenSSH SFTP:可以访问其他chroot用户文件的chroot用户

决定完全重新提出这个问题,以便不必再新build一个问题。

我目前有一个使用OpenSSH的SFTPfunction设置的SFTP服务器。 我的所有用户都被chrooted,一切正常。

我现在最需要的是一个用户,它不是root用户(因为这个用户不能拥有任何真正的SSH权力!),可以访问所有其他用户的chrooted dirs。 这个用户的工作是每隔一段时间抓取所有上传的文件。

截至目前的目录结构是:

/ home | _ / home / user1 | _ / home / user2 | _ / home / user3

将ChrootDirectory设置为/ home /%u

用户“adminuser”应该可以访问user1,user2和user3的目录,而不必访问/ home,或者至less不能访问/ home。

奖励积分的人可以告诉我如何让用户在/ home /%u中写入,而不必在自己拥有的目录中创build新的目录,而不是像/ home /%u(openssh chroot先决条件)。

创build一个新的主目录,例如/ chroothome。

让所有的用户在这个chroothome的主目录下生活。

chroot adminuser到/ chroothome。

对于其他所有内容,只需使用文件系统权限。

至于你的“奖金问题”,使用原生function是不可能的。 chroot用户无法写入根目录是一种devise的安全机制。 当然,你可以随时修改源代码。

不过,我怀疑你可以指定用户的主目录为/ user1,并且login时的工作目录是他们可以写入的目录。

在你的/ etc / ssh / sshd_config中添加这些行:

Subsystem sftp internal-sftp Match group SFTP-users ChrootDirectory /home/%u X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp 

然后更改用户主目录的所有者

 # chown root.root /home/user # usermod -d / user # adduser user SFTP-users 

重新启动ssh服务器守护进程

 #/etc/init.d/sshd restart 

1°)Sshd检查主目录是否由login的用户所有。2°)如果你使用chroot,sshd会检查每个目录的父目录是否由root拥有( http://www.tenshu.net/archives / 2008/10/09 / openssh-51-chrootdirectory-permissions-issue / )

如果你想chroot一个用户,并让他读取其他用户的chroot,这个用户的家必须是这些用户的chroot的父目录。 正因为如此,你会打破以前的两个规则。

AFAIK,唯一的解决办法是修补sshd 🙂