Как получить 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в первую очередь ожидаются его основные параметры.
Приостановлено до дальнейшего уведомления.
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.