Как сделать `sudo` сохранить $ PATH?

Мне нужно запустить программу, установленную в / opt / godi / sbin (пользовательский каталог). Если я добавлю этот каталог в свой PATH, добавив следующую строку в мой .bashrc-файл

export PATH=$PATH:/opt/godi/bin:/opt/godi/sbin 

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

 sudo godi_console 

Я получаю следующую ошибку

 sudo: godi_console: command not found 

Проверка переменной PATH после использования sudo показывает, что она не включает тот же PATH, что и у обычного пользователя:

 $ sudo sh # echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 

Почему ПУТЬ не то же самое? Я делаю что-то неправильно? Я на Debian Jessie и, к сожалению, не могу обойти проблему, передав sudo абсолютную ссылку на godi_console, потому что сама godi_console также зависит от правильной установки PATH.

3 Solutions collect form web for “Как сделать `sudo` сохранить $ PATH?”

Вы всегда можете:

 sudo env "PATH=$PATH" godi_console 

или даже:

 sudo "PATH=$PATH" godi_console 

поскольку sudo обрабатывает ведущие аргументы, содержащие = символы как назначения переменных среды сами по себе.

В качестве меры безопасности на Debian, /etc/sudoers имеет параметр secure_path установленный в безопасное значение.

Вы также можете установить PATH по умолчанию на /etc/sudoers

отредактируйте файл, используя visudo

и обновите строку до того, что вы пожелаете: По Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin

SUDO по умолчанию изменяет переменные env.

Проверьте его руководство и вариант под названием env_reset.

Вам просто нужно отключить его в / etc / sudoers.

  • sudo всегда устанавливает пределы процесса для чисел из /etc/security/limits.d?
  • ', который qmake' возвращает значение, но 'sudo, который qmake' не делает
  • Как получить пользователя sudo -u $ для использования пользователями env?
  • Безопасность sudo не запрашивает пароль после первого раза
  • Как убить процесс, который говорит «Операция не разрешена» при попытке?
  • Какая угроза пользователю, пытающемуся sudo без разрешения?
  • Отслеживание выполнения команд после sudo другому пользователю
  • sudo -u имя пользователя -s "cmd arg" возвращает команду не найдена
  • Почему sudo медленно, когда я ошибаюсь в моем пароле?
  • Как запускать программы с такими аргументами, как «arg = val» (например, dd) в rc shell (версия Linux портирована из Plan9 OS)?
  • Почему visudo препятствует другим редакторам?
  • Linux и Unix - лучшая ОС в мире.