У нас есть автоматический скрипт на одном из наших серверов, запускаемый пользователем-наблюдателем. Он должен сообщить другому сценарию, запущенному первичным пользователем, обновить файл журнала.

Код для этого: sudo kill -UPDATE_LOG pid

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

Я хотел бы сделать что-то вроде alias update_log='kill -UPDATE_LOG; grant update_log on observing_user

2 ответа2

0

вероятно, используя

sudo pkill -UPDATE_LOG <process-name>

вместо убийства будет достаточно ограничений для удовлетворения ваших потребностей?

Другой способ решить эту проблему - встроить команду, которую вы хотите предложить, с помощью sudo в пользовательский скрипт или exec для выполнения этого действия.

0

Хорошо, так что я нашел ответ после изменения моих ключевых слов.

Смотрите также:Как запретить пользователям sudo запускать определенные команды?

Шаг 1:

sudo visudo

Синтаксис такой:

user host=command

Это предоставляет sudo доступ к данной команде. Вы также можете сделать такие группы, как

%group host=command

Вы можете использовать ALL в любом из 3 «столбцов», чтобы применить это к любому хосту, любой команде или любому пользователю.

Мое решение было

observing_user ALL=kill -USR1 *

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .