如何从目录中删除 ACL 并恢复到通常的访问控制?

如何从目录中删除 ACL 并恢复到通常的访问控制?

我们使用 FreeBSD 10.3 的托管服务器,我们没有超级用户的权限。我们公司的网页使用服务器运行apache2。我们网页的前管理员似乎对目录设置了 ACL 权限,但我们想将其删除。假设该目录名为foobar.

现在结果ls -al foobar如下:

drwxrwxr-x+   2 myuser  another_user   512 Nov 20  2013 foobar

并且权限如下:

[myuser@hosting_server]$ getfacl foobar
# file: foobar/
# owner: myuser
# group: another_user
user::rwx
group::rwx
mask::rwx
other::r-x

这里我们要删除 ACL 权限和权限列表最后的加号。因此,我们做了

setfacl -b foobar

它消除了 ACL 管辖的特殊权限,但没有删除加号+

我们的问题是如何删除+权限列表中的加号,如“ls -al foobar”所示?

答案1

我们的问题是通过使用以下方法解决的:

setfacl -bn foobar

关键是我们还必须使用选项 -n... 从目录中删除 aclMask 的手册页setfacl如下所示:

 -n      Do not recalculate the permissions associated with the ACL mask
         entry.  This option is not applicable to NFSv4 ACLs.

我们不确定为什么这个选项有效,但它确实......


如果您d?????????在上述解决方案后获得许可,请尝试chmod -R a+rX下面的两条评论。

答案2

您应该尝试使用递归选项。

setfacl -R -b foobar

不需要-n选项

相关内容