SSH用户不能将他们的主文件夹以外的任何文件夹监禁

我需要一些帮助。

我试图将SSH用户监禁到自己的文件夹,以便他们可以在没有看到文件系统的情况下将SFTP转换成服务器

我有一个简单的指南在网上,并设法监禁一个用户到他们的默认家庭文件夹(/家庭/用户)。 但是,如果我尝试更改其主文件夹,则用户无法login。

我有2个用户:凯文和默认

cat /etc/passwd显示

 kevin:x:500:500::/home/kevin:/bin/false default:x:501:500::/var/www/vhosts/default:/bin/false 

和我的sshd_config文件看起来像

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

cat /etc/group显示

 sftponly:x:500:default,kevin kevin:x:501: default:x:502: 

有谁知道为什么用户凯文按预期工作,但用户默认无法login。

谢谢。

编辑

我编辑了我的密码文件,并将default:x:501:500::/var/www/vhosts/default:/bin/false更改为default:x:501:500::/home/default:/bin/false并且默认用户现在可以login。

这个问题似乎只是如果我想改变用户的家庭/ var / www / vhosts /用户发生

我猜这是SELinux阻止它。

要暂时禁用它以查看是否是问题,请执行setenforce 0将其设置为宽容模式。 在重新启动后或将标志切换回1后,它将重新打开。

要将其永久设置为宽容模式,请编辑/etc/selinux/config并设置SELINUX=permissive 。 如果这是最终用户的目标机器,我build议保持打开状态。 安装名为setroubleshoot的套件,并find一些关于如何使用捆绑的sealert命令的指南。 它会尝试智能地为您提供有关如何处理被SELinux阻止的项目的build议。 它也为您编写和编写策略,所以它非常适合初学者。

不仅用户的主目录,而且其所有组件都应该由root拥有。 在你的情况下,这包括所有这些目录: {/var, /var/www, /var/www/vhosts/default, /var/www/vhosts/default} 。 另外,这些目录不能被任何其他用户或组写入。

最后,如果你在强制模式下运行selinux ,请确保用户的主目录有正确的上下文设置。 最简单的方法是使用chcon工具(非持久性更改)或semanage (持久更改)。

用户主目录应该由root用户拥有