8

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
6

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.

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

Just press Ctrl+Alt+T on your keyboard to open Terminal. When it opens, run the command below.

sudo ln -s /usr/local/go/bin/go /usr/bin/go
2

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

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

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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