简短回答

简短回答

如果文件具有read用户的常规权限约翰write,并且还拥有用户的 ACL 权限约翰,在这种情况下会发生什么:

  • 是否仅应用常规权限(因此文件仅具有read权限)?
  • 或者仅应用 ACL 权限(因此该文件仅具有write权限)?
  • 或者是否会应用这两种权限(因此该文件将同时具有readwrite权限)?

答案1

简短回答

ACL 是传统的超集,因此您不能同时拥有两者(因为传统的是 ACL 的一部分)。

更长的答案。

首先让我们尝试一下。

#> chmod ug-w aab
#> setfacl -m u:me:w aab
#> getfacl aab
# file: aab
# owner: me
# group: me
user::r--
user:me:-w-                #effective:---
group::r--
mask::r--
other::r--

那么为什么user:me的ACL无效呢?

为了解释这一点,我们可以看看传统的权限。

如果我们有此处列出的文件

-r---w----  1 me me    0 Feb 21 09:41 abc

然后我可以读取它,但不能写入它。为什么是这样。

操作系统首先尝试将我与所有者匹配,然后是组,然后是其他人。我和主人很匹配。然后它应用这些权限。然后它不会合并我的组权限。

使用 ACL 时,额外的权限都是组权限的一部分,因此不会供所有者使用。

我认为 ACL 的解析方式是相同的:找到您所在的用户组,然后应用此权限。 (无许可合并)。

如果用户不同

如果我们这样做了#> setfacl -m u:anotherUser:w aab,那么您的权限将适用,因为首先找到此权限(针对该用户),并应用它。

相关内容