NFSv4 ACL и ZFS

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
LordNicky
рядовой
Сообщения: 36
Зарегистрирован: 2012-11-09 1:18:14

NFSv4 ACL и ZFS

Непрочитанное сообщение LordNicky » 2015-01-16 13:33:35

Доброго времени суток!
Есть сетевая шара на 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?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

LordNicky
рядовой
Сообщения: 36
Зарегистрирован: 2012-11-09 1:18:14

Re: NFSv4 ACL и ZFS

Непрочитанное сообщение LordNicky » 2015-01-16 15:44:15

Похоже, что разобрался сам. Права, установленные 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
В таком виде всё корректно работает. Любопытно, что в мане про это ни слова. Бился на данным вопросом неделю, в результате через пару часов после публикации на форумах догнал сам. Ну чтож, тишина - спасибо и на этот раз ^_^