Solaris Resource Manager 1.3 系統管理指南

帳號管理

當 Solaris Resource Manager 帳號管理 PAM 模組取得控制權時,可以:

  1. 決定 Solaris Resource Manager 是否已經安裝與啟動,否則會要求 PAM 系統忽略此模組,

  2. 決定使用者是否擁有一個 lnode,否則會呼叫一個可由管理員設置的 'no lnode' 指令集,

  3. 決定是否使用者有權使用所要求的服務及裝置,

  4. 決定是否使用者已經超出警告的限制,否則拒絕其登入要求,

  5. 呼叫一個可由管理員設置的 'every login' 指令集。

如果上述任何一個步驟行不通,其餘的步驟也不會執行,Solaris Resource Manager 帳號管理 PAM 模組會回絕使用服務的要求。解釋訊息可能會透過服務來傳給使用者。

指令集

預設的 'missing lnode' 指令集會為使用者建立一個 lnode,並且遞送郵件以通知系統管理員。預設的指令集為 /etc/srm/nolnode,但您也可以編輯 /etc/pam.conf 檔並且變更 Solaris Resource Manager 帳號管理模組文字行中的 nolnode 選項值以改變預設。'every login' 指令集通常沒有設置。可以在 [[/etc/pam.conf]] 的任何 Solaris Resource Manager 帳號管理模組中新增一個 everylogin=pathname 選項以設置 'every login' 指令集。指令集會以 root 使用者的身份來調用。標準輸入、輸出及錯誤會被關閉。如果一個指令集不為零,存取會被拒絕。以環境變數來傳遞所有資訊,直接從下列服務傳給 PAM 的資訊衍生而出:

USER

提供給程式的登入名稱。藉由在密碼對映中查詢此名稱以辨證;如果找不到,帳號管理模組便會回報一個錯誤內碼給 PAM。

UID

被辨證的使用者 UID。就變更 UID 的服務(如su)而言,即為引動此服務的使用者 UID;就設定 UID 的服務(如login)而言,即為目標 UID(如 USER 的)。

RHOST

就整個網路的存取嘗試而言,即為包含發出嘗試的主機名稱。否則其值會因程式的執行方式各異而有所不同。

SERVICE

存取服務的名稱,例如 rsh, login, ftp 等等。

TTY

在其上調用服務的 TTY 名稱。某些沒有控制終端機的服務(如 ftp),則會以稍有意義的內容來填寫此變數(例如ftp12345,其中 12345ftpd 的處理識別器 (PID));否則讓它保持空白或是以服務名稱取而代之。

DEBUG

如果 pam.conf 檔中指定了debug,DEBUG 即設定為真;否則設定為假。不設定其他環境變數,所以任何指令集都必須在必要時設定其本身的 PATH 變數。

預設的 'no lnode' 指令集在預設的排程群組中建立 lnode(如果密碼對映中有此類使用者,則為 other,否則為 root。)並且遞送給系統管理員一個提醒郵件以將新的 lnode 移至排程階層中的適當位置。若需一個指令集範例,請參見 預設 'no lnode' 程序檔

PAM 與裝置群組互動

Solaris Resource Manager PAM 模組會查詢裝置階層的終端機及服務名稱,然後若超出限制或是裝置旗標求值到 'set' 的話,便回傳一個 'permission denied' 給其調用程式

所檢視的裝置類目為終端機名稱 terminal,以及所要求的服務類型 services。例如,rlogin 可能會嘗試使用網路裝置群組中的檔案,因此為使用者測試的旗標(假設所有旗標已設定為群組)將如下圖所示。依照順序檢查這些旗標:

只有在所有存取都求值到 set(開啟)的時候才會被准許。此外,會依照對應的類目來檢查限制(terminalservices)。