我已运行以下脚本将权限设置为 /etc/nginx
#!/usr/bin/env bash
sudo chown -R root:root /etc/nginx
sudo chmod -R 0750 /etc/nginx
sudo setfacl -Rbk -m g:hugo: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:hugo:rwx
mask::rwx
other::---
为什么?
您看到的
ls
是 ACL 的mask
条目。从 开始man setfacl
,该mask
条目似乎反映了可以在 ACL 条目上设置的最大可能权限。您在示例中看到
ls
的默认组的访问权限root:rwx
是错误的,因为有效权限现在由 ACL 控制。