如何将文件的权限授予多个组?

如何将文件的权限授予多个组?

我有一个练习来创建一个名为 Projekte 的目录,我应该为 Auftrag 和 Support 组授予 r 和 w 权限,但其他组仅授予 r 权限

我刚刚意识到这是不可能的。我能做些什么?

谢谢你的帮助

答案1

您无法通过创建新组来做到这一点,因为您需要一些用户具有读取权限,而一些用户具有读取/写入权限。除非您需要来自Auftrag和 的用户Support具有读/写和每个人否则具有读取权限,在这种情况下,您可以创建一个包含来自Auftrag和 的所有用户的组Support,并设置组写入和全局读取。

或者,假设您的文件系统支持它们,您可以使用扩展 ACL: https://wiki.archlinux.org/index.php/Access_Control_Lists

例如:

# setfacl -m "g:Auftrag:rw" /file/path

# setfacl -m "g:Support:rw" /file/path

答案2

我必须假设目标还包括执行位才能更改到目录。

成为 root 用户。

sudo -i

创建目录。 (root 用户是所有者和组所有者。)

mkdir Projekte

定义权限。让我们只允许 root 访问它,以突出 ACL 的影响。

chmod 0700

现在使用 ACL 增强标准权限。

setfacl -d -m g:Auftrag:7 Projekte
setfacl -m g:Auftrag:7 Projekte

setfacl -d -m g:Support:7 Projekte
setfacl -m g:Support:7 Projekte

setfacl -d -m o::5 Projeckte
setfacl -m o::5 Projeckte

上面,-m开关是掩码,开关-d使掩码成为目录中所有新文件系统对象的默认掩码。不需要使用八进制值。同样可以写成如下。

setfacl -d -m g:Auftrag:rwx Projekte
setfacl -m g:Auftrag:rwx Projekte

setfacl -d -m g:Support:rwx Projekte
setfacl -m g:Support:rwx Projekte

setfacl -d -m o::r-x Projeckte
setfacl -m o::r-x Projeckte

用户、组和其他掩码的工作方式相同:g:groupname:---或组合使用:u:username:---,g:groupname:---,o::---,其中o表示其他。不指定用户名或组名会将掩码应用于当前用户/组所有权。

请注意如何应用蒙版和默认蒙版。掩码(不带-d)适用于目录本身。掩码(带有-d)适用于目录中的所有新文件系统对象。这很容易忘掉这个

相关内容