我们使用 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选项