当我在服务器中运行sudo env | grep PATH
、sudo -s env | grep PATH
和命令时,前两个命令显示相同的结果。sudo -i env | grep PATH
但是,最后一个sudo -i env | grep PATH
显示了不同的 PATH 值。
为什么会这样,如何使sudo
、sudo -s
和sudo -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.