生活随笔
收集整理的這篇文章主要介紹了
linux PAM模块
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? PAM可以說是一套應用程序編程接口,它提供了一連串的驗證機制,只要用戶將驗證階段的需求告知PAM后,PAM就能夠回報用戶驗證結果(成功或失敗)。
? PAM通過一個與程序相同文件名的配置文件來進行一連串的認證分析需求。以passwd為例,當你執行passwd后,這個程序調用PAM的流程:
? 1、用戶開始執行/usr/bin/passwd這支程序,并輸入密碼
? 2、passwd調用PAM模塊進行驗證
? 3、PAM模塊會到/etc/pam.d/中尋找與程序(passwd)同名的配置文件
? 4、依據/etc/pam.d/passwd內的設置,引用相關的PAM模塊逐步進行驗證分析
? 5、驗證結果(成功、失敗或其他信息)回傳給passwd這個程序
? 6、passwd這支程序會根據PAM回傳的結果決定下一個操作
? 看看/etc/pam.d/passwd這個配置文件
[root@mkk?~]#?cat?/etc/pam.d/passwd??#%PAM-1.0?auth???????include??????system-auth?account????include??????system-auth?password???include??????system-auth?驗證類型 控制標準 PAAM模塊與該模塊參數 ? 第一個字段:驗證類型(type)
? 驗證類型分為四種:
? auth:是authention(認證)的縮寫,所以這個種類型主要用來檢驗用戶的身份驗證。
? account:account(賬號)則大部份是在進行授權,主用用來檢驗用戶是否具有正確的權限
? session:session是會議期間的意思,所以session管理的就是用戶在這次登陸(或使用這個命令)期間PAM所給予的環境設置
? password:password就是密碼,主要用于提供驗證的修訂工作,就是修改密碼。
? 第二個字段:驗證的控制標示
? 驗證的控制標示主要也分四種控制方式:
? required:這類標示為,不論驗證成功或失敗都繼續驗證
? requisite:這類標示為,失敗則不在進行驗證,只有成功才繼續驗證
? sufficient:這類標示為,驗證成功則不進行驗證,驗證失敗就繼續驗證
? optional:這類標示,更多是顯示信息,而不進行驗證
? 常見模塊簡介
? 首先看看我們的登陸(login)模塊
?
[root@mkk?~]#?cat?/etc/pam.d/login??#%PAM-1.0?auth?[user_unknown=ignore?success=ok?ignoreignore=ignore?default=bad]?pam_securetty.so?auth???????include??????system-auth?account????required?????pam_nologin.so?account????include??????system-auth?password???include??????system-auth?#?pam_selinux.so?close?should?be?the?first?session?rule?session????required?????pam_selinux.so?close?session????include??????system-auth?session????required?????pam_loginuid.so?session????optional?????pam_console.so?#?pam_selinux.so?open?should?only?be?followed?by?sessions?to?be?executed?in?the?user?context?session????required?????pam_selinux.so?open?session????optional?????pam_keyinit.so?force?revoke?[root@mkk?~]#?cat?/etc/pam.d/system-auth?#%PAM-1.0?#?This?file?is?auto-generated.?#?User?changes?will?be?destroyed?the?next?time?authconfig?is?run.?auth????????required??????pam_env.so?auth????????sufficient????pam_unix.so?nullok?try_first_pass?auth????????requisite?????pam_succeed_if.so?uid?>=?500?quiet?auth????????required??????pam_deny.so??account?????required??????pam_unix.so?account?????sufficient????pam_succeed_if.so?uid?<?500?quiet?account?????required??????pam_permit.so??password????requisite?????pam_cracklib.so?try_first_pass?retry=3?password????sufficient????pam_unix.so?md5?shadow?nullok?try_first_pass?use_authtok?password????required??????pam_deny.so??session?????optional??????pam_keyinit.so?revoke?session?????required??????pam_limits.so?session?????[success=1?default=ignore]?pam_succeed_if.so?service?in?crond?quiet?use_uid?session?????required??????pam_unix.so? ?
? 上面使用了非常多的PAM模塊,每個模塊功能都不太相同,詳細的模塊情報可以在系統中在找到
? /etc/pam.d/*:每個程序個別的PAM模塊配置文件;
? /lib/security/*:PAM模塊文件的實際放置目錄;
? /etc/security/*:其他PAM環境的配置文件;
? /usr/share/doc/pam-*/:詳細的PAM說明文件。
? 簡單的介紹比較常用的模塊
? pam_securetty.so:
? 限制系統管理員(root)只能夠從安全的終端機登陸。所謂的安裝終端可以在/etc/securetty這個配置文件中設置
? pam_nologin.so
? 這個模塊可以設置一般用戶能否登陸系統,樣/etc/nologin這個文件存在時,則所有一般用戶均無法登陸系統,但對root沒有影響。
? pam_selinux.so
? SElinux是針對程序來進行詳細管理權限的功能
? pam_console.so
? 當系統出現某些問題時,或某些時刻你需要使用特殊的終端接口登陸主機時,這個模塊可以幫你處理文件權限問題,讓用戶可以通過特殊終端接口順利登陸系統
? pam_loginuid.so
? 驗證用戶的UID真的是我們需要的數值,可以用這個模塊來進行規范
? pam_env.so
? 用來設置環境變量一個模塊,如果你需要額外的環境變量設置,可以參考/etc/security/pam_env.conf這個文件的詳細說明
? pam_UNIX.so
? 這個模塊可以用于驗證階段的認證功能,可以用于授權階段的賬號可許證管理,可以用于會議階段的日志文件記錄等。
? pam_cracklib.so
? 可以用來檢驗密碼強度
? pam_limits.so
? 可以參考/etc/security/limits.conf內的說明
??
轉載于:https://blog.51cto.com/aixecc/817180
總結
以上是生活随笔為你收集整理的linux PAM模块的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。