如何限制Linux用户只能读取特定文件夹

如何限制Linux用户只能读取特定文件夹

我想创建一个只能访问以下目录而看不到其他内容的用户

/home/vehicles/ #read only
/home/images/  #read only
/home/dump/ #read and write

我使用了这个链接https://unix.stackexchange.com/questions/15360/how-to-add-a-ssh-user-who-only-has-permissions-to-access-specific-folder

所以我创建了一个名为 testserver 的用户组

 Match Group testserver
        ChrootDirectory %h
        AllowTCPForwarding no
        X11Forwarding no
        ForceCommand internal-sftp

以及这些文件夹的 chmod 如下所示

chmod -R 755 /home/vehicles/
chmod -R 755 /home/images/
chmod -R 765 /home/dump/

一切顺利,除了 testuser 仍然可以访问其他文件夹,我如何阻止该用户访问其他文件夹(即只能访问这三个文件夹)

答案1

好的,首先,将该目录结构更改为:

/home/testserver/vehicles
/home/testserver/images
/home/testserver/dump

然后执行

chown root.root /home/testserver /home/testserver/vehicles /home/testserver/images
chmod 755 /home/testserver
chown testuser.testserver /home/testserver/dump
chmod 775 /home/testserver/dump 

最后,将 ChrootDirectory 指令行/etc/ssh/sshd_config改为

ChrootDirectory /home/testserver

我还建议您大量阅读并复习 Linux 系统管理方面的知识,因为您的问题和您迄今为止尝试做的事情表明了“货物崇拜”管理——复制/粘贴高级管理技巧,但不了解它们的作用或它们如何实现,希望它们能达到您的要求。这可能非常很容易导致你不知道如何解决的灾难。

答案2

从组用户和任何其他组中删除 testuser,并使用 grsecurity 路径定义您的 RBAC 列表。

如果您打算使用 testuser 登录,则需要对 /bin 和其他权限(例如 /proc)的权限。

相关内容