为 chroot 用户挂载共享目录

为 chroot 用户挂载共享目录

我在挂载时遇到了一个有趣的问题,但对我来说没有任何意义。基本上,我为 SFTP 用户设置了一个 chroot 环境,每个用户都有一个 chroot 目录,格式为“/sftp/username/files”。有一个名为“downloads”的 chroot 用户,其目录将包含一堆用于下载的文件。“downloads”用户可以上传/下载文件,但我还想与所有其他用户共享下载用户目录“/sftp/downloads/files”,让他们对该目录具有只读访问权限。根据我的研究,似乎可以使用 mount --bind 命令来实现这一点,如下所示:

mount --bind /sftp/downloads/files /sftp/user1/files
mount --bind /sftp/downloads/files /sftp/user2/files

在我运行 mount 命令之前,目录所有权如下:“/sftp/username”归 root 所有,“/sftp/username/files”目录归属于“sftpusers”组的相应 sftp 用户所有。

这是 /sftp 目录上的“ll”命令:

drwxr-xr-x  3 root root 4096 Mar 24 15:20 downloads
drwxr-xr-x  3 root root 4096 Mar 24 08:00 user1
drwxr-xr-x  3 root root 4096 Mar 24 08:00 user2

以下是每个 /sftp/username 目录上的“ll”命令:

ll /sftp/downloads
drwxr-xr-x 3 downloads sftpusers 4096 Mar 25 11:15 files

ll /sftp/user1
drwxr-xr-x 3 user1 sftpusers 4096 Mar 25 11:15 files

ll /sftp/user2
drwxr-xr-x 3 user2 sftpusers 4096 Mar 25 11:15 files

现在,运行之前列出的 mount 命令后目录所有权发生了以下变化:

ll /sftp/downloads
drwxr-xr-x 3 user1 sftpusers 4096 Mar 25 11:15 files

ll /sftp/user1
drwxr-xr-x 3 user2 sftpusers 4096 Mar 25 11:15 files

ll /sftp/user2
drwxr-xr-x 3 downloads sftpusers 4096 Mar 25 11:15 files

这就像每个目录的所有权都互换了。我能够将“downloads”/files 目录的所有权更改为由 downloads 所有,但当我修复“/sftp/user1/files”的所有权时,/sftp/downloads/files 所有权将再次更改为由 user1 所有。我不明白为什么会发生这种情况,也不知道该怎么办。

相关内容