setfacl不能在我的Web目录上工作

Debian 7.0上,我已经在我的mount上安装了文件系统访问控制列表

mx:/srv/www$ mount | grep acl /dev/xvda on / type ext3 (rw,relatime,errors=remount-ro,acl,data=ordered) 

现在我只是想新创build的文件和目录具有www-data组。

 sudo setfacl -Rm d:g:www-data:rX,g:www-data:rX /srv/www/ 

现在它有以下设置:

 mx:/srv/www$ getfacl . # file: . # owner: hendry # group: root user::rwx group::rx group:www-data:rx mask::rx other::rx default:user::rwx default:group::rx default:group:www-data:rx default:mask::rx default:other::rx 

为了testing,我做了一个:

 mx:/srv/www$ touch test mx:/srv/www$ ll test -rw-r--r--+ 1 hendry hendry 0 Mar 19 07:25 test 

我期待在新创build的文件test看到hendry:www-data。 我错过了什么?

尝试运行:

 $ getfacl test 

您应该看到如下所示的内容:

 # file: test # owner: hendry # group: hendry user::rwx #effective: rw- group::rx #effective: r-- group:www-data:rx #effective: r-- mask::rx other::r-- 

我可能在这里得到了一些错误,但主要的是那个group:www-data:rx应该存在。 这就是default:group:$gid:rwx语法的作用 – 它确保创build对象上存在一个group:$gid:rwx ACL条目。

如果您希望创build的文件/目录/ fifos / etc属于该组,则必须创buildwww-data组拥有的目录,并设置setgid标志:

 $ chown :www-data /srv/www $ chmod g+s /srv/www