本章讲述了与 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 网络多路径的信息 注意: 此授权不适用于 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 |
修改传输属性 |
要创建角色,您必须假定把具有主管理员权限的配置文件指定给该角色或以 root 用户运行。
启动管理角色工具。
运行管理角色工具,启动 Solaris 管理控制台,如 System Administration Guide: Security Services 中的 “How to Assume a Role in the Console Tools”中所述。 然后,打开用户工具集合,并单击“管理角色”图标。
启动“添加管理角色”向导。
从“操作”菜单中选择“添加管理角色”启动“添加管理角色”向导以配置角色。
设置已分配了 Cluster 管理权限配置文件的角色。
使用“下一步”和“后退”按钮在对话框之间浏览。 注意,只有填写了所有所需字段后,“下一步”按钮变为活动状态。 最后一个对话框使您可以查看输入的数据,此时您可以返回并更改数据项,也可以单击“完成”保存新角色。表 2–1 总结了各个对话框。
您需要先将此配置文件放入分配给角色的配置文件列表中。
将需要使用 SunPlex Manager 功能或 Sun Cluster 命令的用户添加到新创建的角色。
您可以使用 useradd(1M) 命令将用户帐户添加到系统中。 -P 选项会为用户帐户分配一个角色。
完成后,请单击“完成”。
打开终端窗口,成为 root 用户,然后启动和停止名称服务缓存守护程序。
只有重新启动名称服务缓存守护程序之后,此新角色才能生效。 成为 root 用户后,请键入下列各项:
# /etc/init.d/nscd stop # /etc/init.d/nscd start |
对话框 |
字段 |
字段说明 |
---|---|---|
步骤 1: 输入角色名称 |
角色名称 |
角色的简称。 |
|
全称 |
名称的详细版本。 |
|
说明 |
角色说明。 |
|
角色 ID 号 |
角色的 UID,它是自动增量的。 |
|
角色 Shell |
可用于角色的配置文件 shell: 管理员的 C shell、管理员的 Bourne shell 或管理员的 Korn shell。 |
|
创建角色邮件列表 |
为分配给此角色的用户创建邮件列表。 |
步骤 2: 输入角色口令 |
角色口令 |
******** |
|
确认口令 |
******** |
步骤 3: 选择角色权限 |
可用权限/授权权限 |
分配或删除角色的权限配置文件。 注意,系统不会阻止您多次键入同一命令。 在权限配置文件中第一次使用某条命令时分配给该命令的的属性具有优先权,随后所有使用该命令的操作都将被忽略。 您可以使用上下箭头键更改顺序。 |
步骤 4: 选择起始目录 |
服务器 |
起始目录的服务器。 |
|
路径 |
起始目录路径。 |
步骤 5: 为此角色分配用户 |
添加 |
添加可以担任此角色的用户。 必须处于同一范围。 |
|
删除 |
删除为此角色分配的用户。 |
选择创建角色的方法:
如果是本地范围中的角色,请使用 roleadd (1M) 命令指定新的本地角色及其属性。
另外,如果是本地范围中的角色,请编辑 user_attr(4) 文件以使用 type=role 添加用户。
由于键入时容易出错,建议您仅在紧急情况下使用此方法。
如果是名称服务中的角色,请使用 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 |
要查看新创建的角色(以及任何其它角色),请结合使用 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 |
要修改用户的特性,必须作为 root 用户运行用户工具集合,或担任分配了主管理员权限配置文件的角色。
启动“用户帐户”工具。
要运行“用户帐户”工具,您需要启动 Solaris 管理控制台,如 System Administration Guide: Security Services 中的 “How to Assume a Role in the Console Tools” 中所述。 然后,打开用户工具集合,并单击“用户帐户”图标。
启动“用户帐户”工具后,视图窗格中会显示现有用户帐户的图标。
单击要更改的用户帐户图标,然后在“操作”菜单中选择“特性”(或直接双击用户帐户图标)。
在对话框中单击要更改的特性的相应选项卡,如下所示:
要更改为用户分配的角色,请单击“角色”选项卡,然后将要更改的角色分配移动到相应的列。 可用的角色或分配的角色。
要更改为用户分配的权限配置文件,请单击“权限”选项卡,然后将其移动到相应的列。 可用的权限或分配的权限。
最好不要将权限配置文件直接分配给用户。 首选的方法是强制用户承担角色以便执行特权应用程序。 此策略避免了标准用户滥用特权。
使用相应的命令:
要更改分配给本地范围内定义的用户的授权、角色或权限配置文件,请使用 usermod (1M) 命令。
要更改分配给本地范围内定义的用户的授权、角色或权限配置文件,也可以编辑 user_attr 文件。
由于键入时容易出错,建议您仅在紧急情况下使用此方法。
要更改指定给名称服务中定义的用户的授权、角色或权限配置文件,请使用 smuser(1M) 命令。
此命令需要由超级用户或能够创建其它角色的角色来进行鉴别。 可以将 smrole 应用到所有名称服务。 smuser 作为 Solaris 管理控制台服务器的客户端运行。