我正在设置一个 SFTP 服务器,多个不同的客户端将使用该服务器。
我的主要问题是,一个客户的员工绝对至关重要不要甚至可以看到其他客户端目录的目录名称。
现在用户janedoe
可以 chroot 访问/sftp/janedoe/home
.他们无法访问外部目录。
我需要janedoe
能够访问/sftp/projects/Walmart-ProjectABC
并且我不能已janedoe
查看目录/sftp/projects/Kmart-ProjectXYZ
。janedoe
将有几个同事需要访问同一目录,因此我不能只将该项目目录粘贴在他们的主目录中。
答案1
使用绑定安装构建每个用户可以看到的内容。
例如(在 Linux 下),chroot janedoe/sftp/janedoe
并授予她对该Walmart-ProjectABC
项目的访问权限:
mkdir /sftp/janedoe/Walmart-ProjectABC
mount --bind /sftp/projects/Walmart-ProjectABC /sftp/janedoe/Walmart-ProjectABC
如果您想让所有这些都静态,这可以是一行/etc/fstab
;如果您想让它们动态,则可以是在切换到用户之前运行的脚本。
作为安装点 ( ) 的目录/sftp/janedoe/Walmart-ProjectABC
不应由用户修改或移动,以避免在用户移动它或以某种方式在其中创建文件时必须处理错误。