Деякі програми не знайдено при використанні з 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
Manish Sinha

Відповіді:


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


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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.