Unix &引用;安装--bind";为用户删除目录

Unix &引用;安装--bind";为用户删除目录,unix,server,centos,sftp,Unix,Server,Centos,Sftp,我有一个使用nginx运行的多个站点的服务器设置 /var/www/site1.com /var/www/site2.com 我想创建chroot用户,所以我创建了一个组和用户 addgroup sftpgroup adduser sftpuser1 -G stfpgroup 在我的sshd_配置中,我更新了: Subsystem sftp internal-sftp Match Group sftpgroup ChrootDirectory /home ForceComm

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

/var/www/site1.com
/var/www/site2.com
我想创建chroot用户,所以我创建了一个组和用户

addgroup sftpgroup
adduser sftpuser1 -G stfpgroup
在我的sshd_配置中,我更新了:

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,而不是使用根登录创建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\u配置中采取的步骤:

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

一切似乎都正常运行。

我将/var/www的所有者更改为sftpuser1,也将/var/www/site1.com的所有者更改为sftpuser1,但用户仍然看不到它。