Я пытаюсь использовать 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) (это происходит от каталога).