Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1316006
  • 博文数量: 554
  • 博客积分: 10425
  • 博客等级: 上将
  • 技术积分: 7555
  • 用 户 组: 普通用户
  • 注册时间: 2006-11-09 09:49
文章分类

全部博文(554)

文章存档

2012年(1)

2011年(1)

2009年(8)

2008年(544)

分类:

2008-04-10 15:55:18

 
配置RBAC
第9 章• 使用基于角色的访问控制(任务) 187
要进一步检查权限配置文件,请阅读以下内容之一:
 在/etc/security 目录中,阅读prof_attr 数据库和exec_attr 数据库的内容。
 在Solaris Management Console 中,使用“权限”工具显示权限配置文件的内容。
 在本书中,参阅第211 页中的“权限配置文件的内容”以了解某些典型的权限配置文件
的摘要。
确定是否有任何其他角色或权限配置文件适用于组织。
请在站点上查找可能从受限制访问中受益的其他应用程序或应用程序系列。合适的RBAC
候选对象包括:影响安全的应用程序、可能导致服务被拒绝的应用程序,或需要对管理员
进行特殊培训的应用程序。您可以自定义角色和权限配置文件,以处理组织的安全要求。
a. 确定新任务所需的命令。
b. 确定适用于此任务的权限配置文件。
检查现有权限配置文件是否可以处理此任务,或是否需要创建单独的权限配置文件。
c. 确定适用于此权限配置文件的角色。
确定是否应将此任务的权限配置文件指定给现有角色,或是否应创建新角色。如果使用
现有角色,请检查其他权限配置文件是否适用于将被指定该角色的用户。
确定应将哪些用户指定给可用角色。
根据最低特权的原则,应将用户指定给适合其信任级别的角色。如果禁止用户访问用户无
需执行的任务,则可以减少潜在的问题。
 如何使用GUI 创建和指定角色
您可以以超级用户身份,也可以使用主管理员角色来创建新角色。在此过程中,新角色的
创建者会承担主管理员的角色。
 您已在站点上创建可承担角色的用户。如果尚未创建这些用户,请按照《System
Administration Guide: Basic Administration》中的“Using the Solaris Management ToolsWith
RBAC (Task Map)”的说明进行创建。
 已按照《System Administration Guide: Basic Administration》中的“Using the Solaris
Management ToolsWith RBAC (Task Map)”的过程,为您指定了主管理员角色。
启动Solaris Management Console。
# /usr/sbin/smc &
有关登录说明,请参见第201 页中的“如何在Solaris Management Console 中承担角色”。
单击“管理角色”图标。
从“操作”菜单中选择“添加管理角色”。
5
6
开始之前
1
2
3
配置RBAC
188 系统管理指南:安全性服务• 2006 年9 月
填写一系列对话框中的字段以创建新角色。
有关可能的角色,请参见示例9–1 至示例9–4。
提示– Solaris Management Console 中的所有工具都会在页面底部或向导面板的左侧显示信
息。您可随时选择“帮助”,以查找有关在此界面中执行任务的其他信息。
将角色指定给用户。
提示– 填写角色的属性后,最后一个对话框将提示您为该角色指定一个用户。
在终端窗口中,重新启动名称服务高速缓存守护进程。
# svcadm restart system/name-service-cache
有关更多信息,请参见svcadm(1M) 和nscd(1M) 手册页。
为系统管理员权限配置文件创建角色
在本示例中,新角色可以执行与安全无关的系统管理任务。该角色是通过执行上述过程创
建的,其参数如下:
 角色名称:sysadmin
 角色全名:System Administrator
 角色说明: Performs non-security admin tasks
 权限配置文件:System Administrator
此权限配置文件位于该角色具有的配置文件列表的顶部。
为操作员权限配置文件创建角色
操作员权限配置文件可以管理打印机并将系统备份到脱机介质。您可能希望将该角色指定
给各个班次上的某个用户。为此,可在“步骤1:进入‘角色名’对话框”中选择角色邮件
列表选项。该角色是通过执行上述过程创建的,其参数如下:
 角色名称: operadm
 全名: Operator
 描述: Backup operator
 权限配置文件: Operator
此权限配置文件必须位于该角色中具有的配置文件列表的顶部。
为与安全相关的权限配置文件创建角色
缺省情况下,仅有主管理员配置文件包含与安全相关的命令和权限。如果要创建功能不如
主管理员强大,但可处理某些与安全相关的任务的角色,则必须创建该角色。
在以下示例中,该角色可保护设备。该角色是通过执行上述过程创建的,其参数如下:
4
5
6
示例9–1
示例9–2
示例9–3
配置RBAC
第9 章• 使用基于角色的访问控制(任务) 189
 角色名称: devicesec
 全名: Device Security
 描述: Configures Devices
 权限配置文件: Device Security
在以下示例中,该角色可确保系统和主机在网络上的安全。该角色是通过执行上述过程创
建的,其参数如下:
 角色名称: netsec
 全名:Network Security
 描述: Handles IPsec, IKE, and SSH
 权限配置文件:Network Security
为具有有限范围的权限配置文件创建角色
许多权限配置文件的范围都是有限的。在本示例中,该角色的唯一任务是管理DHCP。该
角色是通过执行上述过程创建的,其参数如下:
 角色名称: dhcpmgt
 全名: DHCP Management
 描述: Manages Dynamic Host Config Protocol
 权限配置文件: DHCP Management
修改用户的角色指定
在本示例中,将向现有用户添加角色。您可以修改用户的角色指定,方法是在Solaris
Management Console 的“用户”工具中单击“用户帐户”图标,双击相应用户,然后按照
联机帮助的说明将角色添加到该用户的功能。
如果角色不具有应有的功能,请检查以下情况:
 角色的权限配置文件是否按功能从高到低的顺序在GUI 中列出?
例如,如果All 权限配置文件位于列表顶部,则不会运行具有安全性属性的命令。包含
具有安全性属性的命令的配置文件在列表中必须位于All 权限配置文件的前面。
 角色的权限配置文件中的命令是否具有相应的安全性属性?
例如,如果策略为suser,则某些命令会要求uid=0,而不是要求euid=0。
 是否在相应的名称服务范围中定义了权限配置文件?角色是否在定义权限配置文件的名
称服务范围内运行?
 名称服务高速缓存svc:/system/name-service-cache 是否已重新启动?
nscd 守护进程可以具有很长的生存时间间隔。通过重新启动此守护进程,可使用当前数
据更新该名称服务。
示例9–4
示例9–5
故障排除
配置RBAC
190 系统管理指南:安全性服务• 2006 年9 月
 如何通过命令行创建角色
Solaris Management Console GUI 是管理RBAC 的首选方法。要使用该GUI,请参见第188 页
中的“如何使用GUI 创建和指定角色”。另外,还可以使用命令行界面,如此过程中所
述。
注– 请勿尝试同时使用命令行和图形用户界面来管理RBAC。这样可能会导致对配置所做的
更改出现冲突,从而使得行为不可预测。您可以使用这两种工具来管理RBAC,但是不能同
时使用二者。
要创建角色,必须承担具有主管理员权限配置文件的角色,或切换到用户root。
承担主管理员角色,或成为超级用户。
主管理员角色拥有主管理员配置文件。要创建角色并将角色指定给用户,请参见《System
Administration Guide: Basic Administration》中的第2 章,“WorkingWith the Solaris
Management Console (Tasks)”。
选择以下命令之一,在命令行上创建角色。
 对于本地名称服务范围内的角色,请使用roleadd 命令。
注– 与Solaris Management Console GUI 或命令行界面相比,roleadd 命令的限制更多。运
行roleadd 命令后,还必须运行usermod 命令才能将角色指定给用户。然后,用户还必
须为角色设置口令,如第194 页中的“如何将角色指定给本地用户”中所述。
# roleadd -c comment \
-g group -m homedir -u UID -s shell \
-P profile rolename
-c comment 描述rolename 的注释。
-g group rolename 的组指定。
-m homedir rolename 的起始目录的路径。
-u UID rolename 的UID。
-s shell rolename 的登录shell。此shell 必须是配置文件shell。
-P profile rolename 的一个或多个权限配置文件。
rolename 新本地角色的名称。
开始之前
1
2
配置RBAC
第9 章• 使用基于角色的访问控制(任务) 191
 使用smrole add 命令。
此命令可在NIS、NIS+ 或LDAP 等分布式名称服务中创建角色。此命令将作为Solaris
Management Console 服务器的客户机运行。
$ /usr/sadm/bin/smrole -D domain-name \
-r admin-role -l \
add -- -n rolename -a rolename -d directory\
-F full-description -p profile
-D domain-name 要管理的域的名称。
-r admin-role 可以修改角色的管理角色的名称。管理角色必须具有
solaris.role.assign 授权。如果要修改已承担的角色,则该角色必
须具有solaris.role.delegate 授权。
-l admin-role 的口令输入提示。
-- 验证选项和子命令选项之间必需的分隔符。
-n rolename 新角色的名称。
-c comment 描述角色功能的注释。
-a username 可以承担rolename 的用户的名称。
-d directory rolename 的起始目录。
-F full-description rolename 的完整说明。此说明显示在Solaris Management Console
GUI 中。
-p profile rolename 的功能中包括的权限配置文件。此选项可为角色提供具有
管理功能的命令。您可以指定多个-p profile 选项。
要使更改生效,请参见第194 页中的“如何将角色指定给本地用户”。
使用smrole 命令创建自定义操作员角色
smrole 命令可在名称服务中指定新角色及其属性。在以下示例中,主管理员创建了一个新
版本的操作员角色。该角色具有标准的操作员权限配置文件以及介质恢复权限配置文件。
请注意,此命令会提示您输入新角色的口令。
% su primaryadm
Password: <键入primaryadm 的口令>
$ /usr/sadm/bin/smrole add -H myHost -- -c "Backup and Restore Operator" \
-n operadm2 -a janedoe -d /export/home/operadm \
3
示例9–6
配置RBAC
192 系统管理指南:安全性服务• 2006 年9 月
-F "Backup/Restore Operator" -p "Operator" -p "Media Restore"
Authenticating as user: primaryadm
Type /? for help, pressing accepts the default denoted by [ ]
Please enter a string value for: password :: <键入primaryadm 的口令>
Loading Tool: com.sun.admin.usermgr.cli.role.UserMgrRoleCli from myHost
Login to myHost as user primaryadm was successful.
Download of com.sun.admin.usermgr.cli.role.UserMgrRoleCli from myHost was successful.
Type /? for help, pressing accepts the default denoted by [ ]
Please enter a string value for: password :: <键入operadm2 的口令>
$ svcadm restart system/name-service-cache
包含list 子命令的smrole 命令用于显示新角色:
$ /usr/sadm/bin/smrole list --
Authenticating as user: primaryadm
Type /? for help, pressing accepts the default denoted by [ ]
Please enter a string value for: password :: <键入primaryadm 的口令>
Loading Tool: com.sun.admin.usermgr.cli.role.UserMgrRoleCli from myHost
Login to myHost as user primaryadm was successful.
配置RBAC
第9 章• 使用基于角色的访问控制(任务) 193
Download of com.sun.admin.usermgr.cli.role.UserMgrRoleCli from myHost was successful.
root 0 Superuser
primaryadm 100 Most powerful role
sysadmin 101 Performs non-security admin tasks
operadm 102 Backup Operator
operadm2 103 Backup/Restore Operator
 如何将角色指定给本地用户
此过程会将本地角色指定给本地用户、重新启动名称高速缓存守护进程,然后说明用户如
何承担该角色。
要将角色指定给分布式名称服务中的用户,请参见第191 页中的“如何通过命令行创建角
色”和第203 页中的“如何更改角色的属性”。
您已按照第191 页中的“如何通过命令行创建角色”中所述添加了本地角色。您必须已承
担主管理员角色或已切换到超级用户。
将角色指定给本地用户。
如果已使用roleadd 命令添加了本地角色,则必须执行此步骤。使用smrole 命令和Solaris
Management Console 创建角色时,此步骤为可选步骤。
# usermod -u UID -R rolename
-u UID 用户的UID。
-R rolename 指定给用户的角色。
要使更改生效,请重新启动名称服务高速缓存守护进程。
# svcadm restart system/name-service-cache
如果已使用Solaris Management Console 界面添加了角色,请转至第198 页中的“使用角色
(任务列表)”。否则,请继续执行下一步。
(可选的)要解除锁定角色帐户,用户必须创建口令。
如果已使用roleadd 命令添加了本地角色,则必须执行此步骤。
% su rolename
Password: <键入rolename 的口令>
Confirm Password: <重新键入rolename 的口令>
开始之前
1
2
3
配置RBAC
194 系统管理指南:安全性服务• 2006 年9 月
$
通过命令行创建和指定本地角色
在本示例中,将创建管理Solaris 加密框架的角色。加密管理权限配置文件中包含用于管理
本地系统中的硬件和软件加密服务的cryptoadm 命令。
# roleadd -c "Cryptographic Services manager" \
-g 14 -m /export/home/cryptoadm -u 104 -s pfksh \
-P "Crypto Management" cryptomgt
# usermod -u 1111 -R cryptomgt
# svcadm restart system/name-service-cache
% su cryptomgt
Password: <键入cryptomgt 的口令>
Confirm Password: <重新键入cryptomgt 的口令>
$ /usr/ucb/whoami
cryptomgt
$
有关Solaris 加密框架的信息,请参见第13 章。要管理该框架,请参见第266 页中的“管理
加密框架(任务列表)”。
 如何审计角色
可以审计角色执行的操作。审计记录中包括承担角色的用户的登录名、角色名和角色执行
的操作。6180:AUE_prof_cmd:profile command:ua,as 审计事件用于收集该信息。通过预先
选择as 类或ua 类,可以审计角色操作。
规划审计并编辑审计配置文件。
有关更多信息,请参见第535 页中的“Solaris 审计(任务列表)”。
示例9–7
1
配置RBAC
第9 章• 使用基于角色的访问控制(任务) 195
在audit_control 文件的flags 行中包括ua 类或as 类。
# audit_control file
dir:/var/audit
flags:lo,as
minfree:20
naflags:lo
ua 类和as 类包括其他审计事件。要查看类中包括的审计事件,请阅读audit_event 文件。
另外,还可以使用bsmrecord 命令,如示例29–22 中所示。
完成审计服务的配置,然后启用审计。
有关更多信息,请参见第546 页中的“配置和启用审计服务”。
 如何使root 用户成为角色
此过程说明如何将root 从登录用户更改为角色。完成此过程后,将无法再以root 身份登录
到系统,但在单用户模式下除外。如果已为您指定root 角色,则可以对root 执行su。
通过将root 用户更改为角色,可以防止匿名root 登录。由于用户必须首先登录,然后才能
承担root 角色,因此用户的登录ID 将提供给审计服务并位于sulog 文件中。
如果将root 用户更改为角色,但未将该角色指定给有效用户,或当前没有与root 用户等效
的现有角色,则任何用户都不能成为超级用户。
 为安全起见,至少应为一个本地用户指定root 角色。
 如果以root 身份登录,则无法执行此过程。您必须以自身身份登录,然后才能对root
执行su。
以普通用户身份登录到目标主机。
承担主管理员角色,或成为超级用户。
主管理员角色拥有主管理员配置文件。要创建该角色并将其指定给用户,请参见《System
Administration Guide: Basic Administration》中的“Using the Solaris Management ToolsWith
RBAC (Task Map)”。
创建可承担root 角色的本地用户。
$ useradd -c comment -d homedir username
-c comment 描述用户的注释。
-d homedir 用户的起始目录。此目录应位于本地系统中。
2
3
开始之前
1
2
3
配置RBAC
196 系统管理指南:安全性服务• 2006 年9 月
username 新本地用户的名称。
# useradd -c "Local administrative user" -d /export/home1 admuser
为用户指定口令。
# passwd -r files admuser
New Password: <键入口令>
Re-enter new Password: <重新键入口令>
passwd: password successfully changed for admuser
#
确保您未以root 身份登录。
# who
jdoe console May 24 13:51 (:0)
jdoe pts/5 May 24 13:51 (:0.0)
jdoe pts/4 May 24 13:51 (:0.0)
jdoe pts/10 May 24 13:51 (:0.0)
将root 用户更改为角色。
# usermod -K type=role root
验证root 是否为角色。
user_attr 文件中root 项的显示应与以下内容类似:
root::::type=role;auths=solaris.*,solaris.grant;profiles=Web Console
Management,All;lock_after_retries=no
将root 角色指定给本地管理用户。
# usermod -R root admuser
配置在失败时返回的名称服务。
a. 打开新的终端窗口并承担root 角色。
% whoami
jdoe
4
5
6
7
8
9
配置RBAC
第9 章• 使用基于角色的访问控制(任务) 197
% su admuser
Enter password: <键入admuser 的口令>
% roles
root
% su root
Enter password: <键入root 的口令>
#
b. 编辑nsswitch.conf 文件。
例如,nsswitch.conf 文件中的以下各项将允许返回名称服务。
passwd: files nis [TRYAGAIN=0 UNAVAIL=return NOTFOUND=return]
group: files nis [TRYAGAIN=0 UNAVAIL=return NOTFOUND=return]
将root 角色指定给名称服务中选定的用户帐户。
有关过程,请参见第207 页中的“如何更改用户的RBAC 属性”。
使用角色(任务列表)
以下任务列表列出了用于在指定角色后使用角色的过程:
任务说明参考
使用Solaris Management
Console
以角色身份对自身进行验证,以便在Solaris
Management Console 中执行管理任务。
第201 页中的“如何在Solaris Management
Console 中承担角色”
在终端窗口中承担角色在配置文件shell 中执行命令行管理任务。第199 页中的“如何在终端窗口中承担角色”
使用角色
使用缺省的Solaris 权限配置文件设置角色并将其指定给用户后,便可以使用这些角色。可
以通过命令行来承担角色。在Solaris Management Console 中,还可使用角色以本地方式和
通过网络来管理系统。
10
使用角色(任务列表)
198 系统管理指南:安全性服务• 2006 年9 月
 如何在终端窗口中承担角色
必须已为您指定了角色,并且必须使用该信息更新名称服务。
在终端窗口中,确定可以承担的角色。
% roles
Comma-separated list of role names is displayed
使用su 命令承担角色。
% su rolename
Password: <键入rolename 的口令>
$
带有角色名的su 命令会将shell 更改为该角色的配置文件shell。配置文件shell 可识别安全性
属性(授权、特权和集ID 位)。
验证您现在是否已承担某种角色。
$ /usr/ucb/whoami
rolename
您现在可在此终端窗口中执行角色任务。
(可选的)查看角色的功能。
有关过程,请参见第240 页中的“如何确定角色可以运行的特权命令”。
承担主管理员角色
在以下示例中,用户承担主管理员角色。在缺省配置中,该角色与超级用户等效。然后,
该角色会查看哪些特权可供在角色的配置文件shell 中键入的任何命令使用。
% roles
sysadmin,oper,primaryadm
% su primaryadm
Password: <键入primaryadm 口令>
$ /usr/ucb/whoami 提示符更改为角色提示符
primaryadm
$ ppriv $$
开始之前
1
2
3
4
示例9–8
使用角色
第9 章• 使用基于角色的访问控制(任务) 199
1200: pfksh
flags =
E (Effective): all
I (Inheritable): basic
P (Permitted): all
L (Limit): all
有关特权的信息,请参见第177 页中的“权限(概述)”。
承担root 角色
在以下示例中,用户承担root 角色。该角色是在第196 页中的“如何使root 用户成为角色
”中创建的。
% roles
root
% su root
Password: <键入root 的口令>
# /usr/ucb/whoami 提示符更改为角色提示符
root
$ ppriv $$
1200: pfksh
flags =
E: all
I: basic
P: all
L: all
有关特权的信息,请参见第177 页中的“权限(概述)”。
示例9–9
使用角色
200 系统管理指南:安全性服务• 2006 年9 月
承担系统管理员角色
在以下示例中,用户承担系统管理员的角色。与主管理员角色相反,系统管理员角色在其
有效集中具有基本的特权集。
% roles
sysadmin,oper,primaryadm
% su sysadmin
Password: <键入sysadmin 的口令>
$ /usr/ucb/whoami 提示符更改为角色提示符
sysadmin
$ ppriv $$
1200: pfksh
flags =
E: basic
I: basic
P: basic
L: all
有关特权的信息,请参见第177 页中的“权限(概述)”。有关该角色功能的简短说明,
请参见第212 页中的“系统管理员权限配置文件”。
 如何在Solaris Management Console 中承担角色
要在Solaris Management Console GUI 中更改信息,需要具有管理功能。角色可为您提供管
理功能。如果要查看信息,则必须具有solaris.admin.usermgr.read 授权。基本Solaris 用
户权限配置文件包括此授权。
必须已为您指定了可以更改用户或角色属性的管理角色。例如,主管理员角色可更改用户
或角色的属性。
启动Solaris Management Console。
% /usr/sbin/smc &
示例9–10
开始之前
1
使用角色
第9 章• 使用基于角色的访问控制(任务) 201
有关详细说明,请参见《System Administration Guide: Basic Administration》中的“Using the
Solaris Management ToolsWith RBAC (Task Map)”。
根据任务选择工具箱。
导航至包含相应名称服务范围内的工具或集合的工具箱,然后单击该图标。这些范围包括
文件(本地)、NIS、NIS+ 和LDAP。如果导航窗格中未显示相应的工具箱,请从“控制台
”菜单中选择“打开工具箱”并装入相关的工具箱。
选择要使用的工具。
导航到该工具或集合,然后单击相应图标。用于管理RBAC 元素的工具位于“用户”工具
中,如下图所示:
在“登录:用户名”对话框中键入用户名和口令。
在“登录:角色”对话框中对自身进行验证。
该对话框中的“角色”选项菜单显示了为您指定的角色。请选择角色并键入角色口令。
管理RBAC(任务列表)
以下任务列表列出了用于在初步实现基于角色的访问控制(role-based access control, RBAC)
后自定义RBAC 的过程。
2
3
4
5
管理RBAC(任务列表)
202 系统管理指南:安全性服务• 2006 年9 月
任务说明参考
修改角色的属性修改角色的功能(特权、特权命令、配置文件或授
权)。
第203 页中的“如何更改角色的属性”
创建或更改权限配置文件创建权限配置文件。或修改授权、特权命令或权限
配置文件中的补充权限配置文件。
第205 页中的“如何创建或更改权限配
置文件”
更改用户的管理功能向普通用户添加角色、权限配置文件、授权或特
权。
第207 页中的“如何更改用户的RBAC
属性”
确保传统应用程序安全为传统应用程序启用集ID 权限。脚本可以包含具有
集ID 的命令。传统应用程序可检查授权(如果适
用)。
第209 页中的“如何为传统应用程序添
加RBAC 属性”
这些过程可用于管理RBAC 中使用的元素。有关用户管理的过程,请参阅《System
Administration Guide: Basic Administration》中的第5 章,“Managing User Accounts and
Groups (Tasks)”。
管理RBAC
Solaris Management Console GUI 是管理RBAC 的首选方法。
注– 请勿尝试同时使用命令行和图形用户界面来管理RBAC。这样可能会导致对配置所做的
更改出现冲突,从而使得行为不可预测。这两种工具都可以管理RBAC,但是不能同时使用
二者。
 如何更改角色的属性
要更改角色属性,您必须已承担主管理员角色或已切换到超级用户。角色属性包括口令、
权限配置文件和授权。
使用以下方法之一更改角色属性。
 使用Solaris Management Console 中的“用户”工具。
要启动该控制台,请参见第201 页中的“如何在Solaris Management Console 中承担角色
”。请按照左侧窗格中的说明在“管理角色”中修改角色。有关更详细的信息,请参见
联机帮助。
 使用rolemod 命令。
此命令可修改本地名称服务中定义的角色的属性。
$ rolemod -c comment -P profile-list rolename
-c comment 描述角色功能的新注释。
开始之前

管理RBAC
第9 章• 使用基于角色的访问控制(任务) 203
-P profile-list 角色具有的配置文件的列表。此列表将替换当前的配置文件列表。
rolename 要修改的现有本地角色的名称。
有关更多命令选项,请参见rolemod(1M) 手册页。
 使用包含modify 子命令的smrole 命令。
此命令可修改NIS、NIS+ 或LDAP 等分布式名称服务中的角色的属性。此命令将作为
Solaris Management Console 服务器的客户机运行。
$ /usr/sadm/bin/smrole -D domain-name \
-r admin-role -l \
modify -- -n rolename -r username -u username
-D domain-name 要管理的域的名称。
-r admin-role 可以修改角色的管理角色的名称。管理角色必须具有
solaris.role.assign 授权。如果要修改已承担的角色,则该角色必
须具有solaris.role.delegate 授权。
-l admin-role 的口令输入提示。
-- 验证选项和子命令选项之间必需的分隔符。
-n rolename 新角色的名称。
-r username 无法再承担rolename 的用户的名称。
-u username 现在可以承担rolename 的用户的名称。
有关更多命令选项,请参见smrole(1M) 手册页。
使用rolemod 命令更改本地角色的属性
在本示例中,将修改operadm 角色以使其具有介质恢复权限配置文件。
$ rolemod -c "Handles printers, backup, AND restore" \
-P "Printer Management,Media Backup,Media Restore,All" operadm
使用smrole modify 命令更改本地角色的属性
在以下示例中,将修改operadm 角色以添加介质恢复权限配置文件。
$ /usr/sadm/bin/smrole -r primaryadm -l \
modify -- -n operadm -c "Handles printers, backup, AND restore" \
示例9–11
示例9–12
管理RBAC
204 系统管理指南:安全性服务• 2006 年9 月
-p "Media Restore"
使用smrole modify 命令更改域中的角色
在以下示例中,将更改clockmgr 角色。ID 为108 的NIS 用户无法再承担该角色。ID 为110
的NIS 用户可以承担clockmgr 角色。
$ /usr/sadm/bin/smrole -D nis:/examplehost/example.domain \
-r primaryadm -l \
modify -- -n clockmgr -r 108 -u 110
 如何创建或更改权限配置文件
权限配置文件是一种角色属性。如果prof_attr 数据库不包含满足您需求的权限配置文件,
则应创建或更改权限配置文件。要了解有关权限配置文件的更多信息,请参见第175 页中
的“RBAC 权限配置文件”。
要创建或更改权限配置文件,您必须已承担主管理员的角色或已切换到超级用户。
使用以下方法之一更改角色的属性。
 使用Solaris Management Console 中的“用户”工具。
要启动该控制台,请参见第201 页中的“如何在Solaris Management Console 中承担角色
”。请按照左侧窗格中的说明在“权限”中创建或更改权限配置文件。有关更详细的信
息,请参见联机帮助。
 使用smprofile 命令。
使用此命令可以添加、修改、列出或删除权限配置文件。此命令可在文件以及NIS、
NIS+ 或LDAP 等分布式名称服务中运行。smprofile 命令将作为Solaris Management
Console 服务器的客户机运行。
$ /usr/sadm/bin/smprofile -D domain-name \
-r admin-role -l \
add | modify -- -n profile-name \
-d description -m help-file -p supplementary-profile
-D domain-name 要管理的域的名称。
示例9–13
开始之前

管理RBAC
第9 章• 使用基于角色的访问控制(任务) 205
-r admin-role 可以修改角色的管理角色的名称。管理角色必须具有
solaris.role.assign 授权。如果要修改已承担的角色,则该
角色必须具有solaris.role.delegate 授权。
-l admin-role 的口令输入提示。
-- 验证选项和子命令选项之间必需的分隔符。
-n profile-name 新配置文件的名称。
-d description 配置文件的简短说明。
-m help-file 已创建并放置在/usr/lib/help/profiles/locale/C 目录中的
HTML帮助文件的名称。
-p supplementary-profile 此权限配置文件中包括的现有权限配置文件的名称。您可以
指定多个-p supplementary-profile 选项。
有关更多命令选项,请参见smprofile(1M) 手册页。
通过命令行修改权限配置文件
在以下示例中,网络管理权限配置文件充当网络安全权限配置文件的补充配置文件。包含
网络安全配置文件的角色现在可以配置网络和主机,而且还可以运行与安全相关的命令。
$ /usr/sadm/bin/smprofile -D nisplus:/example.host/example.domain \
-r primaryadm -l \
modify -- -n "Network Security" \
-d "Manage network and host configuration and security" \
-m RtNetConfSec.html -p "Network Management"
运行此命令之前,管理员创建了一个新的帮助文件RtNetConfSec.html,并将其放置在
/usr/lib/help/profiles/locale/C 目录中。
使用权限工具创建新的权限配置文件
下表列出了名为“生成管理员”的假设的权限配置文件的样例数据。此权限配置文件包括子
目录/usr/local/swctrl/bin 中的命令。这些命令的有效UID 为0。生成管理员权限配置文
件适用于管理软件开发的生成和版本控制的管理员。
选项卡字段示例
一般名称生成管理员
示例9–14
示例9–15
管理RBAC
206 系统管理指南:安全性服务• 2006 年9 月
选项卡字段示例
说明用于管理软件生成和版本控制。
帮助文件名称BuildAdmin.html
命令添加目录单击“添加目录”,在对话框中键入/usr/local/swctrl/bin,然
后单击“确定”。
命令遭拒/许可的命令将/usr/local/swctrl/bin 移动到“许可的命令”列。
设置安全性属性选择/usr/local/swctrl/bin,单击“设置安全性属性”,然后将
“有效UID”设置为root。
授权排除的授权/包括的授权无授权。
辅助权限排除的权限/包括的权限无补充权限配置文件。
如果权限配置文件没有为角色提供所需的功能,请检查以下情况:
 角色的权限配置文件是否按功能从高到低的顺序在GUI 中列出?
例如,如果All 权限配置文件位于列表顶部,则不会运行具有安全性属性的命令。包含
具有安全性属性的命令的配置文件在列表中必须位于All 权限配置文件的前面。
 角色的权限配置文件中是否多次列出了某个命令?如果是这样,第一个命令实例是否具
有所需的全部安全性属性?
例如,某个命令可以要求该命令特定选项的特权。为使要求特权的选项成功运行,列表
中的最高权限配置文件的第一个命令实例必须具有指定的特权。
 角色的权限配置文件中的命令是否具有相应的安全性属性?
例如,如果策略为suser,则某些命令要求uid=0 而非euid=0 才能成功运行。
 名称服务高速缓存svc:/system/name-service-cache 是否已重新启动?
nscd 守护进程可以具有很长的生存时间间隔。通过重新启动此守护进程,可使用当前数
据更新该名称服务。
 如何更改用户的RBAC 属性
用户属性包括口令、权限配置文件和授权。为用户提供管理功能的最安全的方法是将角色
指定给用户。有关说明,请参见第177 页中的“直接指定安全属性时的安全注意事项”。
要更改用户属性,您必须已承担主管理员角色或已切换到超级用户。
使用以下方法之一更改用户的RBAC 属性。
 使用Solaris Management Console 中的“用户”工具。
要启动该控制台,请参见第201 页中的“如何在Solaris Management Console 中承担角色
”。请按照左侧窗格中的说明在“用户帐户”中修改用户。有关更详细的信息,请参见
联机帮助。
故障排除
开始之前

管理RBAC
第9 章• 使用基于角色的访问控制(任务) 207
提示– 为用户直接指定授权、特权或权限配置文件并不是一个好的做法。首选方法是将
角色指定给用户。然后,用户承担角色以执行特权操作。
 使用usermod 命令。
此命令可修改本地名称服务中定义的用户的属性。
$ usermod -R rolename username
-R rolename 现有本地角色的名称。
username 要修改的现有本地用户的名称。
有关更多命令选项,请参见usermod(1M) 手册页。
 使用包含modify 子命令的smuser 命令。
此命令可修改NIS、NIS+ 或LDAP 等分布式名称服务中的用户的属性。此命令将作为
Solaris Management Console 服务器的客户机运行。
$ /usr/sadm/bin/smuser -D domain-name \
-r admin-role -l \
modify -- -n username -a rolename
-D domain-name 要管理的域的名称。
-r admin-role 可以修改角色的管理角色的名称。管理角色必须具有
solaris.role.assign 授权。如果要修改已承担的角色,则该角色必
须具有solaris.role.delegate 授权。
-l admin-role 的口令输入提示。
-- 验证选项和子命令选项之间必需的分隔符。
-n username 指定了rolename 的用户的名称。
-a rolename 将指定给username 的角色的名称。您可以指定多个-a rolename 选
项。
有关更多命令选项,请参见smuser(1M) 手册页。
通过命令行修改本地用户的RBAC 属性
在本示例中,用户jdoe 现在可以承担系统管理员的角色。
$ usermod -R sysadmin jdoe
示例9–16
管理RBAC
208 系统管理指南:安全性服务• 2006 年9 月
使用smuser 命令修改用户的RBAC 属性
在本示例中,为用户jdoe 指定了两个角色:系统管理员和操作员。由于该用户和这两个角
色是在本地定义的,因此不必使用-D 选项。
$ /usr/sadm/bin/smuser -r primaryadm -l \
modify -- -n jdoe -a sysadmin -a operadm
在以下示例中,该用户是在NIS 名称服务中定义的。因此,需要使用-D 选项。两个角色是
在名称服务中定义的。角色root 是在本地定义的。
$ /usr/sadm/bin/smuser -D nis:/examplehost/example.domain \
-r primaryadm -l \
modify -- -n jdoe -a sysadmin -a operadm -a root
 如何为传统应用程序添加RBAC 属性
传统应用程序是一个命令或一组命令。先针对权限配置文件中的每个命令设置安全性属
性。然后,在角色中包括该权限配置文件。承担该角色的用户便可以运行具有安全性属性
的传统应用程序。
要将传统应用程序添加到Solaris Management Console,请参见《System Administration
Guide: Basic Administration》中的“Adding Tools to the Solaris Management Console”。
要更改权限配置文件中命令的安全性属性,您必须已承担主管理员角色或已切换到超级用
户。
使用Solaris Management Console 中的“用户”工具。
要启动该控制台,请参见第201 页中的“如何在Solaris Management Console 中承担角色
”。请按照左侧窗格中的说明在“权限”中修改权限配置文件。有关更详细的信息,请参
见联机帮助。
向实现传统应用程序的命令添加安全性属性。
向传统应用程序添加安全性属性的方式与为任何命令添加安全性属性的方式相同。您必须
将具有安全性属性的命令添加到权限配置文件。对于传统命令,请为命令指定euid=0 或
uid=0 安全性属性。有关该过程的详细信息,请参见第205 页中的“如何创建或更改权限配
置文件”。
将传统应用程序添加到权限配置文件后,在角色的配置文件列表中包括该权限配置文件。
要向角色添加权限配置文件,请参见第203 页中的“如何更改角色的属性”。
示例9–17
开始之前
1
2
3
管理RBAC
第9 章• 使用基于角色的访问控制(任务) 209
向脚本中的命令添加安全性属性
如果某个脚本中的命令需要设置setuid 位或setgid 位才能成功运行,则将必须在权限配置
文件中为该脚本的可执行脚本和命令添加安全性属性。然后,在角色中包括该权限配置文
件,并将该角色指定给用户。当用户承担该角色并执行该脚本时,此命令便会以安全性属
性运行。
要将安全性属性添加到命令或shell 脚本,请参见第205 页中的“如何创建或更改权限配置
文件”。
检查脚本或程序中的授权
要检查脚本授权,需要添加一项基于auths 命令的测试。有关此命令的详细信息,请参见
auths(1) 手册页。
例如,以下行会测试用户是否具有作为$1 参数提供的授权:
if [ ‘/usr/bin/auths|/usr/xpg4/bin/grep $1‘ ]; then
echo Auth granted
else
echo Auth denied
fi
要使测试更加完整,应在测试中包括检查其他使用通配符的授权的逻辑。例如,要测试用
户是否具有solaris.admin.usermgr.write 授权,需要检查以下字符串:
 solaris.admin.usermgr.write
 solaris.admin.usermgr.*
 solaris.admin.*
 solaris.*
如果您要编写程序,请使用函数getauthattr() 对授权进行测试。
示例9–18
示例9–19
管理RBAC
210 系统管理指南:安全性服务• 2006 年9 月
基于角色的访问控制(参考)
本章介绍了有关RBAC 的参考资料。以下是本章中参考信息的列表:
 第211 页中的“权限配置文件的内容”
 第215 页中的“授权命名和委托”
 第216 页中的“支持RBAC 的数据库”
 第223 页中的“RBAC 命令”
有关使用RBAC 的信息,请参见第9 章。有关概述信息,请参见第169 页中的“基于角色的
访问控制(概述)”。
权限配置文件的内容
本节介绍了一些典型的权限配置文件。权限配置文件可以包括授权、带有安全属性的命
令,以及补充权限配置文件。权限配置文件根据功能的强弱从高到低列出。有关如何将权
限配置文件分配给站点中角色的建议,请参见第187 页中的“如何规划RBAC 实现”。
 主管理员权限配置文件-在一个配置文件中提供了超级用户的功能。
 系统管理员权限配置文件-提供可以执行与安全性无关的大多数任务的配置文件。此配
置文件包括一些其他配置文件以创建功能强大的角色。
 操作员权限配置文件-提供有限的功能以管理文件和脱机介质。此配置文件包括用于创
建简单角色的补充权限配置文件。
 打印机管理权限配置文件-提供有限数量的命令和授权以处理打印。此配置文件是涉及
单个管理区域的数个配置文件之一。
 基本Solaris 用户权限配置文件-使用此配置文件,用户可以在安全策略的限定范围内使
用系统。缺省情况下,会在policy.conf 文件中列出此配置文件。
 所有权限配置文件-为角色提供访问不具有安全属性的命令的权限。
每个权限配置文件都具有关联的帮助文件。帮助文件以HTML形式提供,是可自定义的。
这些文件驻留在/usr/lib/help/auths/locale/C 目录中。
10 第1 0 章
211
主管理员权限配置文件
将主管理员权限配置文件指定给系统上功能最强的角色。拥有主管理员权限配置文件的角
色具有超级用户功能。
 solaris.* 授权有效地指定由Solaris 软件提供的所有授权。
 通过solaris.grant 授权,角色可以为任何权限配置文件、角色或用户指定任何授权。
 命令指定*:uid=0;gid=0 提供了使用UID=0 和GID=0 运行任何命令的功能。
如有必要,可以为站点自定义帮助文件RtPriAdmin.html。帮助文件存储在
/usr/lib/help/auths/locale/C 目录中。
另请注意,如果主管理员权限配置文件与站点的安全策略不一致,则可以修改配置文件或
者根本就不指定配置文件。但是,需要在一个或多个其他权限配置文件中处理主管理员权
限配置文件中的安全功能。然后将这些权限配置文件指定给角色。
表10–1主管理员权限配置文件的内容
目的内容
执行所有管理任务命令: *:uid=0;gid=0
授权:solaris.*、solaris.grant
帮助文件: RtPriAdmin.html
系统管理员权限配置文件
系统管理员权限配置文件适用于系统管理员角色。由于系统管理员不具有主管理员具有的
广泛功能,因此不使用通配符。相反,此配置文件是一组不涉及安全性的独立的补充管理
权限配置文件。显示其中一个补充权限配置文件中带有安全属性的命令。
请注意,将在补充权限配置文件列表的末尾指定所有权限配置文件。
表10–2系统管理员权限配置文件的内容
目的内容
执行大多数非安全性的管
理任务
补充权限配置文件:审计查看、打印机管理、计时程序管理、设备管
理、文件系统管理、邮件管理、维护和修复、介质备份、介质恢复、名
称服务管理、网络管理、对象访问管理、进程管理、软件安装、用户管
理、所有
帮助文件: RtSysAdmin.html
权限配置文件的内容
212 系统管理指南:安全性服务• 2006 年9 月
表10–2 系统管理员权限配置文件的内容(续)
目的内容
补充配置文件之一中的命

对象访问管理权限配置文件,solaris 策略:
/usr/bin/chgrp:privs=file_chown、
/usr/bin/chmod:privs=file_chown、/usr/bin/chown:privs=file_chown
、/usr/bin/setfacl:privs=file_chown
suser 策略: /usr/bin/chgrp:euid=0、/usr/bin/chmod:euid=0、
/usr/bin/chown:euid=0、/usr/bin/getfacl:euid=0、
/usr/bin/setfacl:euid=0
操作员权限配置文件
操作员权限配置文件是一个功能较弱的配置文件,提供执行备份和打印机维护的功能。恢
复文件的功能与安全性相关更密切。因此,在此配置文件中,缺省值将不包括恢复文件的
功能。
表10–3操作员权限配置文件的内容
目的内容
执行简单的管理任务补充权限配置文件:打印机管理、介质备份、所有
帮助文件: RtOperator.html
打印机管理权限配置文件
打印机管理是适用于特定任务区域的典型权限配置文件。此配置文件包括授权和命令。下
表显示了部分命令列表。
 
 
以上文章转自于 : http://developers.sun.com.cn/
阅读(586) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~