Разрешить разрешение для пользовательской команды bash без разрешения для базовой команды

0

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

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

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

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

Джек
источник
Продолжая искать ответ, нашел это: superuser.com/questions/735172/…
Джек,

Ответы:

0

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

sudo pkill -UPDATE_LOG <process-name>

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

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

tonioc
источник
0

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

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

Шаг 1:

sudo visudo

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

user host=command

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

%group host=command

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

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

observing_user ALL=kill -USR1 *
Джек
источник