Как в Linux bash непривилегированному пользователю стать владельцем содержимого только одного конкретного каталога?

Как в Linux bash непривилегированному пользователю стать владельцем содержимого только одного конкретного каталога?

Я хочу, чтобы определенный пользователь рекурсивно менял владельца и группу всего содержимого определенного каталога, и только этого каталога. Каталог — это своего рода «входящие», куда служба записывает файлы и подкаталоги.

В настоящее время у меня есть администратор 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

Связанный контент