Linux

Linux (RedHat) sudo su -l < <user_acct>> 沒有源配置文件

  • August 6, 2021

如前所述,載入預設配置文件<<user_acct>>時遇到問題sudo su -l <<user_acct>>

裡面.profile

if [ -r "${HOME}/.profile.custom" ]; then
   . "${HOME}/.profile.custom"
fi

根據我所讀到的內容(例如,與此類似的答案-l應該觸發了登錄 shell,因此 sourced .profile,但它似乎不起作用,因為設置的環境變數.profile.custom不存在(與如果我剛跑. .profile,他們就出現了。

修改後的問題:任何想法為什麼或如何解決這個問題

當它是登錄 shell 時,bash 首先查找~/.bash_profile. 如果它沒有找到它,它會尋找~/.bash_login. 如果它沒有找到它,它會尋找~/.profile. 無論如何,即使登錄 shell 是互動式的,bash 也不會讀取~/.bashrc.

我建議堅持以下內容~/.bash_profile,並且不要有~/.bash_login

if [ -e ~/.profile ]; then . ~/.profile; fi
case $- in *i*) if [ -e ~/.bashrc ]; then . ~/.bashrc; fi;; esac

這樣.profile,無論您的登錄 shell 是 bash 還是其他一些 sh ​​變體,您.bashrc都被載入,並且無論 shell 是否是登錄 shell,您都由 bash 載入。

引用自:https://unix.stackexchange.com/questions/70519