为什么我的 sudo PATH 与普通用户 PATH 不同?

为什么我的 sudo PATH 与普通用户 PATH 不同?

我的路径有问题。我有一个干净的 Amazon Linux 虚拟服务器实例,并将其设置在 /etc/profile 中

M3_HOME=/usr/local/maven
JAVA_HOME=/usr/java/latest
PATH="$PATH:$M3_HOME/bin:$JAVA_HOME/bin"

在我的 myuser (我自己的用户)帐户中,我在 ~/.bash_profile 中设置了它

PATH=$PATH:$HOME/bin

然后当我输出“env”作为我的用户时我得到

PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/maven/bin:/usr/java/latest/bin:/home/myuser/bin

但是当我将其输出为 sudo 时,我得到了

sudo env
PATH=/sbin:/bin:/usr/sbin:/usr/bin

如何让 sudo 用户使用与普通用户相同的路径?

答案1

因为当你执行 sudo 时,你会被提升为 root,一个具有不同环境的不同用户。

您可以使用 --preserve-env 选项维护相同的环境变量。

这是直接从 sudo 的手册页中提取的,并在 bash 下检查了我的 Linux 机器。以下给出相同的输出

env | grep PATH

sudo --preserve-env=PATH env | grep PATH 

检查你的手册页。

相关内容