linux/setfacl - устанавливает все текущие / будущие файлы / каталоги в родительском каталоге на 775 с указанным владельцем / группой

У меня есть каталог под названием "члены", и под ним есть папки / файлы. Как я могу рекурсивно установить все текущие папки / файлы и любые будущие созданные там файлы по умолчанию с разрешениями 775 и принадлежать соответственно владельцу / группе nobody/admin? Я включил ACL, смонтировал, но не могу получить команду setfacl, чтобы сделать это правильно. Есть идеи, как этого добиться?

4 ответа

Решение

На самом деле я нашел кое-что, что до сих пор делает то, что я просил, поделившись здесь, чтобы любой, кто сталкивается с этой проблемой, мог попробовать это решение:

sudo setfacl -Rdm g:groupnamehere:rwx /base/path/members/
sudo setfacl -Rm g:groupnamehere:rwx /base/path/members/

R является рекурсивным, что означает, что ко всему в этом каталоге будет применено правило.
По умолчанию d означает, что для всех будущих элементов, созданных в этом каталоге, эти правила применяются по умолчанию. м необходимо добавить / изменить правила.

Первая команда предназначена для новых элементов (отсюда d), вторая команда предназначена для старых / существующих элементов в папке. Надеюсь, это поможет кому-то, потому что это немного сложно и не очень интуитивно понятно.

Чтобы пойти с вашим принятым ответом...

Вы можете объединить эти команды вместе как:

sudo setfacl -Rm d:g:groupnamehere:rwx,g:groupnamehere:rwx /base/path/members/

Setfacl на Linux имеет -d а также -k опции для управления разрешениями по умолчанию, которые, вероятно, то, что вы ищете (см. man для получения дополнительной информации).

Легко рекурсивно устанавливать простые разрешения UNIX по требованию соответствующим образом авторизованного пользователя, разрешений каталогов и файлов. Невозможно автоматически навязать это.

Вы можете указать пользователям использовать набор umask 0002, и это помогает создавать новые файлы в 0775 (в зависимости от приложения). Но это не подлежит исполнению.

Насколько я понимаю, ACL не наследуются в системах UNIX/Linux. Они устанавливаются по требованию.

Что касается владения файлами / каталогами, вам здесь не повезло.

Что касается владения файлом / группой каталогов, то при установке бита set-gid каталога (т. Е. G +s в DIRECTORIES) это приводит к наследованию владения группой.

В таких ситуациях я выполняю периодический скрипт корневого cron, который сбрасывает несоответствующие права / права доступа в стандарт в таких каталогах.

Другой (НЕ РЕКОМЕНДУЕМЫЙ) процесс должен иметь тот же идентификатор пользователя, который будет использоваться при работе с этими файлами. Это может быть достигнуто путем входа пользователя в систему под своим собственным UID, а затем с помощью sudo или su для запуска в качестве идентификатора. Это все еще не на 100%, особенно в отношении ACL и битов разрешений.

Другие вопросы по тегам