扩展权限 - 设置 acl 后,组无法写入

扩展权限 - 设置 acl 后,组无法写入

我想用设定值dir为用户组设置权限。我做了这样的事情:

mkdir /Employee
chgrp employeers /Employee
setfacl -m d:g::rwx /Employee

现在,当我尝试创建一个文件(来自该组的成员的用户)时,我收到有关“无权限”的错误。

root@debian:~# ls -la /Employee
all 8
drwxr-xr-x+  2 root employeers 4096 maj 21 14:50 .
drwxr-xr-x  23 root root       4096 maj 21 14:50 ..

我究竟做错了什么?

答案1

d是 的缩写default。默认权限和实际权限是独立的。再次运行 setfacl 命令(不带 )d:,那么权限应该按需要工作。我假设您想要这两个命令的效果。

的输出getfacl可以向您建议这个结论,通过

  1. 显示default:展开
  2. 显示不包含“default”的原始访问控制条目,表明您所做的条目有一些不同。

反过来,+的输出ls -l显示存在 ACE,它们允许基本模式之外的访问(标准 POSIX ACE 无法拒绝您所看到的基本模式允许的访问)[1]。在第二个 setfacl 命令之后,您会注意到基本模式更改为rwxrwxr-x。这是因为employeers是文件的主要组,并且 setfacl 避免创建重复条目。


[1] Windows 和 NFSv4 ACL 允许拒绝条目。许多人认为这是一个复杂性陷阱,包括 nfs4_acl 的联机帮助页。当然,这意味着 ACL 顺序很重要。显然,Windows GUI 将它们更改为“首选”顺序,首先明确拒绝条目,最后继承条目。

相关内容