9

I just installed go to /usr/local/go, and in ~/.bashrc added this line:

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

Now go works from the command line, but sudo go gives me:

$ 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
  • Can you post the output of sudo echo $PATH – Manish Sinha Apr 2 '12 at 17:36
7

sudo command has env_keep and env_reset parameters in sudoers file.

You have to either edit your env_keep setting or use sudo -E.

| improve this answer | |
  • On my Debian-9 system sudo -E does not keep the $PATH variable. – Ark-kun Aug 29 '18 at 3:32
3

Edit the file /etc/sudoers. Add the desired paths to the following line:

Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin

example:

Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin

| improve this answer | |
0

Check if you've security policy setup for your PATH by the following command:

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

If so, either disable it or add it there by sudo visudo.

See: Why are PATH variables different when running via sudo and su? at Unix SE

| improve this answer | |

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.