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 из-за разрешений. Что я делаю не так?
В целях безопасности 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'