Linux-PAM PAM-MySQL的總結

1、理論知識

1.1、PAM模塊

1.1.1、PAM的介紹

Pluggable Authentication Modules簡稱PAM,是一個微縮的可插入認證模塊(PAM is an acronym for Pluggable Authentication Modules)

1.1.2、PAM的結構

wKioL1agOrug7pRDAAEeYP0aulI824.png

1)模塊層(PAM服務模塊) - PAM結構最底層

作用:為接口層提供用戶鑒別等服務

1
2
--?驗證用戶名、密碼、賬號是否過期等
--?完成賬戶管理、會話管理和口令管理等

2)應用程序接口層(PAM API) - PAM結構中間層

作用:

1
2
--?向上屏蔽用戶鑒別等過程的細節
--?向下調用模塊層的具體模塊提供特定的服務

接口分類:

接口與模塊相對應類型(調用下層特定接口):

1
2
3
4
5
6
7
8
9
10
--?鑒別類接口
?--?pam_authenticate()?鑒別用戶
?--?pam_setcred()?修改用戶密碼信息
--?賬號類接口
?--?pam_acct_mgmt()?鑒別用戶賬號是否有權限登錄以及賬號是否過期
--?會話類接口
?--?pam_open_session()
?--?pam_close_session()
--?口令類接口
?--?pam_chauthok()

接口與模塊不相對應(對底層模塊提供支持以及實現應用程序與模塊的通訊):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
--?管理性接口
?--?pam_start()?標記PAM事務開始
?--?pam_end()?標記PAM事務結束
?--?pam_get_item()?獲取PAM事務狀態信息
?--?pam_set_item()?設置PAM事務狀態信息
?--?pam_str()?輸出PAM事務錯誤信息
--?應用程序與模塊間通訊接口
?--?pam_start()?應用程序初始化可調用此函數存放用戶名之類的信息到PAM接口層
?--?pam_putenv()?向應用程序傳遞特定的環境變量
?--?pam_getenv()?獲取應用程序環境變量
?--?pam_getenvlist()?獲取應用程序環境變量
--?用戶與模塊間的通訊接口
?--?pam_start()函數可通過會話式回調函數,讓底層模塊通過他讀寫模塊相關的鑒別信息
--?模塊間通訊接口
?--?相互獨立的模塊可通過調用?pam_get_item()與pam_set_item()共享某些與鑒別會話有關的公共信息。
--?讀寫模塊狀態信息接口
?--?接口pam_get_data()和pam_set_data()用于按照PAM句柄要求獲取和設置特定的模塊信息。
1
2
3)應用程序層?-?PAM結構最上層
靈活調用中間層的各種鑒別功能接口

1.1.3、PAM驗證文件配置目錄

1
ls?/etc/pam.d/

顯示如下:

1
2
3
4
5
6
7
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服務的驗證文件(定義驗證規則,服務找不到相應的驗證文件則會與other匹配)

1.1.4、驗證文件的語法

1)PAM的格式

vim編輯/etc/pam.d/sshd

配置文件如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
#%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驗證文件格式分為四列:

1
module_type???control_flag???module_path???module_optional

2)module-type(模塊類型)

1
2
3
4
--?auth(驗證模塊)?-?用于驗證用戶或設置/銷毀憑證
--?account(賬戶管理模塊)?-?執行訪問、賬戶及憑證有效期、密碼限制/規則等操作
--?session(會話管理模塊)?-?初始化或終止會話
--?passwd(密碼模塊)?-?執行密碼更改或更新操作

3)control-flag(控制標記)

1
2
3
4
5
--?required?-?模塊須有返值才通過驗證,成功繼續下一模塊;失敗需待同一stack中所有模塊執行完才返值到應用程序
--?requisite?-?模塊須有返值才通過驗證,成功繼續下一模塊;失敗將不再執行同一stack內任何模塊而返值給應用程序
--?sufficient?-?模塊返成功值則通過驗證,成功則停止執行;失敗值可忽略,繼續執行下一模塊
--?optional?-?模塊可選,模塊返值對認證不起關鍵作用,無論成敗都繼續執行下一模塊,返值一般被忽略
--?include?-

4)module-path(模塊路徑)

模塊的位置查找

1
find?/?-name?pam_sepermit.so

顯示如下:

1
/lib64/security/pam_sepermit.so

如上所示:

模塊位于“/lib64/security/”目錄下(可只寫模塊名稱,32位系統位置不同)

5)module-optional(模塊選項,可選)

常見公用選項如下:

1
2
3
4
5
6
--?debug?-?該模塊調用syslog()將調試信息寫入系統日志
--?no_warn?-?該模塊不向應用程序發送警告信息
--?use_first_pass?-?使用同一stack首次獲取的密碼(不向用戶提示)
--?try_first_pass?-?嘗試使用同一stack首次獲取的密碼(不通過則向用戶提示)
--?use_mapped_pass?-?使用映射過的密碼(不向用戶提示)
--?expose_account?-?允許該模塊顯示用戶賬號等信息

1.2、PAM-MySQL的介紹

----------------------------------------------------------------------










本文轉自 tanzhenchao 51CTO博客,原文鏈接:http://blog.51cto.com/cmdschool/1737006,如需轉載請自行聯系原作者

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/285695.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/285695.shtml
英文地址,請注明出處:http://en.pswp.cn/news/285695.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ubuntu下配置jdk(離線壓縮包方式)

2019獨角獸企業重金招聘Python工程師標準>>> 1,下載jdk壓縮包 2、解壓后得到名字為jdk1.7.0_21的文件夾,將其復制到 /usr/lib/jvm下(需要新建jvm文件夾)。3、配置jdk環境變量:在啟動終端并輸入 gedit /e…

【PhotoScan精品教程】PhotoScan簡介、安裝教程(附PhotoScan1.4.5安裝包下載)

《無人機航空攝影測量精品教程》合集目錄(Pix4d、CC、EPS、PhotoScan、Inpho) PhotoScan在無人機航空攝影測量空三運算中,具有運行速度快、精度高等特點。PhotoScan空三運算的結果可以導入CC等進行模型構建。【PhotoScan精品教程】講解利用PhotoScan軟件進行航測內業空三運算…

利用JS腳本快速刪除百度網盤同一目錄下的不需要文件(可以參考這個方法刪除重復文件)

比如百度網盤某目錄下存有如下文件: 要求:將如上圖文件目錄下的文件,每個月只保留最后(新)一個(根據文件名中包含的日期),其它刪除。 比如7月份有3個文件,只保留2019-07-…

vuepress build提示YAMLException: end of the stream or a document separator is expected at line 7, colu

1、問題 vuePress執行build操作的時候 vuepress build ~/my_blogs/docs/ 錯誤提示如下 YAMLException: end of the stream or a document separator is expected at line 7, column 9:features:^at generateError (/usr/lib/node_modules/vuepress/node_modules/js-yaml/lib…

依賴注入之針對不同類型變量的幾種注入方式

控制反轉(Inversion of Control)和依賴注入(Dependency Injection)講的都是一個概念,只不過是站在了不同的角度,所謂的依賴注入: 依賴注入(DI)是指在運行期,由外部容器動態地將依賴對象注入到組件中。當spring容器啟動后,spring容…

【本周六活動】.NET Day in China

點擊藍字關注我們編輯:Alan Wang排版:Rani Sun活動介紹去年11月,.NET 6 的發布,為我們帶來了 .NET 多平臺應用 UI(.NET MAUI)。就在前不久,.NET MAUI 已正式發布。未來,作為 .NET 7 …

【PhotoScan精品教程】任務一:新建工程、導入照片、設置坐標系、導入控制點(POS)、自由空三

《無人機航空攝影測量精品教程》合集目錄(Pix4d、CC、EPS、PhotoScan、Inpho) 【PhotoScan精品教程】任務一:新建工程、導入照片、設置坐標系、導入控制點(POS)、自由空三 【PhotoScan精品教程】任務二:刺像控點,平差,質量報告精度檢查,像控點POS權重調配 【PhotoScan…

[轉]Angular 單元測試講解

Angular_單元測試 測試分類 按開發階段劃分按是否運行劃分按是否查看源代碼劃分其他ATDD,TDD,BDD,DDD ATDDTDDBDDDDDAngular單元測試 Karma的介紹jasmine介紹單元測試的好處使用jasmine和karma創建一個Angular項目Karma配置Test.ts文件測試體驗測試Form測試服務service常用斷言…

windows執行python文件提示SyntaxError: Non-ASCII character ‘\xe9‘ in file 1.py on line 7, but no encoding d

1、問題 windows環境下執行python文件,提示錯誤如下 SyntaxError: Non-ASCII character \xe9 in file 1.py on line 7, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details 2、解決辦法 py文件頭部加上 #codingutf-8

按鍵精靈如何調用Excel及按鍵精靈寫入Excel數據的方法教程---入門自動操作表格...

首先來建立一個新的Excel文檔,在桌面上點擊右鍵,選擇【新建】-【Excel工作表】,命名為【新手學員】。 現在這個新Excel文檔是空白的,我們接下來會通過按鍵精靈的腳本來打開并寫入一些數據。打開按鍵精靈軟件,點擊【新建…

第九十五節,移動流體布局和響應式布局總結

移動流體布局和響應式布局總結 寬度與高度 區塊寬度一般用max-width 最大寬度和百分比,來定義寬度,因為要實現自動縮放 高度如果要自適應,就不需要定義高度,或者定義最小高度 注意:橫向的盡量用百分比,如邊…

Maui的學習之路 -- 開篇

Maui的學習之路 -- 開篇想了很久我決定發一個Maui介紹做為開篇,雖然這是老生常談的話題,但是不能沒有這樣的探討(請容我水一篇)。什么是.NET Maui.NET Maui是微軟的一款基于.Net多平臺應用 UI (.NET MAUI)的跨平臺框架&#xff0c…

【PhotoScan精品教程】任務二:刺像控點,平差,質量報告精度檢查,像控點POS權重調配

《無人機航空攝影測量精品教程》合集目錄(Pix4d、CC、EPS、PhotoScan、Inpho) 【PhotoScan精品教程】任務一:新建工程、導入照片、設置坐標系、導入控制點(POS)、自由空三 【PhotoScan精品教程】任務二:刺像控點,平差,質量報告精度檢查,像控點POS權重調配 【PhotoScan…

互聯網架構的演變,看了好多這個講的確實清楚!

從過去的 OA、CRM、ERP 等單機即可滿足要求的系統到現代互聯網時代各大公司的分布式、微服務平臺,互聯網架構正在經歷著巨大的變革,技術也在不斷的更新迭代。 圖片來自 Pexels這也意味著眾多軟件開發者們的壓力和挑戰正在不斷的加大,這種新技…

【Inpho精品教程】Inpho簡介、安裝教程(附Inpho8安裝包下載)

《無人機航空攝影測量精品教程》合集目錄(Pix4d、CC、EPS、PhotoScan、Inpho) Inpho UASMaster是Trimble公司旗下的一款攝影測量處理軟件。本文講解Inpho簡介、安裝教程(附Inpho8安裝包下載)。 文章目錄 1. Inpho簡介2. Inpho安裝教程3. Inpho8下載地址1. Inpho簡介 1.1 主…

MAUI使用Masa blazor組件庫

上一篇(點擊閱讀)我們實現了UI在Web端(Blazor Server/Wasm)和客戶端(Windows/macOS/Android/iOS)共享,這篇我加上 Masa Blazor[2]組件庫的引用,并把前幾個月寫的時間戳轉換[3]工具加上。1. 前置知識關于Masa Blazor請點擊Masa Blazor官網[4]了解&#xf…

常用的NSLOG日志打印格式

2019獨角獸企業重金招聘Python工程師標準>>> 常用的NSLOG日志打印格式 以下是常用的LOG打印,如果有特殊,請我 ,這邊會不定期更新。 % 對象 %d, %i 整數 %u 無符整形 %f 浮點/雙字 %x, %X 二進制整數 %…

Android studio提示Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.

1、 問題 在Android studio里面運行java的lib庫,但是錯誤提示如下 Build file F:\sourceZip\app\build.gradle line: 2An exception occurred applying plugin request [id: com.android.application] > Failed to apply plugin com.android.internal.applicat…

[轉]淺析DDD(領域驅動設計)

最近在做一些微服務相關的設計,內容包括服務的劃分,Restful API的設計等。其中比較棘手的就是Service的職責劃分:如何抽象具有統一業務范疇的Model,使其模塊化,又如何高度提煉并組合多模塊,使得業務可獨立服…

【PhotoScan精品教程】任務三:生成密集點云、生成網格、生成DEM、生成DOM

《無人機航空攝影測量精品教程》合集目錄(Pix4d、CC、EPS、PhotoScan、Inpho) 【PhotoScan精品教程】任務一:新建工程、導入照片、設置坐標系、導入控制點(POS)、自由空三 【PhotoScan精品教程】任務二:刺像控點,平差,質量報告精度檢查,像控點POS權重調配 【PhotoScan…