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

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

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

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

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

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

решение1

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

sudo pkill -UPDATE_LOG <process-name>

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

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

решение2

Итак, я нашел ответ, изменив ключевые слова.

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

Шаг 1:

sudo visudo

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

user host=command

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

%group host=command

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

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

observing_user ALL=kill -USR1 *

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