Sun Cluster 系統管理指南 (適用於 Solaris 作業系統)

第 2章 Sun Cluster 與 RBAC

本章說明了關於 Sun Cluster 的 RBAC (基於角色的存取控制)。 涵蓋的主題包含:

針對 Sun Cluster 設定並使用 RBAC

使用下表確定關於設定和使用 RBAC 時應參考的說明文件。 本章稍後將描述有關針對 Sun Cluster 設定並使用 RBAC 所遵循的具體步驟。

目的 

參考 

詳細瞭解 RBAC 

System Administration Guide: Security Services中的「Role-Based Access Control (Overview)」

設定 RBAC、管理 RBAC 的元素和使用 RBAC 

System Administration Guide: Security Services中的「Role-Based Access Control (Tasks)」

詳細瞭解 RBAC 元素和工具 

System Administration Guide: Security Services中的「Role-Based Access Control (Reference)」

Sun Cluster RBAC 許可權設定檔

SunPlex Manager、在指令行上發出的選取的 Sun Cluster 指令以及選項使用 RBAC 進行授權。 Sun Cluster 中包含數個 RBAC 許可權設定檔。 您可以將這些許可權設定檔指定給使用者或角色,以使他們對 Sun Cluster 具有不同層次的存取權限。 Sun 提供的 Sun Cluster 軟體之許可權設定檔如下所示。

許可權設定檔 

包含授權 

此授權允許角色身份執行的作業 

Sun Cluster 指令 

無,但包含一系列 euid=0 時執行的 Sun Cluster 指令

執行您選取用來配置與管理叢集的 Sun Cluster 指令,其中包含: 

scgdevs( 1M)

scswitch( 1M) (選取的選項)

scha_control( 1HA)

scha_resource_get(1HA)

scha_resource_setstatus(1HA)

scha_resourcegroup_get(1HA)

scha_resourcetype_get(1HA)

Solaris 基本使用者 

此現有的 Solaris 許可權設定檔包含 Solaris 授權,以及﹕  

執行 Solaris 基本使用者角色身份可執行的相同作業,以及﹕ 

 

solaris.cluster.device.read

讀取有關裝置群組的資訊  

  

solaris.cluster.gui

存取 SunPlex Manager 

  

solaris.cluster.network.read

讀取有關 IP 網路多重路徑的資訊 


註解 –

此授權不適用於 SunPlex Manager。


  

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

安裝叢集軟體 


註解 –

此授權不適用於 SunPlex Manager。


  

solaris.cluster.network.admin

對 IP 網路多重路徑性質執行管理作業 


註解 –

此授權不適用於 SunPlex Manager。


  

solaris.cluster.network.read

讀取有關 IP 網路多重路徑的資訊 


註解 –

此授權不適用於 SunPlex Manager。


  

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

管理系統 


註解 –

此授權不適用於 SunPlex Manager。


  

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 網路多重路徑性質 


註解 –

此授權不適用於 SunPlex Manager。


  

solaris.cluster.node.modify

修改節點性質 


註解 –

此授權不適用於 SunPlex Manager。


  

solaris.cluster.quorum.modify

修改法定裝置與法定狀態性質 

  

solaris.cluster.resource.modify

修改資源性質與資源群組性質 

  

solaris.cluster.system.modify

修改系統性質 


註解 –

此授權不適用於 SunPlex Manager。


  

solaris.cluster.transport.modify

修改傳輸性質 

使用 Sun Cluster 管理許可權設定檔建立與指定 RBAC 角色

若要建立角色,您必須成為指定有主要管理員許可權設定檔的角色,或以超級使用者的身份來執行。

如何使用 [管理角色] 工具建立角色
  1. 啟動 [管理角色] 工具。

    執行 [管理角色] 工具,啟動 Solaris 管理主控台,如System Administration Guide: Security Services中的「How to Assume a Role in the Console Tools」中所述。 然後,開啟 [使用者工具集合],並按一下 [管理角色] 圖示。

  2. 啟動 [新增管理角色] 精靈。

    從 [動作] 功能表,選取 [新增管理角色],來啟動 [新增管理角色] 精靈以配置角色。

  3. 設定指定了叢集管理許可權設定檔的角色。

    使用 [下一步] 和 [上一步] 按鈕在對話方塊之間導覽。 請注意,只有在您填入所有必填欄位之後,[下一步] 按鈕才會變為使用中狀態。 最後一個對話方塊可讓您檢查所輸入的資料,此時您可以返回以變更項目,或按一下 [完成] 以儲存新角色。表 2–1 概述了對話方塊。


    註解 –

    您需要首先將此設定檔置於指定給角色的設定檔清單中。


  4. 將需要使用 SunPlex Manager 功能或 Sun Cluster 指令的使用者新增到新建立的角色中。

    您要使用 useradd(1M) 指令將使用者帳戶新增至系統。 -P 選項指定角色至使用者帳戶。

  5. 完成時按一下 [完成]。

  6. 開啟一個終端機視窗,成為 root,然後啟動與停止名稱服務快取常駐程式。

    新角色直到重新啟動名稱服務快取常駐程式後才會生效。 成為 root 後,請輸入以下內容﹕


    # /etc/init.d/nscd stop
    # /etc/init.d/nscd start
    
表 2–1 新增管理角色精靈︰ 對話方塊與欄位

對話方塊 

欄位  

欄位說明 

步驟 1﹕ 輸入角色名稱 

角色名稱  

角色短名稱。  

 

全名 

名稱的長版本。  

 

說明 

角色說明。  

 

角色 ID 編號 

自動遞增之角色的 UID。  

 

角色 Shell 

可用於角色的設定檔 shell: 管理員的 C shell、管理員的 Bourne shell 或管理員的 Korn shell。  

 

建立角色郵件清單  

為指定了此角色的使用者建立郵件清單。 

步驟 2﹕ 輸入角色密碼 

角色密碼  

********  

 

確認密碼 

******** 

步驟 3: 選取角色許可權 

可用許可權/授與的許可權 

指定或移除角色的許可權設定檔。  

請注意,系統不會阻止您多次輸入相同的指令。 指定給許可權設定檔中首次出現的指令之性質具有優先順序,而之後出現的所有相同指令將被忽略。 使用向上箭頭和向下箭頭來變更順序。 

步驟 4﹕ 選取主目錄 

伺服器  

主目錄的伺服器。  

 

路徑 

主目錄路徑。 

步驟 5﹕ 為此角色指定使用者 

新增  

新增可承擔此角色的使用者。 必須在相同範圍內。  

 

刪除 

刪除指定給此角色的使用者。 

如何經由指令行建立角色
  1. 成為超級使用者,或是成為一個能夠建立其他角色的角色。

  2. 選取建立角色的方法﹕

    • 對於本機範圍內的角色,使用 roleadd( 1M) 指令來指定新的本機角色及其性質。

    • 此外,對於本機範圍內的角色,請使用 type=role 編輯 user_attr(4) 檔案來新增使用者。

      建議僅在緊急情況下使用此方法,因為此方法在輸入時很容易出錯。

    • 對於名稱服務內的角色,請使用 smrole(1M) 指令來指定新角色及其性質。

      此指令需要超級使用者授權或能夠建立其他角色的角色授權。 您可以將 smrole 套用至所有的名稱服務。 此指令作為 Solaris 管理主控台伺服器的用戶端執行。

  3. 啟動與停止名稱服務快取常駐程式。

    新角色直到重新啟動名稱服務快取常駐程式後才會生效。 作為 root,請輸入以下內容﹕


    # /etc/init.d/nscd stop
    # /etc/init.d/nscd start
    

範例 2–1 使用 smrole 指令建立自訂操作者角色

以下序列說明了使用 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

修改使用者的 RBAC 屬性

經由指令行新增角色若要修改使用者的屬性,您必須作為 root 使用者執行使用者工具集合,或成為指定有主要管理員許可權設定檔的角色。

如何使用 [使用者帳戶] 工具修改使用者的 RBAC 屬性
  1. 啟動 [使用者帳戶] 工具。

    若要執行 [使用者帳戶] 工具,您需要啟動 Solaris 管理主控台,如System Administration Guide: Security Services中的「How to Assume a Role in the Console Tools」中所述。 然後,開啟 [使用者工具集合],並按一下 [使用者帳戶] 圖示。

    啟動 [使用者帳戶] 工具後,現有使用者帳戶的圖示將顯示在檢視窗格中。

  2. 按一下要變更的使用者帳戶圖示,並從 [動作] 功能表選取 [屬性] (或僅按兩下使用者帳戶圖示)。

  3. 在對話方塊中按一下所要變更屬性的適當標籤,如下所示﹕

    • 若要變更指定給使用者的角色,請按一下 [角色] 標籤,並將要變更的角色指定移至適當的欄﹕ [可用角色] 或 [指定的角色]。

    • 若要變更指定給使用者的許可權設定檔,請按一下 [許可權] 標籤,並將其移至適當的欄: [可用許可權] 或 [指定的許可權]。


      註解 –

      將許可權設定檔直接指定給使用者不是一個好的實施方法。 較好的方法是強制使用者成為角色以執行特權應用程式。 此策略避免了一般使用者濫用特權的可能性。


如何經由指令行修改使用者的 RBAC 屬性
  1. 成為超級使用者或成為可以修改使用者檔案的角色。

  2. 使用適當的指令﹕

    • 若要變更指定給在本機範圍內定義的使用者的授權、角色或許可權設定檔,請使用 usermod(1M) 指令。

    • 此外,若要變更指定給在本機範圍內定義的使用者的授權、角色或許可權設定檔,還可以編輯 user_attr 檔案。

      建議僅在緊急情況下使用此方法,因為此方法在輸入時很容易出錯。

    • 若要變更指定給在名稱服務內定義的使用者的授權、角色或許可權設定檔,請使用 smuser(1M) 指令。

      此指令需要超級使用者授權或能夠變更使用者檔案的角色授權。 您可以將 smuser 套用至所有的名稱服務。 smuser 作為 Solaris 管理主控台伺服器的用戶端執行。