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

第 2 章 Sun Cluster 和 RBAC

本章介绍了与 Sun Cluster 相关的基于角色的访问控制 (Role-Based Access Control, RBAC),包含以下主题:

通过 Sun Cluster 设置和使用 RBAC

使用下表确定设置和使用 RBAC 时要参考的文档。本章稍后介绍在 Sun Cluster 软件中设置和使用 RBAC 所需执行的具体步骤。

任务 

指导 

详细了解 RBAC 

《系统管理指南:安全性服务》中的第 8  章 “使用角色和权限(概述)”

设置和管理元素以及使用 RBAC 

《系统管理指南:安全性服务》中的第 9  章 “使用基于角色的访问控制(任务)”

详细了解 RBAC 元素和工具 

《系统管理指南:安全性服务》中的第 10  章 “基于角色的访问控制(参考)”

Sun Cluster RBAC 权限配置文件

Sun Cluster Manager 以及您在命令行发出的所选 Sun Cluster 命令和选项使用 RBAC 进行授权。需要 RBAC 授权的 Sun Cluster 命令和选项都将用到以下一个或多个授权级别。Sun Cluster RBAC 权限配置文件适用于全局群集中的投票节点和非投票节点。

solaris.cluster.read

对执行列出、显示和其他读取操作进行授权。

solaris.cluster.admin

对更改群集对象的状态的操作进行授权。

solaris.cluster.modify

对更改群集对象的属性的操作进行授权。

有关 Sun Cluster 命令所需的 RBAC 授权的更多信息,请参见该命令的手册页。

RBAC 权限配置文件包含一个或多个 RBAC 授权。您可以将这些权限配置文件分配给用户或角色,使其对 Sun Cluster 具有不同级别的访问权限。Sun 在 Sun Cluster 软件中提供了以下权限配置文件。


注 –

下表列出的 RBAC 权限配置文件仍可根据 Sun Cluster 以前发行版中的定义支持旧的 RBAC 授权。


权限配置文件 

包含授权 

角色标识权限 

Sun Cluster 命令 

无,但包含使用 euid=0 运行的 Sun Cluster 命令的列表

执行用于配置和管理群集的选定 Sun Cluster 命令,包括所有 Sun Cluster 命令的以下子命令: 

  • list

  • show

  • status

scha_control(1HA)

scha_resource_get(1HA)

scha_resource_setstatus(1HA)

scha_resourcegroup_get(1HA)

scha_resourcetype_get(1HA)

基本 Solaris 用户 

该现有 Solaris 权限配置文件包含 Solaris 授权以及以下权限: 

 
 

solaris.cluster.read

执行 Sun Cluster 命令的列出、显示和其他读取操作,以及访问 Sun Cluster Manager GUI。 

群集操作 

此权限配置文件专用于 Sun Cluster 软件,并包含以下授权: 

 
 

solaris.cluster.read

执行列出、显示、导出、获取状态和其他读取操作,以及访问 Sun Cluster Manager GUI。 

  

solaris.cluster.admin

更改群集对象的状态。 

系统管理员 

现有 Solaris 权限配置文件包含的授权与群集管理配置文件中包含的授权相同。 

执行群集管理角色身份所能执行的所有操作,以及其他系统管理操作。 

群集管理 

该权限配置文件包含的授权与群集操作配置文件中包含的授权相同。此外,还包含以下授权: 

执行群集操作角色身份所能执行的所有操作,以及更改群集对象的属性。 

  

solaris.cluster.modify

 

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

使用此任务可通过 Sun Cluster 管理权限配置文件创建一个新的 RBAC 角色并为这个新角色指定用户。

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

开始之前

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

  1. 启动管理角色工具。

    要运行“管理角色”工具,请按照《系统管理指南:安全性服务》中的“如何在 Solaris Management Console 中承担角色”所述,启动 Solaris Management Console。打开用户工具集合,并单击“管理角色”图标。

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

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

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

    使用“下一步”和“后退”按钮在对话框之间浏览。注意,只有填写了所有必需字段后,“下一步”按钮才会变为活动状态。在最后一个对话框中,您可以查看输入的数据,并可在此时使用“后退”按钮更改输入,或单击“完成”保存新角色。以下列表汇总了对话框中的字段和按钮。

    角色名称

    角色的简称。

    全名

    名称的详细版本。

    描述

    角色说明。

    角色 ID 号

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

    角色 Shell

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

    创建角色邮件列表

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

    可用权限/授权权限

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

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

    服务器

    起始目录的服务器。

    路径

    起始目录路径。

    添加

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

    删除

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


    注 –

    您需要先将此配置文件放入分配给角色的配置文件列表中。


  4. 将需要使用 Sun Cluster Manager 功能或 Sun Cluster 命令的用户添加到新创建的角色中。

    使用 useradd(1M) 命令可向系统中添加用户帐户。-P 选项会为用户帐户分配一个角色。

  5. 单击“完成”。

  6. 打开一个终端窗口,并使用 root 用户身份。

  7. 启动和停止名称服务缓存守护程序。

    只有重新启动名称服务缓存守护进程之后,此新角色才能生效。成为 root 用户后,键入以下文本:


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

Procedure如何从命令行创建角色

  1. 成为超级用户或使用一个可提供 solaris.cluster.admin RBAC 授权的角色。

  2. 选择创建角色的方法:

    • 对于本地范围内的角色,使用 roleadd(1M) 命令可以指定一个新的本地角色及其属性。

    • 另外,对于本地范围内的角色,编辑 user_attr(4) 文件可以添加 type=role 的用户。

      只有在紧急情况下才能使用此方法。

    • 对于名称服务中的角色,使用 smrole(1M) 命令可指定新的角色及其属性。

      此命令需要由超级用户或能够创建其他角色的角色来验证。可以将 smrole 应用于所有名称服务。此命令作为 Solaris Management Console 服务器的客户端运行。

  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 属性

您可以使用用户帐户工具或命令行修改用户的 RBAC 属性。要修改用户的 RBAC 属性,请选择以下过程之一。

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

开始之前

要修改用户的属性,您必须以 root 用户身份运行用户工具集合,或使用一个分配有主管理员权限配置文件的角色。

  1. 启动用户帐户工具。

    要运行用户帐户工具,请按照《系统管理指南:安全性服务》中的“如何在 Solaris Management Console 中承担角色”所述,启动 Solaris Management Console。打开用户工具集合,单击“用户帐户”图标。

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

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

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

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

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


      注 –

      避免将权限配置文件直接分配给用户。首选方法是让用户通过使用角色来执行特权应用程序。此策略可防止用户滥用特权。


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

  1. 成为超级用户或使用一个可提供 solaris.cluster.modify RBAC 授权的角色。

  2. 选择适当的命令:

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

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

      只有在紧急情况下才能使用此方法。

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

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