Linux
pam_env.so 到底是做什麼的?
具有以下行:
auth required pam_env.so
文件說:
第一個模組執行,*
pam_env
*可選地設置或清除在 中指定的環境變數/etc/security/pam_env.conf
。該模組是必需的——它必須成功執行才能繼續進行身份驗證。偉大的!“成功執行”的真正含義是什麼?我知道它從中載入變數
/etc/security/pam_env.conf
(順便說一下,在 CentOS 和 Ubuntu 中,它的所有行都被註釋掉了)。請你能解釋一下這到底是什麼意思嗎?這個模組怎麼會執行不成功?或者只是載入變數,這與身份驗證有什麼關係?
我已閱讀
pam.conf
手冊頁:必需的
這種 PAM 的失敗最終會導致 PAM-API 返回失敗,但只有在呼叫了剩餘的堆疊模組(針對此服務和 類型)之後。
也許,我錯過了一些東西,但它沒有說明這個話題。
總而言之,為什麼類型是 auth,而不是 session?
pam_env
手冊頁說:RETURN VALUES PAM_ABORT Not all relevant data or options could be gotten. PAM_BUF_ERR Memory buffer error. PAM_IGNORE No pam_env.conf and environment file was found. PAM_SUCCESS Environment variables were set.
此外,如果您的系統嚴重損壞,pam_env.so 本身可能無法執行(例如,文件系統損壞,或 32 位核心上的 64 位二進製文件),這將返回錯誤值。
它在
auth
堆棧中的原因是後續的 PAM 模組可能依賴於已設置的內容(這就是它的原因required
)。