我正在尝试将 ACL 扩展到正在父级下创建的子目录,但由于某种原因,我的一个组被切换到 #effective rx,并且掩码正在更改。有什么想法吗?是否有一些默认的 umask?
Administrator@MyServer ~
$ setfacl -m d:u:Someuser:r-- somedir
Administrator@MyServer ~
$ getfacl somedir/
# file: somedir/
# owner: Administrator
# group: None
user::rwx
group::r-x
group:user1:r-x
group:user2:rwx
mask:rwx
other:r-x
default:user::rwx
default:group::r-x
default:group:user1:r-x
default:group:user2:rwx
default:mask:rwx
default:other:r-x
-mkdir /somedir/somedir
Administrator@MyServer ~
$ getfacl somedir/somedir
# file: somedir/somedir
# owner: Administrator
# group: None
user::rwx
group::r-x
group:user1:r-x
group:user2:rwx #effective:r-x
mask:r-x
other:r-x
default:user::rwx
default:group::r-x
default:group:user1:r-x
default:group:user2:rwx
default:mask:rwx
default:other:r-x
答案1
您是否绝对确定您曾经使用过mkdir somedir/somedir
和没有使用过-p
类似的选项mkdir -p somedir/somedir
?
由于mkdir -p
在 2014 年之前发行的版本(coreutils < 8.22)上有一个严重的错误,请参见ACL 和 umask 之间的冲突
适用于子目录的 ACL 条目是default:
和mask
:
$ getfacl somedir/
default:group:user1:r-x
default:group:user2:rwx
default:mask:rwx
default:other:r-x
这默认值:掩码:rwx,因此子目录本来应该:
group:user1:r-x
group:user2:rwx
mask:rwx
但是mask是mask:r-x
,所以权限降低到rx:
group:user2:rwx #effective:r-x
mask:r-x
为了更好地理解 Unix 组权限和 ACL 之间的关系,请阅读为什么组上的 chmod(1) 会影响 ACL 掩码?
结论
mkdir -p
使用 ACL 时不要使用(除非您运行 Debian/Jesise、RHEL7……)chmod g+w somedir/somedir
使用或修复您的问题setfacl -m mask:rwx somedir/somedir