Рейтинг:0

Linux bash способ, которым непривилегированный пользователь может стать владельцем содержимого только одного конкретного каталога?

флаг in

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

На данный момент у меня есть администратор судо чаун, но я бы предпочел, чтобы владелец места назначения сделал это сам, без каких-либо дополнительных разрешений, необходимых этому пользователю. Допустим, первоначальный владелец — «палач», а конечный владелец должен быть «зрителем». Ни один из пользователей не находится в одной группе.

sudo chown -R аудитория: наблюдатели /usr/files/pathofdir Это не совсем правильно, потому что я не хочу, чтобы публика имела неограниченные права на использование chown.Моим первым предположением было попытаться добавить «аудиторию» в /etc/sudoers с разрешением на /usr/bin/chown и /usr/bin/chgrp. Но это слишком большая власть.

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

Как это сделать?

Рейтинг:1
флаг in

Вы можете указать полную команду в sudoers, с аргументами и всем остальным, и в этом случае пользователь будет иметь право запускать указанную команду только с указанными аргументами. Так это sudoers запись должна решить вашу проблему:

аудитория ВСЕ=/usr/bin/chown -R аудитория\:наблюдатели /usr/files/pathofdir

Тем не менее, я думаю, вам следует проверить ACL, так как я подозреваю, что вашу проблему будет легче решить с помощью ACL по умолчанию для каталога. Видеть эта почта для примера.

флаг in
У меня Ubuntu 20.4, и visudo отвергает синтаксис приведенного выше примера, но, как сказал Ласек, я все равно хотел ACL по умолчанию. Так что смотрите мой ответ ниже.
флаг in
Плохо, двоеточие - это разделитель команд, поэтому его нужно защищать. Я отредактировал свой ответ, так что теперь он содержит правильную запись `sudoers`.
Рейтинг:0
флаг in

@Lasek указал, что я, вероятно, хотел использовать ACLS. Кажется, это работает для меня:

sudo setfacl -RPdm пользователь: аудитория: rwX /usr/files/pathofdir
sudo setfacl -RPdm group:watchers:rwX /usr/files/pathofdir
sudo setfacl -RPm пользователь: аудитория: rwX /usr/files/pathofdir
sudo setfacl -RPm group:watchers:rwX /usr/files/pathofdir

Вероятно, существует более краткий синтаксис, но это мое первое использование setfacl

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.