Debian
如何在 debian 中為所有(nologin 和登錄 shell)使用者添加環境變數
如何為所有使用者(甚至 nologin使用者)設置環境變數?
特別是我想設置一個包含路徑的環境變數,該路徑將從使用者腳本和網路伺服器中使用(www-data 是一個 nologin shell 使用者,然後不能從 PAM 的 /etc/environment 或 /etc/profile 和類似的)
假設您使用預設的初始化系統:
https://www.freedesktop.org/software/systemd/man/systemd-system.conf.html
預設環境=
設置傳遞給所有已執行程序的管理器環境變數。採用空格分隔的變數賦值列表。有關環境變數的詳細資訊,請參閱 environ(7)。
例子:
DefaultEnvironment="VAR1=word1 word2" VAR2=word3 "VAR3=word 5 6"
設置三個變數“VAR1”、“VAR2”、“VAR3”。
“所有已執行的程序”在這裡表示由 systemd 執行的所有程序。通常,所有程序要麼由 systemd 啟動,要麼由該程序的子程序啟動。但請注意這一點,否則您可能必須使用
init=/bin/sh
等來恢復您的系統:-)。某些程序可能會清除它們的環境變數,或者進行取代這些環境變數的分配。我認為使用者登錄(PAM?)將是一個重要的例子。
正如您所說,您可以使用
pam_env
/覆蓋所有 PAM 會話/etc/environment
。