理解 sudo -E

Kev*_*ith 3 sudo

我希望使用当前用户的权限运行 TOMCAT,而不是 root 的环境变量。

vagrant@dev:~/Workspace/eurekastreams$ echo $JAVA_OPTS
-Xmx1024m -XX:MaxPermSize=128m -Dlog.home=/home/vagrant/Workspace/software/
Run Code Online (Sandbox Code Playgroud)

我试过了,vagrant$>sudo -E /etc/init.d/tomcat7 start

但是,我的软件没有登录到 /home/vagrant/Workspace/software 目录,我相信这意味着没有设置 JAVA_OPTS 环境变量。

我是否正确理解 sudo -E 它将使用当前用户的环境变量执行命令?

maz*_*azs 6

来自man sudo

-E, --preserve-env
Indicates to the security policy that the user wishes to preserve their existing 
environment variables. The security policy may return an error if the user does 
not have permission to preserve the environment.
Run Code Online (Sandbox Code Playgroud)

因此,是的,-E将使用当前环境变量执行命令。