限制用户对多个目录的访问

限制用户对多个目录的访问

我正在寻找一种可能性来限制用户对其主目录和一些包含数据的其他文件夹的访问。

/home/user1,/数据/媒体

意识到这没什么大不了的,但是我怎样才能禁止用户1查看其他文件夹或文件?例如,默认情况下,所有用户都有权浏览几乎所有目录和文件。

例如,是否有可能禁止用户 1 查看其文件夹但不能浏览 /etc、/opt 等?

否则他将能够查看我们真正想要禁止的配置文件......

我们尝试使用 chroot,但在这种方法中他只能看到他的主文件夹……

非常感谢

答案1

我认为使用 chroot 是最好的选择。使用 mount --bind /source /home/user/dir 创建用户可以从 chroot jail 访问的目录“树”。

另一种方法是使用 chmod 和 chown 拒绝用户对系统其他部分的权限,但这会产生其他副作用,而且很可能会错过一些东西。

答案2

您可以使用访问控制列表 (ACL) 系统,该系统允许更细粒度的权限。相关命令是setfaclgetfacl

由于你没有指定你的发行版,这里有一些关于 ACL 的链接在 Debian 上以及RHEL/CentOS

答案3

默认文件夹权限为 755(其他人可读、可执行/可访问)。

您可以通过编辑文件 /etc/adduser.conf 来更改所有文件夹的默认权限 -

找到行:DIR_MODE=0755

要阻止其他人,请将其更改为:DIR_MODE=0750

要阻止同一组中的人员(请参阅 ls -l /home),请将其更改为:DIR_MODE=0700 当您创建新用户时,更改将生效。

您可以使用以下命令更改特定文件夹的默认文件/文件夹权限(即当您创建新文件时):

chmod g+s /folder/mypath #设置粘滞位

setfacl -d -mg::rwx /folder/mypath #设置组为 rwx 默认

setfacl -d -mo::000 /folder/mypath #相应设置其他权限

验证更改:

getfacl /文件夹/mypath

这是针对特定文件夹的

相关内容