PAM 學習筆記

結合自己的所得,綜合了多篇文章,注的是原創,但若侵犯了版權,請與我聯繫,我將註明轉載

插入式驗證模塊(Pluggable Authentication ModulePAM
是一套共享函數庫API,允許系統管理員來決定應用程式如何識別用戶.
clip_p_w_picpath002
注意,
應用程序(服務)必須本身是支持PAM認證的,也就是說源碼裏面使用了PAMAPI
PAM的體現結構如下圖
clip_p_w_picpath004
認證模塊:
位於/lib/security/和/lib64/security/下,文件名如pam_*.so,例如: pam_access.so
是在其他的UN*X中,你可能會在/usr/lib/security中看到這些文件。
而且模塊是可堆疊的,即可以針對一個認證過程調用多個模塊進行多種方式的認證,如
/etc/pam.d/samba有如下內容,對於auth這個操作調用了兩個認證方式
auth required pam_nologin.so
auth include system-auth
配置文件:
PAM 的主要特徵表現爲通過 /etc/pam.d 或 /etc/pam.conf(舊版本) 文件實現動態驗證配置
一般在/etc/pam.d目錄裏,需要爲程序設一個配置文件.具體的文件名是寫死在程序裏的.通常和程序名一樣,假設程序名字叫"pamprog",配置文件就是/etc/pam.d/pamprog.
PAM 模塊是按模塊類型歸類的。任何給定的模塊至少要實現四種模塊類型功能之一:
1. 驗證模塊(auth)用於驗證用戶或設置/銷燬憑證。如提示輸入用戶名密碼
2. 帳戶管理模塊(account)將執行與訪問、帳戶及憑證有效期、密碼限制/規則等有關的操作。
3. 密碼管理模塊將執行與密碼更改/更新有關的操作。
4. 會話管理模塊用於初始化和終止會話。如記錄log,掛上某些檔案系統等.
PAM 將提供不同的功能,例如單點登錄驗證、訪問控制等。每個功能的實現都是由不同的模塊處理的。下面是一些主要模塊:
  • pam_access 將使用登錄名/域名,根據 /etc/security/access.conf 中的預定義規則交付日誌守護進程樣式的登錄訪問控制。
  • pam_cracklib 將根據密碼規則檢查密碼。
  • pam_env sets/unsets 環境變量來自 /etc/security/pam_env_conf。
  • pam_debug 將調試 PAM。
  • pam_deny 將拒絕 PAM 模塊。
  • pam_echo 將打印消息。
  • pam_exec 將執行外部命令。
  • pam_ftp 是匿名訪問模塊。
  • pam_localuser 要求將用戶列於 /etc/passwd 中。
  • pam_unix 將通過 /etc/passwd 提供傳統密碼驗證。
更多信息參
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章