Как сделать `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.

  • Сохранение аутентификации sudo с помощью gnome-terminal
  • Как убить процесс, который говорит «Операция не разрешена» при попытке?
  • Использует ли sudo команду временно изменить $ PATH как root?
  • Почему visudo препятствует другим редакторам?
  • sudo -u имя пользователя -s "cmd arg" возвращает команду не найдена
  • Запуск sudo ограниченных команд путем создания софт-ссылки
  • ', который qmake' возвращает значение, но 'sudo, который qmake' не делает
  • sudo всегда устанавливает пределы процесса для чисел из /etc/security/limits.d?
  • 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.

    Linux и Unix - лучшая ОС в мире.