使用 sudo su 后启用自定义 PS1

使用 sudo su 后启用自定义 PS1

我在我的 centos linux 机器上的 .bash_profile 非 root 帐户中设置了一个脚本,以在 sudo su 之后更改我的 PS1,但因为 sudo su 实际上是创建一个新会话,所以脚本当然会停止,并且我的 PS1 保持不变,尽管我的 .bash_profile是说要更改它,这里没有任何问题,但是在 sudo su 之后有没有任何方法可以执行命令(在我的例子中更改我的 PS1)?我尝试将脚本也放入 .bashrc 中,并且相同。

答案1

在我看来,堆叠sudosu造成混乱。

对我来说,为 root 创建正确环境的最可靠方法,包括设置正确的 PATH 以及相关文件中的其他设置/root/sudo -i

请阅读手册页man suman sudo因为 PATH 和其他会话和环境变量有很多微妙之处,可以更改或不默认更改或通过特定开关更改。

su -请注意和之间的区别 su,例如,通常将 sudo 配置/etc/sudoers为抑制某些环境变量...

这张表(以及整篇文章)给出了乍一看似乎相似的命令的一些差异:

                                     corrupted by user's 
        HOME=/root  uses root's PATH     env vars
sudo -i     Y       Y[2]                 N
sudo -s     N       Y[2]                 Y
sudo bash   N       Y[2]                 Y
sudo su     Y       N[1]                 Y


[1] PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
    probably set by /etc/environment
[2] PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin

相关内容