Jquery中文網 www.uhadif.co
Jquery中文網 >  操作系統  >  linux基礎  >  正文 Linux PAM認證詳解

Linux PAM認證詳解

發布時間:2014-08-15   編輯:www.uhadif.co
Linux PAM認證詳解

PAM簡介
PAM是 PLUGGABLE AUTHENTICATION MODULES 的縮寫。
它是一套共享庫.它可以讓系統管理員選擇應用程序怎樣去認證用戶,而不需要知道應用程序的內部的實現細節,也不需要重新編譯代碼。

在PAM出現之前,一般的應用程序,在要去認證用戶時,它們會將某種特定的認證方式硬編碼到程序內部。比如,傳統的UNI*操作系統上的用戶登入程序,它先獲得用戶的用戶名和密碼,然后,將用戶輸入的密碼進行計算得到密文,最后,將得到的密文和/etc/shadow文件中的該用戶所在行的第二個字段進行比較,如果相同,則認證通過,否則,認證失敗。

這種認證過程的缺點在于,你無法方便地去改變登入程序所使用的這種認證方式(除非你自己去修改源代碼,然后編譯)。

隨著計算機速度的飚升,和網絡并行計算的的普及,越來越多的舊的認證機制變得非常得脆弱;同時,也出于用戶管理方便的需要,我們有時侯需要去改變應用程序的認證過程 。
這時候,傳統的應用程序的認證機制就顯得很不方便。PAM 就在這時候誕生了。

如果某個應用程序使用了PAM,當它需要進行用戶認證的時候,只需要把認證過程簡單得交給PAM模塊,然后,由PAM模塊對用戶進行認證,PAM再將認證的結果返回給應用程序。應用程序并不知道PAM到底使用了使么方法對用戶進行了認證,這個由系統管理員來決定。管理員可以天真地使用simple trust (pam_permit)來進行認證,也可以使用非常復雜的認證方式,如網膜認證、聲紋認證等。

下面是認證的過程圖解。
img1

  上圖中,左邊是應用程序(application) X, 它簡單地調用PAM模塊所提供的接口 (interfaces), 然后中間的PAM模塊讀取PAM config file(PAM配置文件, 這些配置文件通常是/etc/pam.conf或者是/etc/pam.d/*)來決定使用什么認證方式。之后,PAM進行用戶,最后,PAM將認證結果返回給應用程序。對于應用程序來講,認證過程是怎么進行的,它并不知道。應用程序到底使用什么認證方式,是由管理員修改配置文件來決定的。

從圖中可以看出,PAM的功能被分為四個部分: (1) authentication(認證), (2)account(賬號管理), (3) password (密碼管理), 和 (4)session (對話管理)。

以下解釋這四個功能的具體任務以及PAM提供給應用程序的接口:
img2

配置文件的修改:配置文件的格式為:

復制代碼 代碼如下:
#服務名 模塊類型 控制標志 模塊路徑 模塊參數
login auth required pam_unix_auth.so nowarn
login session required pam_unix_session.so
login account required pam_unix_account.so

模塊類型分別對應上述四種managements中的一種。PAM在認證時,就按照從上往下的順序,依次進行每一個認證。

pam.conf中的 “控制標志” 實際上是指明這些 Stacked module 的工作方式。
它可取的值如下:
(a) required:
該模塊的讓正必須通過,失敗者立即返回錯誤信息。
(b) optional:
表示可以忽略它的錯誤而繼續下面一個模塊。
(c)sufficient:
表明通過該模塊的認證已經是足夠了, 下面的模塊就不用被調用了, 認證也就到此結束,PAM立即返回成功的消息。

在linux下, 也可以用/etc/pam.d中的文件來配置.這些文件的格式與pam.conf
類似,只是在文件中沒有包含服務名. 其服務名就是它的文件名。
如上述的login也可以配置如下:

復制代碼 代碼如下:
/etc/pam.d/login
auth required pam_unix.so debug
auth required pam_kerb.so use_mapped_pass
auth optional pam_rsa.so use_first_pass

您可能感興趣的文章:
Linux PAM認證詳解
Linux VSFTP 配置詳解
vsftpd 安裝配置詳細教程
vsftpd下創建虛擬用戶的方法
精解/etc/sshd_config配置文檔
CentOS 5.5下FTP安裝配置詳解
centos vsftpd 安裝配置詳解
有關Linux root不能登錄的問題
ubuntu下Dr.com(802.1x)撥號上網完美解決方法
Linux系統分區詳解

[關閉]
北京pk赛车历史