Debian

如何在 debian 中為所有(nologin 和登錄 shell)使用者添加環境變數

  • September 29, 2021

如何為所有使用者(甚至 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

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