摘自:
首先了解一下,什麼是linux的pam認證呢?
pam認證機制:簡單來說就是linux系統採取的這一種對不同使用者以及系統中的不同服務進行的安全認證機制。認證流程:linux系統首先確定所需認證的服務,然後載入相應的pam的配置檔案(位於/etc/pam.d下),最後呼叫認證檔案(位於/lib/security下)進行安全認證。舉個例子,我們登陸的時候,會向 pam 發出驗證要求的通知, pam 經過一連串的驗證後,將驗證的結果回報給該程式,然後該程式就能夠利用驗證的結果來進行可登陸或顯示其他無法使用的資訊。
現在我們取 /etc/pam.d/passwd這個配置檔案的內容來看一看:
我們看到有三列資料,它們分別代表了 :驗證類別、控制標誌、pam 模組與該模組的引數。
現在我們重點講一下第乙個字段驗證類別和第二個字段控制標誌。
驗證類別主要分為四種:
required:若成功則帶有 success (成功) 的標誌,若失敗則帶有 failure 的標誌,但不論成功或失敗都會繼續後續的驗證流程。 由於後續的驗證流程可以繼續進行,因此相當有利於資料的登入 (log) ,這也是 pam 最常使用 required 的原因。requisite:若驗證失敗則立刻返回 failure 的標誌,並終止後續的驗證流程。若驗證成功則帶有 success 的標誌並繼續後續的驗證流程。 這個專案與 required 最大的差異,就在於失敗的時候還要不要繼續驗證下去。由於 requisite 是失敗就終止, 因此失敗時所產生的 pam 資訊就無法透過後續的模組來記錄了。
sufficient:若驗證成功則立刻回傳 success 給原程式,並終止後續的驗證流程;若驗證失敗則帶有 failure 標誌並繼續後續的驗證流程。 這玩意兒與 requisits 剛好相反!
optional :該模組返回的通過/失敗結果被忽略。當沒有其他模組被引用時,標記為optional模組並且成功驗證時該模組才是必須的。
pam_securetty.so:限制系統管理員 (root) 只能夠從安全的 (secure) 終端機登陸;例如 tty1, tty2 等就是傳統的終端機裝置名稱。那麼安全的終端機配置呢? 就寫在 /etc/securetty 這個檔案中。你可以查閱一下該檔案, 就知道為什麼 root 可以從 tty1~tty7 登陸,但卻無法透過 telnet 登陸 linux 主機了!
pam_nologin.so:
這個模組可以限制一般使用者是否能夠登陸主機之用。當 /etc/nologin 這個檔案存在時,則所有一般使用者均無法再登陸系統了!若 /etc/nologin 存在,則一般使用者在登陸時, 在他們的終端機上會將該檔案的內容顯示出來!所以,正常的情況下,這個檔案應該是不能存在系統中的。 但這個模組對 root 以及已經登陸系統中的一般賬號並沒有影響。
pam_selinux.so:
selinux 是個針對程式來進行細部管理許可權的功能。由於 selinux 會影響到使用者執行程式的許可權,因此我們利用 pam 模組,將 selinux 暫時關閉,等到驗證通過後, 再予以啟動!
pam_console.so:
當系統出現某些問題,或者是某些時刻你需要使用特殊的終端介面 (例如 rs232 之類的終端聯機裝置) 登陸主機時, 這個模組可以幫助處理一些檔案許可權的問題,讓使用者可以透過特殊終端介面 (console) 順利的登陸系統。
pam_loginuid.so:
我們知道系統賬號與一般賬號的 uid 是不同的!一般賬號 uid 均大於
500才合理。 因此,為了驗證使用者的 uid 真的是我們所需要的數值,可以使用這個模組來進行規範!
pam_env.so:
pam_unix.so:
這是個很複雜且重要的模組,這個模組可以用在驗證階段的認證功能,可以用在授權階段的賬號許可證管理, 可以用在會議階段的登入檔案記錄等,甚至也可以用在口令公升級階段的檢驗!非常豐富的功能! 這個模組在早期使用得相當頻繁喔!
pam_cracklib.so:
可以用來檢驗口令的強度!包括口令是否在字典中,口令輸入幾次都失敗就斷掉此次聯機等功能,都是這模組提供的! 這玩意兒很重要!
Pam認證模組
pam 認證模組 pam 做認證的,nss 做使用者 像ldap lib64 security 所有pam模組都在這裡存放著。64位系統便是在 lib64存放著 etc pam.d pam服務的配置檔案。模組呼叫必須放在 lib64 security 這個目錄下。每個模組有 4個功能的認證 auth...
Linux中pam模組詳解
pam簡介 linux pam linux可插入認證模組 是一套共享庫,使本地系統管理員可以隨意選擇程式的認證方式。換句話說,不用重新編譯乙個包含pam功能的應用程式,就可以改變它使用的認證機制。這種方式下,就算公升級本地認證機制,也不用修改程式.pam使用配置 etc pam.d 下的檔案,來管理...
如何使用PAM靜態認證賬號。
include include include include include include include include include include include static struct pam conv conv mytty ttyname stderr fileno if myt...