为什么为用户设置 acl 会改变 ls 输出中的组权限?

为什么为用户设置 acl 会改变 ls 输出中的组权限?

我试图弄清楚为什么 ls 命令的输出发生了变化。我的意思是文件的组权限。

我创建了一个名为“file”的文件并更改了它的所有者和组:

[root@training group3]# touch file
[root@training group3]# ls -la file
-rw-r--r--. 1 root root 0 Sep  8 15:29 file
[root@training group3]# chown uczen file
[root@training group3]# chgrp group3 file
[root@training group3]# ls -la file
-rw-r--r--. 1 uczen group3 0 Sep  8 15:29 file
[root@training group3]# getfacl file
# file: file
# owner: uczen
# group: group3
user::rw-
group::r--
other::r--

然后我为用户“ula”添加了额外的 rwx 权限:

[root@training group3]# setfacl -m u:ula:rwx file
[root@training group3]# getfacl file
# file: file
# owner: uczen
# group: group3 
user::rw- 
user:ula:rwx 
group::r-- 
mask::rwx 
other::r--

我的问题是,为什么 ls -la 命令的输出(如下)现在显示该组的“rwx”,而上面 getfacl 显示的是“r--”。为什么通过 setfacl 我只为某些用户 (ula) 添加了权限,而该组的权限(似乎?)却发生了改变

[root@training group3]# ls -la file
-rw-rwxr--+ 1 uczen group3 0 Sep  8 15:29 file

答案1

我不记得在哪里找到了这个理由的解释,但它基本上是为了避免意外。

大多数人习惯于用三个集合来ls描述全部任何人都可以获得访问权限。因此,如果“组”列保留其原有含义,则可能会造成意外的安全漏洞。例如,您有此文件...

-rw-rwxr--+ 1 uczen group3 0 Sep  8 15:29 file

...并且你想限制除了主人之外的任何人因此你运行chmod go-w,并得到以下结果:

-rw-r-xr--+ 1 uczen group3 0 Sep  8 15:29 file

现在,如果你很着急,你可能没有注意到+ACL 的标志,或者不知道它的含义。如果 ACL 允许其他人写入该文件,那么最终的权限会比预期的更开放。

请注意,这不仅适用于人类,也适用于程序。例如,某些程序ssh会检查 Unix 权限位,并要求组/其他人根本没有权限。如果文件具有宽松的 ACL,ssh则不会知道。(即使有人更新了 OpenSSH 以了解 ACL,旧版本仍然不知道它们。)

因此,POSIX ACL 有一个特殊mask:条目来设置最大限度授予默认组的所有权限到所有 ACL 成员,并且 Unix 权限的“组”字段将更改为显示的值,mask:而不是 Unix 组。例如,如果您执行chmod g=rx,则实际上将设置mask::rx

所以如果你看到rw-r--r--+那里,你可以肯定没有人可以写入该文件,而不管存在哪些 ACL,并且实际上无需检查它们。类似地,如果程序看到具有权限 0600 的文件,它也可以确定这一点,而无需了解有关 POSIX ACL(以及未来的 RichACL、NFSv4 ACL 或其他类型 - 如果它们遵循这种特殊行为)的特殊知识。

请注意,getfacl输出仍然将默认组条目列为group::r--。如果您真的想更改该特定条目,则需要使用setfacl

也可以看看:

答案2

上述帖子中的链接已失效,这个链接有不同的答案:https://www.usenix.org/legacy/publications/library/proceedings/usenix03/tech/freenix03/full_papers/gruenbacher/gruenbacher_html/main.html

因此,acl 掩码显示在组权限字段中,而不是显示的组权限。

这是一个更好的解释: https://unix.stackexchange.com/questions/65888/setfacl-incorrectly-changes-group-permissions/498907#498907

相关内容