У меня есть команда, которую я запускаю через sudo. Для этой команды необходимо, чтобы ее рабочий каталог соответствовал каталогу, в котором она установлена. Пользователь, вызывающий sudo, не имеет прав в этом каталоге, поэтому я не могу cd
заранее.
Так что в основном мне нравится включать в / etc / sudoers что-то вроде:
appuser localhost = (appowner) NOPASSWD: cd /opt/app/bin \; ./binary
Я знаю, что могу использовать сценарий-оболочку для binary
но я бы предпочел не ... Есть предложения?
Вам нужно будет использовать сценарий-оболочку. Параметры, следующие за Runas Tag_Spec, интерпретируются как Cmnd_List, который представляет собой список команд, которые могут быть запущены указанным пользователем и т. Д.
Как вы заметили, решение заключается в использовании сценария-оболочки
appuser localhost = (appowner) NOPASSWD: /path/to/wrapper
Убедитесь, что у сценария-оболочки есть подходящие разрешения и, особенно, что он недоступен для записи.