В Debian 7.0 я настроил списки управления доступом к файловой системе на моем монтировании
mx:/srv/www$ mount | grep acl
/dev/xvda on / type ext3 (rw,relatime,errors=remount-ro,acl,data=ordered)
Теперь я просто хочу, чтобы вновь созданные файлы и каталоги имели 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::r-x
group:www-data:r-x
mask::r-x
other::r-x
default:user::rwx
default:group::r-x
default:group:www-data:r-x
default:mask::r-x
default:other::r-x
Чтобы проверить, я сделал:
mx:/srv/www$ touch test
mx:/srv/www$ ll test
-rw-r--r--+ 1 hendry hendry 0 Mar 19 07:25 test
Я ожидал увидеть hendry: www-data во вновь созданном файле test
. Что мне не хватает?
Попробуйте запустить:
$ getfacl test
Вы должны увидеть что-то вроде:
# file: test
# owner: hendry
# group: hendry
user::rwx #effective: rw-
group::r-x #effective: r--
group:www-data:r-x #effective: r--
mask::r-x
other::r--
Возможно, я ошибся здесь, но главное в том, что group:www-data:r-x
должен существовать. Вот что default:group:$gid:rwx
синтаксис делает - он обеспечивает group:$gid:rwx
Запись ACL существует для созданного объекта.
Если вы хотите, чтобы ваши созданные файлы / каталоги / fifos / etc принадлежали группе, вы должны сделать каталог принадлежащим группе www-data и установить флаг setgid:
$ chown :www-data /srv/www
$ chmod g+s /srv/www