目录的有效组权限-setgid无效

目录的有效组权限-setgid无效

我有这个/srv目录,为了方便起见,我希望wheel组内的成员对其具有写访问权限,并且对于创建的任何文件和目录都可以间接继承该权限。

但是之后sudo chgrp wheel /srv && sudo chmod g+ws /srv,我仍然无法在下创建目录和文件/srv

$ mkdir /srv/mantis
mkdir: cannot create directory `/srv/mantis': Permission denied

检查 ACL表明,由于某种原因,/srv有效组权限仅为:r-x

$ getfacl /srv
getfacl: Removing leading '/' from absolute path names
# file: srv
# owner: root
# group: wheel
# flags: -s-
user::rwx
user:webmaster:rwx
group::r-x
mask::rwx
other::r-x

发生这种情况的原因是什么? 可能是当我为用户添加额外访问权限时webmaster(早在setgid尝试之前)我意外篡改了组 ACL?

答案1

setfacl按原因设置的掩码chgrp不会反映更改。您可以运行setfacl -m g::rwx /srv以设置组权限。

否则,如果您根本不需要高级 ACL,您可以删除所有规则,然后setfacl -b /srvand重新运行sudo chmod g+ws /srv

编辑前

从结果来看,getfacl该命令似乎sudo chmod g+ws /srv不起作用。似乎您正在sudo chgrp wheel /srv && sudo chmod g+ws /srv作为单个命令运行。如果sudo chgrp wheel /srv失败(无论出于何种原因,退出代码为非零),&&连接器将忽略之后的任何内容,因此sudo chmod g+ws /srv不会执行。

为了说明这一点,您可以运行cat NoSuchFile && echo "This message will be printed"echo本例中忽略了该命令。

您可以尝试分别运行sudo chgrp wheel /srvsudo chmod g+ws /srv并记下任何消息。或者,您可以尝试sudo chmod 2775 /srv应该正确设置权限的那个。

相关内容