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

第 2 章 Sun Cluster 和 RBAC

本章讲述了与 Sun Cluster 相关的 RBAC(基于角色的访问控制)。包含以下主题:

通过 Sun Cluster 设置和使用 RBAC

使用下表确定关于设置和使用 RBAC 时应参考的文档。本节后面部分讲述了通过 Sun Cluster 设置和使用 RBAC 所需遵循的特定步骤。

至 

有关关键组件相关性的图示,请参阅 

详细了解 RBAC 

《System Administration Guide: Security Services》中的第 8  章 “Using Roles and Privileges (Overview)”

设置、管理 RBAC 的元素以及使用 RBAC 

《System Administration Guide: Security Services》中的第 9  章 “Using Role-Based Access Control (Tasks)”

详细了解 RBAC 元素和工具 

《System Administration Guide: Security Services》中的第 10  章 “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 网络多路径的信息 

  

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

修改传输属性 

使用 Sun Cluster 管理权限配置文件创建和分配 RBAC 角色

要创建角色,您必须使用已分配主管理员权限配置文件的角色,或以 root 用户身份运行。

表 2–1 添加管理角色向导:对话框和字段

对话框 

字段指令 

字段说明 

步骤 1:输入角色名称 

角色名称 

角色的简称。 

 

全名 

名称的详细版本。 

 

说明 

角色说明。 

 

角色 ID 号 

角色的 UID,它是自动增量的。 

 

角色 Shell 

可用于角色的配置文件 shell:管理员的 C shell、管理员的 Bourne shell 或管理员的 Korn shell。 

 

创建角色邮件列表 

为分配给此角色的用户创建邮件列表。 

步骤 2:输入角色口令 

角色口令 

******** 

 

确认密码 

******** 

步骤 3:选择角色权限 

可用权限/授权权限 

分配或删除角色的权限配置文件。 

注意,系统不会阻止您多次键入同一命令。在权限配置文件中第一次使用某条命令时分配给该命令的的属性具有优先权,随后所有使用该命令的操作都将被忽略。您可以使用上下箭头键更改顺序。 

步骤 4:选择起始目录 

\u670d\u52a1\u5668 

起始目录的服务器。 

 

路径 

起始目录路径。 

步骤 5:为此角色分配用户 

添加 

添加可以担任此角色的用户。必须处于同一范围。 

 

删除 

删除为此角色分配的用户。 

Procedure如何使用管理角色工具来创建角色

步骤
  1. 启动管理角色工具。

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

  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
    

Procedure如何从命令行创建角色

步骤
  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

要查看新创建的角色(以及任何其他角色),请使用 smrole 命令以及 list 选项,如下所示:


# /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 用户运行用户工具集合,或使用已分配主管理员权限配置文件的角色。

Procedure如何使用用户帐户工具来修改用户的 RBAC 属性

步骤
  1. 启动用户帐户工具。

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

    启动用户帐户工具后,视图窗格中会显示现有用户帐户的图标。

  2. 单击要更改的用户帐户图标,然后在“操作”菜单中选择“属性”(或直接双击用户帐户图标)。

  3. 在对话框中单击要更改的属性的相应选项卡,如下所示:

    • 要更改为用户分配的角色,请单击“角色”选项卡,然后将要更改的角色分配移动到相应的列。可用的角色或分配的角色。

    • 要更改为用户分配的权限配置文件,请单击“权限”选项卡,然后将其移动到相应的列。可用的权限或分配的权限。


      注 –

      最好不要将权限配置文件直接分配给用户。首选的方法是强制用户承担角色以便执行特权应用程序。此策略避免了标准用户滥用特权。


Procedure如何从命令行修改用户的 RBAC 属性

步骤
  1. 成为超级用户或使用能够修改用户文件的角色。

  2. 使用相应的命令:

    • 要更改分配给在本地范围内定义的用户的授权、角色或权限配置文件,请使用 usermod(1M) 命令。

    • 要更改分配给本地范围内定义的用户的授权、角色或权限配置文件,也可以编辑 user_attr 文件。

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

    • 要更改分配给在名称服务中定义的用户的授权、角色或权限配置文件,请使用 smuser(1M) 命令。

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