Я хочу добавить запись в мои suoders, чтобы позволить одному пользователю запускать команду с одним аргументом без опций.
# tail -1 /etc/sudoers
ALL ALL = (:tool) NOPASSWD: /bin/echo [a-z]*
$ sudo -g tool /bin/echo abc def
abc def
$ sudo -g tool /bin/echo -abc def
[sudo] password for user:
Могу ли я сделать это с помощью sudoers sytnax? Или мне нужно создать вспомогательный скрипт?
[a-z]*
уже тот аргумент, который я хочу. Так что это переменный аргумент. (Я использую / bin / echo только для тестирования.)Ответы:
Насколько мне известно, вы не можете передавать некомандные аргументы в sudo, если этот аргумент меняется.
Вы можете указать что-то вроде этого:
Это позволило бы пользователю подключиться к некоторому файлу, но не к другим файлам.
Если вам нужно передать переменную, я рекомендую скрипт-обертку.
Вот пример оболочки rsync:
https://sites.google.com/site/beingroot/articles/useful-scripts/wrapper-script-to-use-rsync-via-sudo
Если вы ищете в Google sudo wrappers, вы можете найти еще много примеров.
Обязательно жестко запишите все пути и запустите проверку работоспособности на входе, если пользователю нельзя доверять.
источник