Я хочу, чтобы определенный пользователь рекурсивно менял владельца и группу всего содержимого определенного каталога, и только этого каталога. Каталог — это своего рода «входящие», куда служба записывает файлы и подкаталоги.
В настоящее время у меня есть администратор sudo chown
, но я бы предпочел, чтобы владелец назначения делал это сам, без того, чтобы у этого пользователя были какие-либо дополнительные разрешения, кроме требуемых. Допустим, первоначальный владелец — «headsman», а конечный владелец — «audience». Ни один из пользователей не находится в одной группе.
sudo chown -R audience:watchers /usr/files/pathofdir
Не совсем верно, потому что я не хочу, чтобы у аудитории были неограниченные полномочия для использования chown. Моей первой догадкой было попробовать добавить "audience" в /etc/sudoers с разрешением на /usr/bin/chown и /usr/bin/chgrp. Но это слишком много полномочий.
Я думал написать сценарий исключительно для аудитории, но не знаю, как сделать так, чтобы у этого сценария были нужные разрешения и ничего более.
Как лучше всего это сделать?
решение1
Вы можете указать полную команду в sudoers
, с аргументами и всем остальным, в этом случае пользователь будет иметь полномочия на выполнение указанной команды только с указанными аргументами. Так что эта sudoers
запись должна решить вашу проблему:
audience ALL=/usr/bin/chown -R audience\:watchers /usr/files/pathofdir
Однако я думаю, вам следует проверить ACL, так как я подозреваю, что вашу проблему можно проще решить с помощью ACL по умолчанию для каталога. Смотритеэта почтадля примера.
решение2
@Lasek указал, что я, вероятно, хотел использовать ACLS. Кажется, это работает для меня:
sudo setfacl -RPdm user:audience:rwX /usr/files/pathofdir
sudo setfacl -RPdm group:watchers:rwX /usr/files/pathofdir
sudo setfacl -RPm user:audience:rwX /usr/files/pathofdir
sudo setfacl -RPm group:watchers:rwX /usr/files/pathofdir
Вероятно, существует более краткий синтаксис, но это мое первое использованиеsetfacl