Некоторые программы не найдены при использовании с sudo

9

Я только что установил идти к /usr/local/go, и ~/.bashrcдобавили эту строку:

export PATH=$PATH:/usr/local/go/bin

Теперь goработает из командной строки, но sudo goдает мне:

$ sudo go
sudo: go: command not found
~
$ sudo echo $PATH
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/benjamin/algs4/bin:/usr/local/go/bin
Бенджамин Линдли
источник
Можете ли вы опубликовать выводsudo echo $PATH
Маниш Синха

Ответы:

7

sudoКоманда имеет env_keepи env_resetпараметры в sudoersфайле.

Вы должны либо отредактировать настройку env_keep, либо использовать sudo -E.

Дмитрий Алексеев
источник
В моей системе Debian-9 переменная sudo -Eне хранится $PATH.
Арк-кун
3

Отредактируйте файл / etc / sudoers. Добавьте нужные пути в следующую строку:

По умолчанию secure_path = / sbin: / bin: / usr / sbin: / usr / bin

пример:

По умолчанию secure_path = / sbin: / bin: / usr / sbin: / usr / bin: / usr / local / sbin: / usr / local / bin

AntumDeluge
источник
0

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

$ sudo sudo -V | grep PATH
Value to override user's $PATH with: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Если это так, либо отключите его, либо добавьте туда sudo visudo.

Смотрите: Почему переменные PATH отличаются при запуске через sudo и su? в Unix SE

kenorb
источник