使用 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

相關內容