Ubuntu
為什麼 .pam_environment 不在我的新路徑中包含 $HOME?
我創建了
/home/myname/.pam_environment
一個包含PATH DEFAULT=${PATH}:${HOME}/apps/flyway
但我的新路徑並沒有以
/home/myname/apps/flyway
. 為什麼不?$ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/apps/flyway
這顯然是一個老問題(如 15 歲)。他們當時的“修復”是:
* Note that HOME may not be useful in pam_environment, closes: #109281
Linux PAM 網站也說了這麼多:
請注意,在呼叫模組時,您可能不會設置許多您想使用的環境變數。例如,下面多次使用 HOME,但許多 PAM 應用程序並沒有在您需要時提供它。
顯然,有人費心在 Fedora 上對其進行修補。
pam_env
無論如何,在基於 Debian 的系統上,一種粗略的方法是使用:
HOME=/home/@{PAM_USER}
在引用之前
${HOME}
。例如,這可以在 中完成/etc/security/pam_env.conf
。當然,這會破壞使用者主目錄不在的地方/home/$USER
。