Назад | Перейти на главную страницу

unix / setfacl: установить acl каталога по умолчанию для правильного наследования разрешений

У меня есть несколько репозиториев svn в / projects / svn, которые должны быть доступны для записи двумя пользователями, моим (unix) и wwwrun (apache, для svn через http)

вновь созданные папки и файл должны быть доступны для чтения / записи обоими пользователями

Я поигрался с setfacl, но не смог заставить его работать так, как мне нужно

моя попытка была следующей:

unknown:/projects/svn # setfacl -b .
unknown:/projects/svn # setfacl -m u:unix:rwx,u:wwwrun:rwx,m:rwx .
unknown:/projects/svn # setfacl -dm u:unix:rwx,u:wwwrun:rwx,m:rwx .
unknown:/projects/svn # getfacl .
# file: .
# owner: unix
# group: users
user::rwx
user:wwwrun:rwx
user:unix:rwx
group::r-x
mask::rwx
other::r-x
default:user::rwx
default:user:wwwrun:rwx
default:user:unix:rwx
default:group::r-x
default:mask::rwx
default:other::r-x

unknown:/projects/svn # su -s /bin/bash wwwrun
wwwrun@unknown:/projects/svn> md test
wwwrun@unknown:/projects/svn> getfacl test
# file: test
# owner: wwwrun
# group: www
user::rwx
user:wwwrun:rwx                 #effective:r-x
user:unix:rwx                   #effective:r-x
group::r-x
mask::r-x
other::r-x
default:user::rwx
default:user:wwwrun:rwx
default:user:unix:rwx
default:group::r-x
default:mask::rwx
default:other::r-x

wwwrun@unknown:/projects/svn>

как вы можете видеть, мой пользователь (unix) имеет только разрешения r-x (как действующие)

ну, мне надо было просто прочитать инструкцию ...

https://web.archive.org/web/20151220084629/http://turing.suse.de/~agruen/acl/linux-acls/online/
Раздел "Как работают ACL"

мой групповой бит был ограничительным (r-w), который ограничивал маску до r-x, и впоследствии названные пользователи в моем ACL не могли писать

на самом деле это довольно просто :)

Я не могу воспроизвести то, что вы получаете; Я получаю ожидаемое поведение независимо от того, включаю я m: rwx или нет. Это на Linux Ubuntu 10.04 LTS (Lucid Lynx) с ядром 2.6.32-24-generic, файловой системой ext4 и setfacl v. 2.2.49: (Пользователи 'bhm' и 'test')

$ pwd
/data/musikk/dir
$ setfacl -b .
$ setfacl -m u:bhm:rwx,u:test:rwx,m:rwx .
$ setfacl -dm u:bhm:rwx,u:test:rwx,m:rwx .
$ getfacl .
# file: .
# owner: bhm
# group: bhm
user::rwx
user:bhm:rwx
user:test:rwx
group::r-x
mask::rwx
other::r-x
default:user::rwx
default:user:bhm:rwx
default:user:test:rwx
default:group::r-x
default:mask::rwx
default:other::r-x

$ su -s /bin/bash test
Password: 
test@hva:/data/musikk/dir$ mkdir testdir
test@hva:/data/musikk/dir$ getfacl testdir
# file: testdir
# owner: test
# group: test
user::rwx
user:bhm:rwx
user:test:rwx
group::r-x
mask::rwx
other::r-x
default:user::rwx
default:user:bhm:rwx
default:user:test:rwx
default:group::r-x
default:mask::rwx
default:other::r-x

Проблема в том, что маска по какой-то причине не установлена ​​по умолчанию. Я не понимаю, почему это происходит, но, возможно, лучше не устанавливать. Попробуйте пропустить m: rwx out, а затем попробуйте.