Как использовать setfacl в наборе данных ZFS для установки эквивалента chmod 770 в стиле UNIX?
Я пытаюсь использовать setfacl
установить разрешения для различных наборов данных ZFS, и я хочу, чтобы эти разрешения ACL были эквивалентны UNIX-стилю chmod 770
,
Какие setfacl
команда может выполнить это, и какие ACL должны getfacl
показать, если я должен был сделать это правильно?
Я использую FreeNAS 11.0 с Samba 4.6.4.
1 ответ
Примечание: следующее из системы 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) (это происходит из-за того, что он является каталогом).