Linux-PAM PAM-MySQL的总结
1、理論知識(shí)
1.1、PAM模塊
1.1.1、PAM的介紹
Pluggable Authentication Modules簡稱PAM,是一個(gè)微縮的可插入認(rèn)證模塊(PAM is an acronym for Pluggable Authentication Modules)
1.1.2、PAM的結(jié)構(gòu)
1)模塊層(PAM服務(wù)模塊) - PAM結(jié)構(gòu)最底層
作用:為接口層提供用戶鑒別等服務(wù)
--?驗(yàn)證用戶名、密碼、賬號(hào)是否過期等 --?完成賬戶管理、會(huì)話管理和口令管理等2)應(yīng)用程序接口層(PAM API) - PAM結(jié)構(gòu)中間層
作用:
--?向上屏蔽用戶鑒別等過程的細(xì)節(jié) --?向下調(diào)用模塊層的具體模塊提供特定的服務(wù)接口分類:
接口與模塊相對(duì)應(yīng)類型(調(diào)用下層特定接口):
--?鑒別類接口--?pam_authenticate()?鑒別用戶--?pam_setcred()?修改用戶密碼信息 --?賬號(hào)類接口--?pam_acct_mgmt()?鑒別用戶賬號(hào)是否有權(quán)限登錄以及賬號(hào)是否過期 --?會(huì)話類接口--?pam_open_session()--?pam_close_session() --?口令類接口--?pam_chauthok()接口與模塊不相對(duì)應(yīng)(對(duì)底層模塊提供支持以及實(shí)現(xiàn)應(yīng)用程序與模塊的通訊):
--?管理性接口--?pam_start()?標(biāo)記PAM事務(wù)開始--?pam_end()?標(biāo)記PAM事務(wù)結(jié)束--?pam_get_item()?獲取PAM事務(wù)狀態(tài)信息--?pam_set_item()?設(shè)置PAM事務(wù)狀態(tài)信息--?pam_str()?輸出PAM事務(wù)錯(cuò)誤信息 --?應(yīng)用程序與模塊間通訊接口--?pam_start()?應(yīng)用程序初始化可調(diào)用此函數(shù)存放用戶名之類的信息到PAM接口層--?pam_putenv()?向應(yīng)用程序傳遞特定的環(huán)境變量--?pam_getenv()?獲取應(yīng)用程序環(huán)境變量--?pam_getenvlist()?獲取應(yīng)用程序環(huán)境變量 --?用戶與模塊間的通訊接口--?pam_start()函數(shù)可通過會(huì)話式回調(diào)函數(shù),讓底層模塊通過他讀寫模塊相關(guān)的鑒別信息 --?模塊間通訊接口--?相互獨(dú)立的模塊可通過調(diào)用?pam_get_item()與pam_set_item()共享某些與鑒別會(huì)話有關(guān)的公共信息。 --?讀寫模塊狀態(tài)信息接口--?接口pam_get_data()和pam_set_data()用于按照PAM句柄要求獲取和設(shè)置特定的模塊信息。3)應(yīng)用程序?qū)?-?PAM結(jié)構(gòu)最上層 靈活調(diào)用中間層的各種鑒別功能接口1.1.3、PAM驗(yàn)證文件配置目錄
ls?/etc/pam.d/顯示如下:
chfn?????????????????newrole???????????runuser????????????ssh-keycat chsh?????????????????other?????????????runuser-l??????????su config-util??????????passwd????????????smartcard-auth?????sudo crond????????????????password-auth?????smartcard-auth-ac??sudo-i fingerprint-auth?????password-auth-ac??smtp???????????????su-l fingerprint-auth-ac??remote????????????smtp.postfix???????system-auth login????????????????run_init??????????sshd???????????????system-auth-ac如上所示,其中sshd是sshd服務(wù)的驗(yàn)證文件(定義驗(yàn)證規(guī)則,服務(wù)找不到相應(yīng)的驗(yàn)證文件則會(huì)與other匹配)
1.1.4、驗(yàn)證文件的語法
1)PAM的格式
vim編輯/etc/pam.d/sshd
配置文件如下:
#%PAM-1.0 auth???????required?????pam_sepermit.so auth???????include??????password-auth account????required?????pam_nologin.so account????include??????password-auth password???include??????password-auth #?pam_selinux.so?close?should?be?the?first?session?rule session????required?????pam_selinux.so?close session????required?????pam_loginuid.so #?pam_selinux.so?open?should?only?be?followed?by?sessions?to?be?executed?in?the?user?context session????required?????pam_selinux.so?open?env_params session????optional?????pam_keyinit.so?force?revoke session????include??????password-auth由以上可知PAM驗(yàn)證文件格式分為四列:
module_type???control_flag???module_path???module_optional2)module-type(模塊類型)
--?auth(驗(yàn)證模塊)?-?用于驗(yàn)證用戶或設(shè)置/銷毀憑證 --?account(賬戶管理模塊)?-?執(zhí)行訪問、賬戶及憑證有效期、密碼限制/規(guī)則等操作 --?session(會(huì)話管理模塊)?-?初始化或終止會(huì)話 --?passwd(密碼模塊)?-?執(zhí)行密碼更改或更新操作3)control-flag(控制標(biāo)記)
--?required?-?模塊須有返值才通過驗(yàn)證,成功繼續(xù)下一模塊;失敗需待同一stack中所有模塊執(zhí)行完才返值到應(yīng)用程序 --?requisite?-?模塊須有返值才通過驗(yàn)證,成功繼續(xù)下一模塊;失敗將不再執(zhí)行同一stack內(nèi)任何模塊而返值給應(yīng)用程序 --?sufficient?-?模塊返成功值則通過驗(yàn)證,成功則停止執(zhí)行;失敗值可忽略,繼續(xù)執(zhí)行下一模塊 --?optional?-?模塊可選,模塊返值對(duì)認(rèn)證不起關(guān)鍵作用,無論成敗都繼續(xù)執(zhí)行下一模塊,返值一般被忽略 --?include?-4)module-path(模塊路徑)
模塊的位置查找
find?/?-name?pam_sepermit.so顯示如下:
/lib64/security/pam_sepermit.so如上所示:
模塊位于“/lib64/security/”目錄下(可只寫模塊名稱,32位系統(tǒng)位置不同)
5)module-optional(模塊選項(xiàng),可選)
常見公用選項(xiàng)如下:
--?debug?-?該模塊調(diào)用syslog()將調(diào)試信息寫入系統(tǒng)日志 --?no_warn?-?該模塊不向應(yīng)用程序發(fā)送警告信息 --?use_first_pass?-?使用同一stack首次獲取的密碼(不向用戶提示) --?try_first_pass?-?嘗試使用同一stack首次獲取的密碼(不通過則向用戶提示) --?use_mapped_pass?-?使用映射過的密碼(不向用戶提示) --?expose_account?-?允許該模塊顯示用戶賬號(hào)等信息1.2、PAM-MySQL的介紹
----------------------------------------------------------------------
參閱資料:
Linux-PAM的簡介:
http://drops.wooyun.org/tips/1288
http://www.2cto.com/os/201303/198419.html
http://os.51cto.com/art/200510/9034.htm
http://my.oschina.net/lionel45/blog/110512
動(dòng)態(tài)鏈接庫的概念:
http://www.cnblogs.com/TianFang/archive/2013/01/19/2867296.html
pam-mysql官網(wǎng):
http://pam-mysql.sourceforge.net/
yum源:
https://fedoraproject.org/wiki/EPEL
轉(zhuǎn)載于:https://blog.51cto.com/cmdschool/1737006
總結(jié)
以上是生活随笔為你收集整理的Linux-PAM PAM-MySQL的总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用jQuery的attr方法来修改on
- 下一篇: nginx、apach、php、mysq