Preserve the Shell Environment Using sudo
Posted by Paul on 19th February 2014
When executing a command or script as another user, it may be necessary to preserve the current shell’s environment. sudo provides the -E flag for this.
However, on Ubuntu systems the PATH environment variable is not preserved by the -E flag. Work around this by passing the current shell’s PATH environment variable on the command-line in the form of PATH=$PATH.
$ sudo PATH=$PATH -E -u anotheruser ./some-command.sh
There are other ways to manage environment variables with sudo by editing /etc/sudoers (use sudoedit, don’t edit it directly!), but the above can be useful to quickly get the job done.