`ls -al` 和 `getfacl` 的输出不一致

`ls -al` 和 `getfacl` 的输出不一致

我已运行以下脚本来设置 /etc/nginx 的权限

#!/usr/bin/env bash

sudo chown -R root:root /etc/nginx
sudo chmod -R 0750 /etc/nginx
sudo setfacl -Rbk -m g:baa:rwx /etc/nginx
sudo setfacl -R --mask -m g:www-data:rx /etc/nginx

ls -al但是,当我事后检查权限时,发现“组”的结果存在差异getfacl

$ ls -al /etc/nginx
total 24
drwxrwx---+   5 root root 4096 Mar 18 17:07 .

$ getfacl /etc/nginx
getfacl: Removing leading '/' from absolute path names
# file: etc/nginx
# owner: root
# group: root
user::rwx
group::r-x
group:www-data:r-x
group:baa:rwx
mask::rwx
other::---

为什么?

答案1

您看到的lsmaskACL 的条目。从 来看man setfacl,该mask条目似乎反映了可以在 ACL 条目上设置的最大可能权限。

进一步调整掩码条目的权限,使其包括受掩码条目影响的所有权限的并集

您在示例中看到的ls默认组的访问权限root:rwx是错误的,因为有效权限现在由 ACL 控制。

相关内容