我遇到了删除权限的ACL。
我的SSH默认用户是ddn和Apache用户www-data 。
我设置了如下的setfacl命令:
setfacl -mu:www-data:rwx,u:ddn:rwx shared/web/cache setfacl -Rdm u:www-data:rwx,u:ddn:rwx shared/web/cache
但是,如果我尝试用find命令删除此文件夹中的某些文件,我被拒绝了权限:
$ find shared/web/cache/ -type f -atime +70 -delete find: cannot delete `shared/web/cache/e/f/7/d/7/ef7d7d26367b934f6965b6492b7183058669c80f.jpeg': Permission denied find: cannot delete `shared/web/cache/f/e/7/f/0/fe7f09691670a1762c925d705135dc455752fb85.png': Permission denied find: cannot delete `shared/web/cache/f/b/9/d/7/fb9d77e331ff45de1468ac584fa57e0c3aa6477a.png': Permission denied find: cannot delete `shared/web/cache/f/1/e/f/9/f1ef953fde22f5d60f93dcc178130a894c2878f0.png': Permission denied find: cannot delete `shared/web/cache/f/0/c/2/1/f0c21c21ae7f95d712dbe2c9255429022e33f31f.jpeg': Permission denied find: cannot delete `shared/web/cache/2/f/8/f/7/2f8f78653021fffb99817b6a48c4d629a7de0aa6.png': Permission denied find: cannot delete `shared/web/cache/2/f/9/d/7/2f9d7d22832a3517598bb61df2572869c30f7630.png': Permission denied
与简单的rm命令相同的错误。
当我尝试获取其中一个文件的ACL信息时:
$ getfacl shared/web/cache/e/f/7/d/7/ef7d7d26367b934f6965b6492b7183058669c80f.jpeg # file: shared/web/cache/e/f/7/d/7/ef7d7d26367b934f6965b6492b7183058669c80f.jpeg # owner: www-data # group: www-data user::rw- user:www-data:rwx #effective:rw- user:ddn:rwx #effective:rw- group::rx #effective:r-- mask::rw- other::r--
最后一个文件夹:
$ getfacl shared/web/cache/e/f/7/d/7/ # file: shared/web/cache/e/f/7/d/7/ # owner: www-data # group: www-data user::rwx user:www-data:rwx #effective:rx user:ddn:rwx #effective:rx group::rx mask::rx other::rx default:user::rwx default:user:www-data:rwx default:user:ddn:rwx default:group::rx default:mask::rwx default:other::rx
我想我错过了setfacl命令的重要选项。 你有这个问题吗? 如何解决?
谢谢。
用于将ACL权限循环并有效地设置到目录中。 您必须按顺序使用下面的命令。
setfacl -Rdm u:www-data:rwx,u:ddn:rwx shared/web/cache
(只会为将来的文件)
setfacl -Rm u:www-data:rwx,u:ddn:rwx shared/web/cache
(现有文件和目录)