Команда pyenv не найдена при работе с sudo

04 под WSL. У меня есть двоичный файл pyenv в моем PATH даже с sudo PATH, но я по какой-то причине не могу запустить его с sudo.

test@pc:~$ which pyenv
/home/test/.pyenv/bin/pyenv
test@pc:~$ sudo which pyenv
test@pc:~$ sudo echo $PATH | perl -p -e 's/:/\n/g' | grep pyenv
/home/test/.pyenv/plugins/pyenv-virtualenv/shims
/home/test/.pyenv/shims
/home/test/.pyenv/bin

Я пытался

sudo -i 
sudo -E

с pyenv, но он не работает. Без sudo он работает нормально, но я не могу установить python из-за разрешений. Что я делаю не так?

0
задан 24 December 2020 в 15:49

1 ответ

В целях безопасности sudo находит программы, используя собственный secure_path, определенный в файле /etc/sudoers/:

Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

Также обратите внимание, что когда вы выполняете sudo echo $PATH, переменная $PATH расширяется оболочкой пользователя перед передачей в sudo. Чтобы увидеть путь root с помощью sudo, вам нужно сделать что-то вроде sudo bash -c 'echo $PATH'

1
ответ дан 24 December 2020 в 13:03

Другие вопросы по тегам:

Похожие вопросы: