本章說明了關於 Sun Cluster 的 RBAC (基於角色的存取控制)。包含以下主題:
使用下表確定關於設定和使用 RBAC 時應參考的說明文件。本章稍後將描述有關針對 Sun Cluster 設定並使用 RBAC 所遵循的具體步驟。
SunPlex Manager 和所選取的 Sun Cluster 指令以及您在指令行上發出的選項使用 RBAC 進行授權。Sun Cluster 中包含數個 RBAC 許可權設定檔。您可以將這些許可權設定檔指定給使用者或角色,以使他們對 Sun Cluster 具有不同層次的存取權限。Sun 提供的 Sun Cluster 軟體之許可權設定檔如下所示。
許可權設定檔 |
包含授權 |
此授權允許角色身份執行的作業 |
---|---|---|
Sun Cluster 指令 |
無,但包含一系列 euid=0 時執行的 Sun Cluster 指令 |
執行您選取用來配置與管理叢集的 Sun Cluster 指令,其中包含: scswitch(1M) (已選取的選項) |
Solaris 基本使用者 |
此現有的 Solaris 許可權設定檔包含 Solaris 授權,以及﹕ |
執行 Solaris 基本使用者角色身份可執行的相同作業,以及﹕ |
|
solaris.cluster.device.read |
讀取有關裝置群組的資訊 |
|
solaris.cluster.gui |
存取 SunPlex Manager |
|
solaris.cluster.network.read |
讀取有關 IP 網路多重路徑的資訊 |
|
solaris.cluster.node.read |
讀取有關節點性質的資訊 |
|
solaris.cluster.quorum.read |
讀取有關法定裝置與法定狀態的資訊 |
|
solaris.cluster.resource.read |
讀取有關資源與資源群組的資訊 |
|
solaris.cluster.system.read |
讀取叢集的狀態 |
|
solaris.cluster.transport.read |
讀取有關傳輸的資訊 |
叢集作業 |
solaris.cluster.appinstall |
安裝已叢集的應用程式 |
|
solaris.cluster.device.admin |
對裝置群組性質執行管理作業 |
|
solaris.cluster.device.read |
讀取有關裝置群組的資訊 |
|
solaris.cluster.gui |
存取 SunPlex Manager |
|
solaris.cluster.install |
安裝叢集軟體 |
|
solaris.cluster.network.admin |
對 IP 網路多重路徑性質執行管理作業 |
|
solaris.cluster.network.read |
讀取有關 IP 網路多重路徑的資訊 |
|
solaris.cluster.node.admin |
對節點性質執行管理作業 |
|
solaris.cluster.node.read |
讀取有關節點性質的資訊 |
|
solaris.cluster.quorum.admin |
對法定裝置與法定狀態性質執行管理作業 |
|
solaris.cluster.quorum.read |
讀取有關法定裝置與法定狀態的資訊 |
|
solaris.cluster.resource.admin |
對資源性質與資源群組性質執行管理作業 |
|
solaris.cluster.resource.read |
讀取有關資源與資源群組的資訊 |
|
solaris.cluster.system.admin |
管理系統 |
|
solaris.cluster.system.read |
讀取叢集的狀態 |
|
solaris.cluster.transport.admin |
對傳輸性質執行管理作業 |
|
solaris.cluster.transport.read |
讀取有關傳輸的資訊 |
系統管理員 |
現有的 Solaris 許可權設定檔包含叢集管理設定檔所包含的相同授權。 |
除其他系統管理作業之外,還執行叢集管理角色身份可以執行的相同作業。 |
叢集管理 |
此許可權設定檔包含叢集作業設定檔所包含的相同授權,以及以下授權﹕ |
執行叢集管理角色身份可執行的相同作業,以及﹕ |
|
solaris.cluster.device.modify |
修改裝置群組性質 |
|
solaris.cluster.gui |
存取 SunPlex Manager |
|
solaris.cluster.network.modify |
修改 IP 網路多重路徑性質 |
|
solaris.cluster.node.modify |
修改節點性質 |
|
solaris.cluster.quorum.modify |
修改法定裝置與法定狀態性質 |
|
solaris.cluster.resource.modify |
修改資源性質與資源群組性質 |
|
solaris.cluster.system.modify |
修改系統性質 |
|
solaris.cluster.transport.modify |
修改傳輸性質 |
若要建立角色,您必須成為已為其指定了主要管理員許可權設定檔的角色,或以 root 使用者身份執行。
表 2–1 新增管理角色精靈︰對話方塊與欄位
對話方塊 |
欄位 |
欄位說明 |
---|---|---|
步驟 1﹕輸入角色名稱 |
角色名稱 |
角色短名稱。 |
|
全名 |
名稱的長版本。 |
|
描述 |
角色說明。 |
|
角色 ID 編號 |
自動遞增之角色的 UID。 |
|
角色 Shell |
可用於角色的設定檔 shell:管理員的 C shell、管理員的 Bourne shell 或管理員的 Korn shell。 |
|
建立角色郵件清單 |
為指定了此角色的使用者建立郵件清單。 |
步驟 2﹕輸入角色密碼 |
角色密碼 |
******** |
|
確認密碼 |
******** |
步驟 3:選取角色許可權 |
可用許可權/授與的許可權 |
指定或移除角色的許可權設定檔。 請注意,系統不會阻止您多次輸入相同的指令。指定給許可權設定檔中首次出現的指令之性質具有優先順序,而之後出現的所有相同指令將被忽略。使用向上箭頭和向下箭頭來變更順序。 |
步驟 4﹕選取主目錄 |
伺服器 |
主目錄的伺服器。 |
|
路徑 |
主目錄路徑。 |
步驟 5:為此角色指定使用者 |
加入 |
新增可承擔此角色的使用者。必須在相同範圍內。 |
|
刪除 |
刪除指定給此角色的使用者。 |
啟動 [管理角色] 工具。
執行 [管理角色] 工具,啟動 Solaris 管理主控台,如「系統管理指南:安全性服務」中「System Administration Guide: Security Services」中的「How to Assume a Role in the Solaris Management Console」中所述。。然後,開啟 [使用者工具集合],並按一下 [管理角色] 圖示。
啟動 [新增管理角色] 精靈。
從 [動作] 功能表,選取 [新增管理角色],來啟動 [新增管理角色] 精靈以配置角色。
設定指定了叢集管理許可權設定檔的角色。
使用 [下一步] 和 [上一步] 按鈕在對話方塊之間導覽。請注意,只有在您填入所有必填欄位之後,[下一步] 按鈕才會變為使用中狀態。最後一個對話方塊可讓您檢查所輸入的資料,此時您可以返回以變更項目,或按一下 [完成] 以儲存新角色。表 2–1 總結了這些對話方塊。
您需要首先將此設定檔置於指定給角色的設定檔清單中。
將需要使用 SunPlex Manager 功能或 Sun Cluster 指令的使用者新增到新建立的角色中。
使用 useradd(1M) 指令將使用者帳號增加至系統。-P 選項指定角色至使用者帳號。
完成時按一下 [完成]。
開啟一個終端機視窗,成為 root,然後啟動與停止名稱服務快取常駐程式。
新角色直到重新啟動名稱服務快取常駐程式後才會生效。成為 root 後,請輸入以下內容﹕
# /etc/init.d/nscd stop # /etc/init.d/nscd start |
選取建立角色的方法﹕
對於本機範圍內的角色,請使用 roleadd(1M) 指令指定新的本機角色及其特性。
或者,對於本機範圍內的角色,可以使用 type=role 來編輯 user_attr(4) 檔案,以增加使用者。
建議僅在緊急情況下使用此方法,因為此方法在輸入時很容易出錯。
對於名稱服務內的角色,請使用 smrole(1M) 指令指定新角色及其特性。
此指令需要超級使用者授權或能夠建立其他角色的角色授權。您可以將 smrole 套用至所有的名稱服務。此指令作為 Solaris 管理主控台伺服器的用戶端執行。
啟動與停止名稱服務快取常駐程式。
新角色直到重新啟動名稱服務快取常駐程式後才會生效。作為 root,請輸入以下內容﹕
# /etc/init.d/nscd stop # /etc/init.d/nscd start |
以下序列說明了如何使用 smrole 指令建立角色。在此範例中,建立了新版本的操作者角色,並且為其指定了標準操作者許可權設定檔以及媒體復原許可權設定檔。
% su primaryadmin # /usr/sadm/bin/smrole add -H myHost -- -c "Custom Operator" -n oper2 -a johnDoe \ -d /export/home/oper2 -F "Backup/Restore Operator" -p "Operator" -p "Media Restore" Authenticating as user: primaryadmin Type /? for help, pressing <enter> accepts the default denoted by [ ] Please enter a string value for: password :: <type primaryadmin password> Loading Tool: com.sun.admin.usermgr.cli.role.UserMgrRoleCli from myHost Login to myHost as user primaryadmin was successful. Download of com.sun.admin.usermgr.cli.role.UserMgrRoleCli from myHost was successful. Type /? for help, pressing <enter> accepts the default denoted by [ ] Please enter a string value for: password ::<type oper2 password> # /etc/init.d/nscd stop # /etc/init.d/nscd start |
若要檢視新建立的角色 (以及任何其他角色),請使用帶 list 選項的 smrole,如下所示:
# /usr/sadm/bin/smrole list -- Authenticating as user: primaryadmin Type /? for help, pressing <enter> accepts the default denoted by [ ] Please enter a string value for: password :: <type primaryadmin password> Loading Tool: com.sun.admin.usermgr.cli.role.UserMgrRoleCli from myHost Login to myHost as user primaryadmin was successful. Download of com.sun.admin.usermgr.cli.role.UserMgrRoleCli from myHost was successful. root 0 Super-User primaryadmin 100 Most powerful role sysadmin 101 Performs non-security admin tasks oper2 102 Custom Operator |
若要修改使用者的特性,您必須以 root 使用者身份或成為已為其指定主要管理員許可權的角色執行 [使用者工具集合]。
啟動 [使用者帳號] 工具。
若要執行 [使用者帳號] 工具,您需要啟動 Solaris 管理主控台,如「系統管理指南:安全服務」中「System Administration Guide: Security Services」中的「How to Assume a Role in the Solaris Management Console」 中所述。然後,開啟 [使用者工具集合],並按一下 [使用者帳號] 圖示。
啟動 [使用者帳號] 工具後,現有使用者帳號的圖示將顯示在檢視窗格中。
按一下要變更的使用者帳號圖示,並從 [動作] 功能表選取 [特性] (或僅按兩下使用者帳號圖示)。
在對話方塊中按一下所要變更特性的適當標籤,如下所示﹕
若要變更指定給使用者的角色,請按一下 [角色] 標籤,並將要變更的角色指定移至適當的欄﹕[可用角色] 或 [指定的角色]。
若要變更指定給使用者的許可權設定檔,請按一下 [許可權] 標籤,並將其移至適當的欄:[可用許可權] 或 [指定的許可權]。
將許可權設定檔直接指定給使用者不是一個好的實施方法。較好的方法是強制使用者成為角色以執行特權應用程式。此策略避免了一般使用者濫用特權的可能性。
使用適當的指令﹕
若要變更指定給在本機範圍內定義的使用者的授權、角色或許可權設定檔,請使用 usermod(1M) 指令。
此外,若要變更指定給在本機範圍內定義的使用者的授權、角色或許可權設定檔,還可以編輯 user_attr 檔案。
建議僅在緊急情況下使用此方法,因為此方法在輸入時很容易出錯。
若要變更指定給在名稱服務內定義的使用者的授權、角色或許可權設定檔,請使用 smuser(1M) 指令。
此指令需要超級使用者授權或能夠變更使用者檔案的角色授權。您可以將 smuser 套用至所有的名稱服務。smuser 作為 Solaris 管理主控台伺服器的用戶端執行。