Sun Cluster 系统管理指南(适用于 Solaris OS)

第 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 

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 角色

要创建角色,您必须假定把具有主管理员权限的配置文件指定给该角色或以 root 用户运行。

如何使用管理角色工具来创建角色
  1. 启动管理角色工具。

    运行管理角色工具,启动 Solaris 管理控制台,如 System Administration Guide: Security Services 中的 “How to Assume a Role in the Console Tools”中所述。 然后,打开用户工具集合,并单击“管理角色”图标。

  2. 启动“添加管理角色”向导。

    从“操作”菜单中选择“添加管理角色”启动“添加管理角色”向导以配置角色。

  3. 设置已分配了 Cluster 管理权限配置文件的角色。

    使用“下一步”和“后退”按钮在对话框之间浏览。 注意,只有填写了所有所需字段后,“下一步”按钮变为活动状态。 最后一个对话框使您可以查看输入的数据,此时您可以返回并更改数据项,也可以单击“完成”保存新角色。表 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) 命令指定新的本地角色及其属性。

    • 另外,如果是本地范围中的角色,请编辑 user_attr(4) 文件以使用 type=role 添加用户。

      由于键入时容易出错,建议您仅在紧急情况下使用此方法。

    • 如果是名称服务中的角色,请使用 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

要查看新创建的角色(以及任何其它角色),请结合使用 smrolelist 选项,如下所示:


# /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) 命令。

      此命令需要由超级用户或能够创建其它角色的角色来进行鉴别。 可以将 smrole 应用到所有名称服务。 smuser 作为 Solaris 管理控制台服务器的客户端运行。