从chroot中排除一个用户

我在CentOS服务器上有一个chroot设置,(没有shell访问/严格sftp的chroot)。 仅供参考,文件夹是这样的:

home/sftp_users/%u (root:root 750) home/sftp_users/%u/input (site_user:sftp_users 770) home/sftp_users/%u/input/result (site_user:sftp_users 770) 

在我的sshd.conf文件中我有这样的:

 Subsystem sftp internal-sftp Match Group webrecom_sftpusers ChrootDirectory /home/sftp_users/%u AllowTCPForwarding no X11Forwarding no ForceCommand internal-sftp 

这几乎是我想要的。 如果您注意到上面我没有使用户的主home directory中的文件夹的所有者。 原因是我不希望他们能够删除这些目录或更改他们的权限。 否则,某个人有可能在某个时候把它弄糟。 他们仍然可以使用-r -w -e因为他们的团队。 虽然这主要是我想要的,因为他们写入input的能力,他们可以删除result目录。 我可以通过重新创build一个文件夹来解决这个问题。 PHP会在这些文件夹中查找文件来拾取并运行,然后返回报告。

问题是, site_user属于它自己的组site_user和在PHP中,我只能分配一个文件夹到用户所属的组。 如果我添加site_usersftp_users然后它卡在sftp_users监狱。

我想我可以build立由site_usersite_user组拥有的文件夹,并将权限设置为0777,但是:

  • 还有另一种方法来防止用户更改权限/删除我忽略的这些目录
  • 有没有办法将site_user添加到sftp_users但不能把它粘在监狱里

匹配可以采取多个条件。 尝试:

 Match Group webrecom_sftpusers, User !site_user