歡迎您光臨本站 註冊首頁

個人在Redhat linux下對PAM的一點了解

←手機掃碼閱讀     火星人 @ 2014-03-25 , reply:0

PAM:基於Pluggable Authentication Modules(可插入驗證模塊,簡稱PAM)的驗證機制.主要用於應用程序的統一身份驗證方式.

/etc/pam.d/目錄包括所有支持PAM應用程序的PAM配置文件。每個支持PAM的應用程序或服務都在/etc/pam.d/目錄中有一個相應的文件。而這個目錄中的每個文件的名稱與他們所控制訪問的服務名稱相同。這個文件名放置的就是它們自己的PAM配置文件,在驗證請求時,應用程序通過 libpam函數庫來提供服務。具體使用哪些PAM函數庫進行驗證,則由/etc/pam.d/目錄下對應的配置文件決定。libpam 提供函數共享服務,而且可以動態載入。例如查看應用程序su是否支持pam,可用ldd /bin/su來查看它是支持libpam函數.(抱歉:有些程序不支持libpam函數但也會被PAM所驗證,目前還沒完全搞清楚)

PAM配置文件的格式


1、service type:
auth:用來驗證用戶身份,提示輸入用戶名和密碼。

account:用來驗證帳號狀態:用戶的密碼是否過期,用戶是否有許可權訪問某些資源。

password:禁止用戶反覆嘗試登錄,在變更密碼時進行密碼複雜性控制

session:用來配置並管理用戶會話、進行日誌記錄或限制用戶登陸的次數。

注:一個單獨的模塊可以包括一個或多個模塊介面,例如,pam_unix.so包括了所有四個模塊介面

2、control flag
required:要使驗證過程繼續,這個模塊的結果必須是成功。如果失敗,用戶要等所有模塊都完成後才會被通知。

requisite:跟required不同的是,如果失敗,用戶會馬上被通知。

sufficient:如果模塊驗證失敗,則忽略此結果.如果一個此模塊成功,且前面沒有任何標識為required的模塊驗證失敗,那麼無需其它任何結果,則這個服務就可被使用。

optional:模塊結果不被理會。被標識為optional的模塊只在這個界面中沒有引用其它模塊時才成為驗證成功所必須的。

include:包含給出服務類型的指定參數。

註:required模塊被調用的順序並不重要。只有標識為sufficient和requisite的模塊的調用順序才重要。

3、module name
調用的模塊名。其絕對PATH如下:

32位OS:/lib/security/
64位OS:/lib64/security/

4、module arguments
無效的參數通常會被忽略,它不會影響到PAM驗證的結果。但在一些模塊中,無效的參數可能會導致驗證失敗。一般把error寫入/var/log/secure文件。

[火星人 ] 個人在Redhat linux下對PAM的一點了解已經有190次圍觀

http://coctec.com/docs/linux/show-post-164981.html