插入式驗證模組(pluggable authentication module,pam)
是一套共享函式庫api,允許系統管理員來決定應用程式如何識別使用者.
注意,應用程式(服務)必須本身是支援pam認證的,也就是說原始碼裡面使用了pam的api
pam的體現結構如下圖
認證模組:
位於/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 學習筆記
回文自動機又叫回文樹,縮寫 pam。它可以處理和回文子串有關的問題。在 pam 上,乙個點儲存的是乙個回文子串。構造 pam 時,我們採取了增量轉移的方式。簡單地說,就是把字串 s 從左往右掃一遍,每加入乙個新的字元 c 就更新至多乙個節點 也可能不更新 假設當前處理第 i 個字元。令指標 text...
學習筆記 Manacher與PAM
挺短,背是挺好背的 manacher用於求回文串長度。思想大概就是 1 加入字符集之外的識別字元 比如 分隔開原來相鄰的字母,這樣所有的回文串都變成了以某個字元為中心的 否則如果是偶數長度的回文串還要特判 2 考慮藉由以前的資訊求出新的回文串長度。記錄到現在為止最靠右的回文串中最右側的字元下標 其對...
回文自動機(PAM) 學習筆記
無。強行說和kmp有關也是可以的 1.乙個長度為 n 的字串最多有 n 個本質不同的回文子串。2.對於乙個字串 s,如果在其之後新插入乙個字元,那麼最多產生一種新的回文子串。證明 假設加入這個字元之後得到的最長回文字尾為 t,那麼對於長度小於 t 的任何回文字尾,它們必然在更前面的位置出現過。如圖所...