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


29

我们使用的是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”所示?


getfacl表示不是ACL。但是ls显示+。您确定每次都看同一个文件吗?(这通常是我的原因)
ctrl-alt-delor

@richard是的,绝对是同一个文件。
Taiki Bessho

Answers:


27

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

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以下两条评论。


这就是我的文件:d?????????很奇怪
JREAM '18

1
更新:这解决了它chmod -R a+rX的资本X
JREAM

@JREAM您使用什么Linux系统?
Taiki Bessho

我有同样的D ????????? Ubuntu 16中的问题。奇怪的。
TonyG

3

奇怪...无法重现:

ls -l | grep foobar
drwxr-xr-x+ 2 maulinglawns maulinglawns 4096 jan 24 14:25 foobar

setfacl -b foobar/
ls -l | grep foobar
drwxr-xr-x 2 maulinglawns maulinglawns 4096 jan 24 14:25 foobar

不幸的是,我现在无法访问BSD进行测试。


系统信息:

Distributor ID: Debian
Description:    Debian GNU/Linux 8.7 (jessie)
Release:    8.7
Codename:   jessie

实际上,我无法在Ubuntu服务器16.04.1上重现...
Taiki Bessho

最后,我能够删除加号,setfacl -bn foobar但是我不知道该n选项为什么起作用。
Taiki Bessho
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.