“sudo env”和“sudo -i env”显示不同的结果

“sudo env”和“sudo -i env”显示不同的结果

当我在服务器中运行sudo env | grep PATHsudo -s env | grep PATH和命令时,前两个命令显示相同的结果。sudo -i env | grep PATH

但是,最后一个sudo -i env | grep PATH显示了不同的 PATH 值。

为什么会这样,如何使sudosudo -ssudo -i命令具有相同的 PATH 变量?

我使用的是 CentOS 7.8。

任何评论、链接表示赞赏!

答案1

它可能是从sudo命令中产生的。您如何扩展/定义path变量?在您的本地用户中.profile?因为如果你刚刚输入sudo -i,否则sudo -s你将成为 root 用户,从而使用它的.profile.根据man sudo

-i, --login: Run the shell specified by the target user's password database entry as a login shell. This means that login-specific resource files such as .profile, .bash_profile or .login will be read by the shell.
-s, --shell: Run the shell specified by the SHELL environment variable if it is set or the shell specified by the invoking user's password database entry.

相关内容