我有一台服务器,多个用户可以通过 sftp 访问。他们没有 ssh 访问权限,并且通过在文件ChrootDirectory /home/%u
中设置将他们限制在其主目录中/etc/ssh/sshd_config
。我希望一个用户能够访问包含另一个用户上传的文件的整个目录。我尝试创建一个符号链接:ln -s /home/user2/files /home/user1/other_files
但是当用户 1 登录时,他们可以看到链接但不能导航到它。如果我通过 ssh 进入框,我可以使用 other_files 符号链接查看上传的文件,但 sftp 用户不能(他们在访问时收到权限错误)。
我可以允许这些用户自动共享文件,同时仍将它们包含在他们的主目录中吗?我知道符号链接指向他们目录之外的路径,我认为这导致了权限问题。我无法手动移动文件 - 上传是自动的并且经常发生,所以我需要用户 1 能够在文件上传后立即看到它们。如果我重新创建具有相同主目录的用户并调整其各自上传目录的权限,那么用户 1 是否可以获取文件?理想情况下,用户 2 不应访问用户 1 的任何文件,但如果必须发生这种情况,它对我来说仍然有效。
答案1
一些未经测试的随机想法:
您是否尝试过将 user2 chroot 到 user1 所 chroot 目录的子目录?
如果他们没有 SSH 登录或使用其他服务,重叠可能不会导致任何问题 :-)
也许您还可以使用粘滞位来防止用户 1 损害用户 2 的 chrooting 环境?
最后,如果你必须在两个独立的 chrooted 主目录之间连续复制文件,请查看inotify
。还有一个inotify-tools
看起来很方便的包