SFTP 限制用户只能访问几个目录

SFTP 限制用户只能访问几个目录

我运营一个游戏服务器,我想让几个人访问服务器以帮助开发。我试图让他们只能访问这些目录

/var/www/Update
/root/gamed/config

每个用户将被放置在一个名为的组下,devs其主目录位于/home/username并且sshd_config我有该组的以下内容

Match group devs
    ChrootDirectory %h
    ForceCommand internal-sftp
    AllowTcpForwarding no

我尝试创建一个到的符号链接/var/www/Update,但是当我以该组下的用户身份登录时,devs它不起作用。

答案1

您可以尝试将该文件夹作为 BIND 安装到用户的主目录中。

对于用户 foo:

# mkdir -p /home/foo/Update /home/foo/GameConfig
# mount --bind /var/www/Update/ /home/foo/Update
# mount --bind /root/gamed/config /home/foo/GameConfig

在您的 /etc/fstab 中,您可以添加

/var/www/Update /home/foo/Update           bind    defaults,bind 0 0
/root/gamed/config /home/foo/GameConfig    bind    defaults,bind 0 0

在启动时挂载。

这些应该比符号链接更灵活,尤其是在使用 chroot 时。只需确保您的权限正确即可。当然,您需要为每个用户执行一次此操作。

参考文献:

http://docs.1h.com/Bind_mounts

https://fermilinux.fnal.gov/documentation/tips/mount-bind-chroot

相关内容