pyenv command not found when running with sudo

04 under WSL. I have binary of pyenv in my PATH even with sudo's PATH, but i cannot run it with sudo for some reason.

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

I tried to

sudo -i
sudo -E

with pyenv and it doesnt works. Without sudo it works fine but i cannot install python because of permissions. What im doing wrong?

1 Answer

For security reasons, sudo locates programs using its own secure_path, defined in the /etc/sudoers/ file:

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

Also note that when you do sudo echo $PATH, the $PATH variable is expanded by the user's shell before being passed to sudo. To see root's path using sudo, you would need to do something like sudo bash -c 'echo $PATH'

2

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like