我想了解一下如何使用CentOS中的权限系统来实现以下功能:
该系统有以下用户:
user1
user2
user3
以及以下目录结构..
/dir1
/dir2
/dir3
用户 2 执行 dir 2 中的文件,因此需要能够写入这些文件 用户 3 执行 dir 3 中的文件,因此需要能够写入这些文件
用户2应该不是能够修改 dir3 用户 3 应该不是能够修改dir2
当我需要用户 1 能够修改 dir2 和 dir3 时,问题就出现了。
答案1
试试这个,让我知道
更改文件的所有权
chown root:user1 dir1
chown root:user2 dir2
chown root:user3 dir3
更改文件的权限
chmod 764 user1
chmod 764 user2
chmod 764 user3
希望你有 root 权限,
如果没有则使用 sudo
您需要将用户添加到一个组中,例如 group1
groupadd group1
useradd -G group1 user1
useradd -G group1 user2
useradd -G group1 user3
现在您可以为 user1 执行 setfacl ACL 以使用 dir1 dir2 & dir3
setfacl -R g:group1:rwx
答案2
在没有花哨的 ACL 的情况下执行此操作的最简单方法是拥有两个单独的组:group2
和group3
。
- 用户
user1
和user2
应该是 的成员group2
且user1
和user3
应该是 的成员group3
。 - 那么
dir2
应该属于group2
并且dir3
应该属于dir3
。 - 两者
dir2
和 都dir3
应该由其组所有者可读可写,并且具有设置gid位设置以便使用包含目录的组所有权而不是创建用户的主要组来创建新文件。 - 最后,
dir1
每个人都应该可以遍历(但不是可读)。
在命令中:
groupadd group2
groupadd group3
usermod -a -G group2 user1
usermod -a -G group2 user2
usermod -a -G group3 user1
usermod -a -G group3 user3
chmod 0711 dir1
chgrp group2 dir1/dir2
chmod 2770 dir1/dir2
chgrp group3 dir1/dir3
chmod 2770 dir1/dir3