是的,ACL:s允许对不同的用户或组自由设置不同的权限。IIRC平常组的权限限制设置权限的组和用户可以通过具有ACL的:S(如图mask
中的getfacl
),但setfacl
如果添加权限应面对这一切。
但是在某些情况下,您需要询问权限集是否有意义。
我有3个具有这些所需权限的
用户
。...- user1 rwx -user2 rw_
-user3 r__
您可以使用ACL:s来实现此功能,或者(大约)使用通常的Unix权限来实现此功能,方法是使user1成为文件的所有者,使user2成为该组的成员,并让其他用户(包括user3)具有读取权限。虽然如此,每个人(有权访问目录)也将具有读取权限。
让我们考虑一下这些权限的含义。您有一个可以读取的用户,另一个可以读取和写入的用户。那是完全正常的。这些用户均无权执行该文件,但随后,第三个用户也应该能够执行该文件。
在我看来,这没有多大意义。可以读取文件,复制(*),将其标记为可执行并运行它的任何用户,都无权执行原始文件。只有部分可执行文件通过suid具有提升的特权时,对某些用户却对其他用户却没有执行访问权限才有意义。但是,在这种情况下,您也不应该让其他用户对该文件具有写权限。
从同样的意义上说,user4 with -wx
和user5 with --x
对我来说没有意义。如果只允许添加附加内容,则只写访问可能有意义,但是权限系统的粒度不够。
(*除非他们无法在任何地方写东西)
但是,如果删除该x
位的怪异要求,则会剩下一个文件,其中user1和user2应该具有写访问权,而user3应该具有读访问权。使用传统模型,一个作者和多个读者会很容易,但是这种情况将需要技巧来将文件权限与包含目录的权限结合在一起。幸运的是,在许多情况下,一个拥有更多权限的用户就足够了。
不需要执行位,这看起来就像使用ACL:s的情况。但是有了它,这个例子对我来说似乎很复杂。