Как получить setfacl для рекурсивной установки разрешений ACL в Linux?

20

Я настраиваю новый сервер и хотел, чтобы ACL попробовал использовать разрешения в стиле chown: chgrp: chmod.

Страница man для setfacl указывает, что параметр '-R' может использоваться для рекурсивной установки ACL для файлов и каталогов.

-R, --recursive Рекурсивно применять операции ко всем файлам и каталогам. Этот параметр нельзя смешивать с «--restore».

Если мой макет каталога выглядит так

test/
   subtest/
   subtest.txt

и я выполняю

setfacl -Rm d:u:foo:rwX test

ACL вступает в силу для каталога 'subtest', но не для файла subtest.txt.

Я думаю, что могу использовать find + exec, чтобы обойти его, но я планирую использовать этот сервер для обучения нескольких других администраторов, и я хочу сделать его как можно более простым, чтобы мы не зацикливались на некоторых из более продвинутых конвенций.

Благодарность

Джо Холлоуэй
источник

Ответы:

43

Пытаться:

setfacl -Rm u:foo:rwX,d:u:foo:rwX test

изменить текущий ACL, а также по умолчанию. Я полагаю, что «d:» влияет только на (d) ACL каталогов по умолчанию и оставляет файлы нетронутыми. Затем, если вы создаете новый файл в каталоге, он наследует ACL своего родительского каталога по умолчанию.

Приостановлено до дальнейшего уведомления.
источник
Это имеет смысл, даже если это кажется немного излишним
Джо Холлоуэй
1
Это работает для удаления контроля доступа, а также. Возможно что-то с эффектом: sudo setfacl -Rx g: gid path
почему смена мест между -Rи -mflags нарушает команду?
Пкарамол
@pkaramol: потому что -mпараметр принимает аргумент ( u:foo:rwX,d:u:foo:rwXв данном случае спецификацию ACL ), и переключение порядка параметров отделяет параметр от его аргумента. Может также случиться так, что setfaclв первую очередь ожидаются его основные параметры.
Приостановлено до дальнейшего уведомления.