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

时间:2017-04-18 11:23:20

标签: unix server centos sftp

我有一个服务器设置,其中有多个站点使用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

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

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

当我卸载文件夹时,它再次访问stfpuser1。

2 个答案:

答案 0 :(得分:0)

如果/ var / www /的所有者是root用户而其他人没有权限从中读取内容,则其中的所有目录都不会对他们可见。

答案 1 :(得分:0)

我能够这样做,以下是在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

所有人似乎都应该工作。