Назад | Перейти на главную страницу

записи sudoers

Есть ли способ создать запись sudoers, которая позволяет выполнять только определенную команду без каких-либо дополнительных аргументов? Кажется, я не могу найти ресурс, который описывает, как сопоставление команд работает с sudoers.

Скажем, я хочу предоставить sudo для /path/to/executable arg.

Имеет ли запись подобное:

user ALL=(ALL) /path/to/executable arg

строго разрешить доступ sudo к команде, которая точно соответствует этому? То есть он не предоставляет пользователю привилегий sudo для /path/to/executable arg arg2?

Я нахожу следующее в man sudoers, рядом с определением Cmnd_List:

 A simple filename allows the user to run the command with any arguments
 he/she wishes.  However, you may also specify command line arguments
 (including wildcards).  Alternately, you can specify "" to indicate
 that the command may only be run without command line arguments.

Это могло бы означать, что конкретное разрешение "arg" отключит "arg arg2". С другой стороны, я видел некоторую несогласованность в том, как файл sudoers обрабатывается в разных ОС (например, Linux против Solaris). Поэтому вам следует протестировать свою собственную среду.

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

 #!/bin/bash
 /path/to/executable arg