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

  • Какой PATH использует `sudo <command>` для поиска `<command>`?
  • Запуск sudo ограниченных команд путем создания софт-ссылки
  • Отслеживание выполнения команд после sudo другому пользователю
  • Головоломка над судо и дорожками
  • Какая угроза пользователю, пытающемуся sudo без разрешения?
  • Использует ли sudo команду временно изменить $ PATH как root?
  • Как получить пользователя sudo -u $ для использования пользователями env?
  • План 9 из книги Bell Labs
  • sudo -u имя пользователя -s "cmd arg" возвращает команду не найдена
  • ', который qmake' возвращает значение, но 'sudo, который qmake' не делает
  • sudo не сохраняет PATH
  • Как запускать программы с такими аргументами, как «arg = val» (например, dd) в rc shell (версия Linux портирована из Plan9 OS)?
  • Interesting Posts
    Linux и Unix - лучшая ОС в мире.