Как в sudoers проверять конкретное добавление ввода в скрипт

212
cyprian

У меня есть один скрипт, который принимает в качестве входного IP-адреса. У меня вопрос, могу ли я указать в sudoers, какой ввод можно добавить в мой скрипт. Теперь я делаю так:

 user ALL = !ALL, /bin/sh, /home/user/scripts/addIP.sh * 

но это позволяет любой ввод, я могу указать это? Я пытаюсь это:

 ussshnode ALL = !ALL, /bin/sh, /home/ussshnode/node_2fa_prod/scripts/addIP.sh [0-9]+.[0-9]+.[0-9]+.[0-9]+ 

но это не работает должным образом. Некоторые предложения?

0

1 ответ на вопрос

0
tonioc

1) подстановочные знаки спецификации команды не включают знак «+», но следующий синтаксис будет соответствовать вашим ожиданиям:

addIP.sh [0-9]*.[0-9]*.[0-9]*.[0-9]* 

2) предпочтительно помещать sudo'ed двоичные файлы / скрипты в место, доступное для записи только root.

3) Я думаю, что начальный «! ALL» в спецификации вашей команды бесполезен, и включение / bin / sh в sudoable команды позволит вашему пользователю выполнить что-либо от имени root, как только оно будет встроено в скрипт ...

=> поэтому я бы написал это так (и поместил скрипт по указанному пути):

user ALL = /usr/local/scripts/addIP.sh [0-9]*.[0-9]*.[0-9]*.[0-9]* 

Похожие вопросы