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

Установить рабочий каталог команды, запускаемой через sudo?

У меня есть команда, которую я запускаю через 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

Убедитесь, что у сценария-оболочки есть подходящие разрешения и, особенно, что он недоступен для записи.