"mount --bind" 为用户消失目录

"mount --bind" disappear directory for user

我的服务器设置有多个站点 运行 nginx

/var/www/site1.com
/var/www/site2.com

我想创建 chroot 用户,所以我创建了一个组和用户

addgroup sftpgroup
adduser sftpuser1 -G stfpgroup

在我的 sshd_config 我更新了:

Subsystem sftp internal-sftp
   Match Group sftpgroup
   ChrootDirectory /home
   ForceCommand internal-sftp
   X11Forwarding no
   AllowTcpForwarding no

我可以通过 sftp 连接 sftpuser1 并查看主目录,现在我希望用户可以访问位于

的网站文件夹
/var/www/site1.com

所以我通过 sftp 连接 sftpuser1 并创建了一个文件夹 /home/sftpuser1/sit1.com,然后用 root 登录我创建了 mount:

mount --bind /var/www/sit1.com /home/sftpuser1/sit1.com

现在,当我使用 stfpuser1 的 sftp 登录时,文件夹“/home/sftpuser1/sit1.com”消失了 但是当我用 root 登录时,我可以看到用户目录中的文件夹及其显示 site1.com 的内容。

我检查了文件夹权限已更改为 root:root,我更改为 sftpuser1:sftpuser1 但文件夹仍然没有出现。

当我卸载文件夹时,它再次对 stfpuser1 可见。

如果/var/www/的所有者是root,而其他人没有权限读取,那么里面的所有目录对他们都是不可见的。

我能够这样做,这是它在 sshd_config 中采取的步骤:

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

比我用以下方法创建的用户:

useradd -g sftpgroup -d /var/www/site1.com site1user

此时我确保 /var/www/site1.com 归 root

所有
chown root:root /var/www/site1.com

我创建了另一个用户可以写入的目录

mkdir /var/www/site1.com/http_docs

比我更改用户的权限:

chown site1user:sftpgroup  /var/www/site1.com/http_docs

比我设置的用户密码:

passwd site1user

一切似乎都在正常工作。