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

Как использовать setfacl в наборе данных ZFS для установки эквивалента chmod 770 в стиле UNIX?

Я пытаюсь использовать setfacl чтобы установить разрешения для различных наборов данных ZFS, и я хочу, чтобы эти разрешения ACL были эквивалентны стилю UNIX chmod 770.

какой setfacl команда может выполнить это, и какие ACL должны getfacl отобразить, если бы я сделал это правильно?

Я использую FreeNAS 11.0 с Samba 4.6.4.

Примечание: следующее относится к системе Solaris, но результаты также должны работать в BSD (где вам нужно использовать getfacl/setfacl вместо того ls/chmod).


Разрешения по умолчанию для вновь созданного (текстового) файл являются:

   owner@:rw-p--aARWcCos:-------:allow
   group@:r-----a-R-c--s:-------:allow
everyone@:r-----a-R-c--s:-------:allow

Если вы используете chmod 0770 /path/to/file, ты получишь:

   owner@:rwxp--aARWcCos:-------:allow
   group@:rwxp--a-R-c--s:-------:allow
everyone@:------a-R-c--s:-------:allow

По сути, execute (x) добавляется для владельца и группы, read (r) удаляется для всех, а write (w) и append (p) добавляются в группу.


Для каталог, это выглядит так:

   owner@:rwxp-DaARWcCos:-------:allow
   group@:r-x---a-R-c--s:-------:allow
everyone@:r-x---a-R-c--s:-------:allow

И после модификации:

   owner@:rwxp-DaARWcCos:-------:allow
   group@:rwxp-Da-R-c--s:-------:allow
everyone@:------a-R-c--s:-------:allow

Здесь read (r) и execute (x) удаляются у всех, в то время как владелец и группа имеют те же разрешения, что и в случае с файлом, хотя с добавленным разрешением delete_child (D) (это происходит от каталога).