chroot和sftp:目录所有权意外改变

我已阅读并遵循了几个使用chroot设置sftp的初始目录的问题和教程 。 我拥有chroot目录的正确权限和所有权。 我可以让新用户login,但是他们无法将文件传输到应该拥有的文件夹。


我想chroot sftpbackups组的成员。 在我的sshd_config文件中,我有以下。

 Subsystem sftp internal-sftp Match Group sftpbackups ChrootDirectory %h X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp 

首先,我创build了一个未添加到sftpbackups组中的用户testuser 。 主目录是/home/testuser/ /home/testuser/backups/ ,我想通过sftp使用子目录/home/testuser/backups/ 。 我可以使用sftp将文件传输到我的backups文件夹,例如

 sftp> ls -l drwxrwxrwx 2 testuser testuser 4096 Sep 25 00:09 backups sftp> put a.txt backups Uploading a.txt to /home/testuser/backups/a.txt a.txt 

当我将testuser添加到sftpbackups组时,问题出现了。

 sftp> ls -l drwxrwxrwx 2 1290 1291 4096 Sep 30 14:58 backups sftp> put a.txt backups Uploading a.txt to /backups/a.txt remote open("/backups/a.txt"): Permission denied 

我不知道为什么只有在添加到sftpbackups组后,目录所有权才会发生变化,我认为这与我为什么不能传输文件有关。


任何想法如何前进? 谢谢。 服务器是CentOS 6.8。

我在博客上find了答案。 我们需要告诉SELinux我们想通过SFTP将file upload到chroot。 它是默认只读的。

 setsebool -P ssh_chroot_rw_homedirs on