LordNicky
@LordNicky

Существует ли альтернатива setfacl в FreeBSD для применения nfsv4 acl?

Доброго времени суток!
Есть сетевая шара на samba4. Задача - установить права так, чтобы владелец папки мог делать в ней что угодно, а пользователи группы только просматривать имеющуюся и добавлять новую информацию(создавать новые каталоги и файлы), без права изменять или удалять имеющиеся. Сетевая папка располагается на ФС zfs со следующими опциями наследования:
aclmode=passthrough, aclinherit=passthrough
Что есть сейчас: на каталог пользователя выставляем права 770. Заходим по самбе - все видно, можем записывать и удалять любым пользователем из группы. Добавляем нужные права командой serfacl. По прежнему всё работает так, как будто мы никаких прав не добавляли. Создаем новую папку(неважно - через консоль или самбу). На папку по правилам ФС наследуются только те права, которые мы установили командой setfacl. В свежесозданной папке действуют те права, которые нам необходимы, т.е. пользователи из группы могут добавлять информацию, но не могут изменять или удалять имеющуюся. Теперь самое интересное. Это права доступа, установленные командой chmod+setfacl:
ls -l ./
drwxr-x---+ 6 LENCOR\test staff 6 15 янв 18:19 test
getfacl test/
# file: test/
# owner: LENCOR\test
# group: staff
owner@:rwxpDdaARWcCos:fdi---:allow
group@:----Dd-A-W-Cos:fdi---:deny
group@:rwxp--a-R-c---:fdi---:allow
everyone@:------a-R-c---:fdi---:allow
owner@:rwxp--aARWcCos:------:allow
group@:r-x---a-R-c--s:------:allow
everyone@:------a-R-c--s:------:allow

Это права доступа, которые автоматически наследовались на подкаталог при создании (в котором всё работает так, как нужно):
ls -l test/
drwxrwx---+ 2 LENCOR\test staff 2 15 янв 18:19 222
getfacl test/222/
# file: test/222/
# owner: LENCOR\test
# group: staff
owner@:rwxpDdaARWcCos:fd----:allow
group@:----Dd-A-W-Cos:fdi---:deny
group@:rwxp--a-R-c---:fd----:allow
everyone@:------a-R-c---:fd----:allow

Если я пытаюсь командами выставить права доступа, как во втором варианте, убирая лишние права командой setfack -x4 (5, 6), то получается следующее:
ls -l ./
d---------+ 2 LENCOR\test staff 2 15 янв 18:19 test
getfacl test/
# file: test/
# owner: LENCOR\test
# group: staff
owner@:rwxpDdaARWcCos:fd----:allow
group@:----Dd-A-W-Cos:fdi---:deny
group@:rwxp--a-R-c---:fd----:allow
everyone@:------a-R-c---:fd----:allow

При обнулении всех прав командой setfacl -b и применении только нужных четырех - результат тот же. В данном случае в каталог не может попасть даже владелец.

Вопрос: как правильно выставить права доступа, как во втором варианте и где я мог накосячить? Возможно есть какие-нибудь подробные маны по установке NFSv4ACL на фряхе?(man setfacl и handbook не предлагать - там на эту тему не очень то и написано) Есть ли альтернативы утилите setfacl?
  • Вопрос задан
  • 3367 просмотров
Решения вопроса 1
LordNicky
@LordNicky Автор вопроса
Разобрался сам. Права, установленные setfacl корректно транслируются в ls -l если не был установлен флаг "inherit_only". Т.е. мои политики должны выглядеть НЕ:
owner@:rwxpDdaARWcCos:fdi---:allow
group@:----Dd-A-W-Cos:fdi---:deny
group@:rwxp--a-R-c---:fdi---:allow
everyone@:------a-R-c---:fdi---:allow

А:
owner@:rwxpDdaARWcCos:fd----:allow
group@:----Dd-A-W-Cos:fd----:deny
group@:rwxp--a-R-c---:fd----:allow
everyone@:------a-R-c---:fd----:allow


В таком виде всё корректно работает.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы