第8 章• 使用角色和权限(概述) 171
图8–1 SolarisRBAC元素关系
在RBAC 中,将角色指定给用户。用户承担某种角色时,便可使用此角色的功能。角色从
权限配置文件中获取其功能。权限配置文件可以包含授权、特权命令以及其他补充权限配
置文件。特权命令是指那些使用安全属性执行的命令。
下图使用操作员角色、操作员权限配置文件以及打印机管理权限配置文件来说明RBAC 的
各种关系。
基于角色的访问控制(概述)
172 系统管理指南:安全性服务• 2006 年9 月
图8–2 SolarisRBAC元素关系的示例
操作员角色用于维护打印机以及执行介质备份。此角色会指定给用户jdoe。jdoe 通过切换
到此角色然后提供角色口令,便可承担此角色。
操作员权限配置文件已指定给操作员角色。操作员权限配置文件包含两个辅助配置文件:
打印机管理和介质备份。这些辅助配置文件反映了角色的主要任务。
打印机管理权限配置文件用于管理打印机、打印守护进程和假脱机程序。打印机管理权限
配置文件包括三种授权:solaris.admin.printer.read、solaris.admin.printer.delete 和
solaris.admin.printer.modify。角色和用户可使用这些授权来处理打印机队列中的信息。
打印机管理权限配置文件还包括一些具有安全属性的命令,例如euid=lp 的
/usr/sbin/lpshut 以及euid=0 的/usr/ucb/lpq。
基于角色的访问控制(概述)
第8 章• 使用角色和权限(概述) 173
RBAC 授权
授权是指可以授予角色或用户的单项权利。授权可在用户应用程序级别强制执行策略。可
以将授权直接指定给角色或用户。通常,授权包括在权限配置文件中,而角色拥有权限配
置文件,并且角色会被指定给用户。有关示例,请参见图8–2。
RBAC 兼容的应用程序可以先检查用户的授权,然后再授予访问应用程序或应用程序内特定
操作的权限。此检查取代了传统的UNIX 应用程序中对UID=0 的检查。有关授权的更多信
息,请参见以下各节:
第215 页中的“授权命名和委托”
第219 页中的“auth_attr 数据库”
第224 页中的“要求授权的命令”
授权和权限
权限可在内核中强制执行安全策略。授权和权限之间的差别会影响强制执行安全策略的级
别。如果没有正确的权限,内核可能会阻止进程执行特权操作。如果没有正确的授权,可
能会阻止用户使用特权应用程序或执行特权应用程序内与安全性相关的操作。有关权限的
更全面的介绍,请参见第177 页中的“权限(概述)”。
特权应用程序和RBAC
可以覆盖系统控制的应用程序和命令被视为特权应用程序。可以使用安全属性(如
UID=0)、权限和授权将应用程序变为特权应用程序。
检查UID 和GID 的应用程序
在UNIX 环境中,长期以来都存在检查root (UID=0) 或其他某个特殊UID 或GID 的特权应用
程序。使用权限配置文件机制,可以将需要特定ID 的命令分离出来。您可以将具有执行安
全属性的命令放在权限配置文件中,而不是针对任何用户均可访问的命令更改ID。这样,
拥有此权限配置文件的用户或角色不必成为超级用户便可运行程序。
可以指定实际ID 或有效ID。指定有效ID 优先于指定实际ID。有效ID 等效于文件权限位
中的setuid 功能,它还可以标识UID 以进行审计。但是,由于某些shell 脚本和程序需要
root 的实际UID,因此也可设置实际UID。例如,pkgadd 命令需要实际UID 而不是有效
UID。如果使用有效ID 不足以运行命令,则需要将此ID 更改为实际ID。有关过程,请参
见第205 页中的“如何创建或更改权限配置文件”。
检查权限的应用程序
特权应用程序可以检查权限的使用。使用RBAC 权限配置文件机制,可以指定特定命令的
权限。您可以将具有执行安全属性的命令单独放在权限配置文件中,而无需具有使用应用
程序或命令的超级用户功能。这样,拥有此权限配置文件的用户或角色便可使用成功执行
命令所需的那几种权限来运行此命令。
基于角色的访问控制(概述)
174 系统管理指南:安全性服务• 2006 年9 月
用于检查权限的命令包括:
Kerberos 命令,如kadmin、kprop 和kdb5_util
网络命令,如ifconfig、routeadm 和snoop
文件和文件系统命令,如chmod、chgrp 和mount
用于控制进程的命令,如kill、pcred 和rcapadm
要向权限配置文件中添加具有权限的命令,请参见第205 页中的“如何创建或更改权限配
置文件”。要确定特殊配置文件中用于检查权限的命令,请参见第236 页中的“确定已指
定的权限”。
检查授权的应用程序
Solaris OS 还提供了用于检查授权的命令。通过定义,root 用户可具有所有授权。因此,
root 用户可以运行任何应用程序。用于检查授权的应用程序包括:
整个Solaris Management Console 的工具套件
审计管理命令,如auditconfig 和auditreduce
打印机管理命令,如lpadmin 和lpfilter
与批处理作业相关的命令,如at、atq、batch 和crontab
面向设备的命令,如allocate、deallocate、list_devices 和cdrw。
要针对授权测试脚本或程序,请参见示例9–19。要编写需要授权的程序,请参见《Solaris
Security for Developers Guide》中的“About Authorizations”。
RBAC 权限配置文件
权限配置文件是指可以指定给角色或用户的系统覆盖值的集合。一个权限配置文件可以包
括授权、具有指定安全属性的命令以及其他权限配置文件。权限配置文件信息分放在
prof_attr 和exec_attr 数据库中。权限配置文件的名称和授权位于prof_attr 数据库中。
权限配置文件名称和具有指定安全属性的命令位于exec_attr 数据库中。有关权限配置文件
的更多信息,请参见以下各节:
第211 页中的“权限配置文件的内容”
第220 页中的“prof_attr 数据库”
第221 页中的“exec_attr 数据库”
RBAC 角色
角色是一种特殊类型的用户帐户,通过此帐户可运行特权应用程序。角色与用户帐户使用
相同的常规方式创建。角色具有起始目录、组指定和口令等。权限配置文件和授权可为角
色提供管理功能。角色不能从其他角色或其他用户那里继承功能。各角色分配有相应的超
级用户功能,因此可以实现更为安全的管理。
用户承担某种角色时,此角色的属性将替换所有用户属性。角色信息存储在passwd、
shadow 和user_attr 数据库中。可以将角色信息添加到audit_user 数据库中。有关设置角
色的详细信息,请参见以下各节:
基于角色的访问控制(概述)
第8 章• 使用角色和权限(概述) 175
第187 页中的“如何规划RBAC 实现”
第191 页中的“如何通过命令行创建角色”
第203 页中的“如何更改角色的属性”
可以为多个用户分配一种角色。所有可以承担同一角色的用户都具有同一角色起始目录,
在同一环境中运行,并且可访问相同文件。用户可以通过从命令行运行su 命令并提供角色
名称和口令来承担角色,还可以在Solaris Management Console 工具中承担角色。
角色无法直接进行登录。用户需要首先登录,然后才能承担角色。用户承担一种角色之
后,如果不首先退出当前角色,则无法承担其他角色。用户退出此角色之后,便可承担其
他角色。
可以通过将root 用户更改为角色(如第196 页中的“如何使root 用户成为角色”中所
示),防止匿名root 进行登录。如果要审计配置文件shell 命令pfexec ,则审计跟踪需要
包含登录用户的实际UID、用户承担的角色以及相应角色执行的操作。要针对角色操作来
审计系统或特定用户,请参见第195 页中的“如何审计角色”。
Solaris 软件没有附带任何预定义的角色。
要配置主管理员角色,请参见《System Administration Guide: Basic Administration》中
的“Using the Solaris Management ToolsWith RBAC (Task Map)”。
要配置其他角色,请参见第188 页中的“如何使用GUI 创建和指定角色”。
要在命令行中创建角色,请参见第202 页中的“管理RBAC(任务列表)”。
RBAC 中的配置文件Shell
角色可以通过Solaris Management Console 启动器或配置文件shell 来运行特权应用程序。配
置文件shell 是一种特殊的shell,可用于识别权限配置文件包括的安全属性。当用户运行su
命令来承担角色时,便会启动配置文件shell。配置文件shell 包括pfsh、pfcsh 和pfksh。这
些shell 分别对应于Bourne shell (sh)、C shell (csh) 和Korn shell (ksh)。
已直接指定有权限配置文件的用户必须调用配置文件shell 才能运行具有安全属性的命令。
有关可用性和安全性的注意事项,请参见第177 页中的“直接指定安全属性时的安全注意
事项”。
可以对所有在配置文件shell 中执行的命令进行审计。有关更多信息,请参见第195 页中的
“如何审计角色”。
名称服务范围和RBAC
名称服务范围是用于了解RBAC 的一个重要概念。角色的范围可能会限定为单独的主机。
或者,此范围还可能包括所有由名称服务(如NIS、NIS+ 或LDAP)提供服务的主机。文件
/etc/nsswitch.conf 指定了系统的名称服务范围。遇到第一个匹配项时,查找便会停止。
例如,如果某个权限配置文件存在于两个名称服务范围中,则只使用第一个名称服务范围
中的各项。如果files 是第一个匹配项,则角色的范围将限定为本地主机。
基于角色的访问控制(概述)
176 系统管理指南:安全性服务• 2006 年9 月
直接指定安全属性时的安全注意事项
通常,用户通过角色来获取管理功能。授权和特权命令将分组到一个权限配置文件中,而
角色拥有此权限配置文件,并且角色会指定给用户。
还可以直接指定权限配置文件和安全属性:
可以将权限配置文件、权限和授权直接指定给用户。
可以将权限和授权直接指定给角色。
但是,直接指定的做法并不安全。具有直接指定的权限的用户和角色可能会在内核需要此
权限的情况下覆盖安全策略。如果某权限是权限配置文件中某个命令的安全属性,则此权
限仅供拥有此权限配置文件的用户用于此命令。不能将此权限用于用户或角色可能运行的
其他命令。
由于授权在用户级别执行,因此,与直接指定权限相比,直接指定授权的危险性会较小。
但是,用户可使用授权来执行高度安全的任务,如委托设备管理。
直接指定给用户的权限配置文件存在的可用性问题要多于安全性问题。权限配置文件中具
有安全属性的命令只能在配置文件shell 中成功执行。用户必须打开配置文件shell,然后再
键入命令。指定有权限配置文件的角色会自动获取配置文件shell。因此,命令可在此角色
的shell 中成功执行。
权限配置文件提供了一种可扩展的便捷方法,用于针对特定管理任务将安全特征进行分
组。
权限(概述)
进程权利管理允许在命令、用户、角色和系统四个级别上对进程加以限制。Solaris OS 通过
权限实现进程权利管理。权限可以降低与(在系统中具有完全超级用户功能的)某个用户
或某个进程相关的安全风险。权限和RBAC 为传统的超级用户模型提供了功能强大的替代
模型。
有关RBAC 的信息,请参见第169 页中的“基于角色的访问控制(概述)”。
有关如何管理权限的信息,请参见第11 章。
有关权限的参考信息,请参见第12 章。
权限保护内核进程
权限是进程执行某项操作所需的单项权利。权利是在内核中实施的。在Solaris 权限基本集
范围内运行的程序可在系统安全策略范围内运行。setuid 程序是在系统安全策略范围之外
运行的程序示例。通过使用权限,程序可以不必调用setuid。
权限会分别枚举针对系统的可能的操作种类。程序可以使用可使其成功执行的确切权限运
行。例如,用来设置日期并将其写入管理文件的程序可能需要file_dac_write 和sys_time
权限。借助此功能,可以不必以root 身份运行任何程序。
权限(概述)
第8 章• 使用角色和权限(概述) 177
以前,系统并未遵循权限模型,而是使用超级用户模型。在超级用户模型中,进程以root
或用户身份运行。用户进程被限定为对用户的目录和文件执行操作,root 进程则可在系统
中的任何位置创建目录和文件。需要在用户目录外部创建目录的进程将使用UID=0(即作为
root)运行。安全策略依靠DAC(discretionary access control,自主访问控制)来保护系统
文件。设备节点受到DAC 的保护。例如,组sys 拥有的设备只能由sys 组的成员打开。
但是,setuid 程序、文件权限和管理帐户很容易被误用。setuid 进程所允许的操作数比该
进程完成其运行过程所需的操作数多。入侵者会破坏setuid 程序,然后以可执行所有功能
的root 用户身份运行。同样,可访问root 口令的任何用户都可能会破坏整个系统的安全。
与之相反,通过权限来实施策略的系统允许在用户功能和root 功能之间划分等级。可以授
予用户执行超出普通用户功能的活动,并将root 加以限制,使root 具有的权限比目前要
少。借助RBAC,可以将使用权限运行的命令单独放在权限配置文件中,并指定给一个用户
或角色。表8–1 汇总了RBAC 和权限模型提供的用户功能和超级用户功能之间的等级。
权限模型比超级用户模型具有更大的安全性。已从进程中删除的权限不会被利用。进程权
限防止程序或管理帐户获取对所有功能的访问权限。进程权限可为敏感文件提供额外的保
护措施,而DAC 防护功能本身可被用来获取访问权限。
之后,权限可将程序和进程限制为仅具备程序所需的功能。此功能称为最低权限原则。在
实现最低权限的系统上,捕获某个进程的入侵者只能访问该进程所具有的那些权限,不会
破坏其余部分的系统安全。
权限说明
可以根据权限范围对权限进行逻辑分组。
FILE 权限-以字符串file 开头并作用于文件系统对象的权限。例如,file_dac_write 权
限可在写入文件时覆盖自主访问控制。
IPC 权限-以字符串ipc 开头并覆盖IPC 对象访问控制的权限。例如,进程可使用
ipc_dac_read 权限来读取受DAC 保护的远程共享内存。
NET 权限-以字符串net 开头并提供对特定网络功能进行访问的权限。例如,设备可使
用net_rawaccess 权限连接到网络。
PROC 权限-以字符串proc 开头并允许进程修改其自身受限制属性的权限。PROC 权限包
括影响非常有限的权限。例如,进程可借助proc_clock_highres 权限来使用高分辨率的
计时器。
SYS 权限-以字符串sys 开头并为进程提供对各种系统属性进行无限制访问的权限。例
如,进程可使用sys_linkdir 权限来建立和断开指向目录的硬链接。
某些权限对系统具有有限的影响,而某些权限则具有广泛的影响。proc_taskid 权限的定义
指明了其有限的影响:
proc_taskid
Allows a process to assign a new task ID to the calling process.
权限(概述)
178 系统管理指南:安全性服务• 2006 年9 月
file_setid 权限的定义指明了其广泛的影响:
net_rawaccess
Allow a process to have direct access to the network layer.
privileges(5) 手册页中提供了每个权限的描述。ppriv -lv 命令会将对每个权限的描述显示
在标准输出中。
具有权限的系统的管理差别
具有权限的系统与没有权限的系统之间存在多种明显差别。下表列出了部分差别。
表8–2具有权限的系统与没有权限的系统之间的明显差别
功能没有权限权限
守护进程以root 身份运行的守护进程。以用户daemon 身份运行的守护进程。
例如,以下守护进程已指定有相应的权限,并以daemon 身份
运行:lockd、mountd、nfsd 和rpcbind。
日志文件拥有
权
日志文件由root 拥有。现在,日志文件由创建了此日志文件的daemon 拥有。root 用
户不拥有此文件。
错误消息错误消息涉及超级用户。
例如,chroot:not superuser。
错误消息反映权限的使用。
例如,chroot 故障的等效错误消息为chroot:exec failed。
setuid 程序程序使用setuid 来完成不允许普通用户
执行的任务。
许多setuid 程序都已更改为使用权限运行。
例如,以下实用程序会使用权限:ufsdump、ufsrestore、
rsh、rlogin、rcp、rdist、ping、traceroute 和newtask。
文件权限设备权限受DAC 控制。例如,sys 组的
成员可以打开/dev/ip。
文件权限(DAC) 不会预测可以打开设备的对象。设备通过
DAC 和设备策略进行保护。
例如,/dev/ip 文件具有666 种权限,但是设备只能由具有相
应权限的进程打开。原始套接字仍受DAC 保护。
审计事件对su 命令的使用进行审计涉及许多管理
功能。
对权限的使用进行审计涉及大多数管理功能。pm 和as 审计类
包括用于配置设备策略的审计事件以及用于设置权限的审计事
件。
进程进程受进程属主保护。进程受权限保护。进程权限和进程标志可显示为/proc/
目录中的一个新项priv。
权限(概述)
第8 章• 使用角色和权限(概述) 179
表8–2 具有权限的系统与没有权限的系统之间的明显差别(续)
功能没有权限权限
调试核心转储中不引用任何权限。核心转储的ELF 注释部分包括有关NT_PRPRIV 和
NT_PRPRIVINFO 注释中的进程权限和标志的信息。
ppriv 实用程序和其他实用程序可显示大小合适的集的正确数
目。这些实用程序会将位集中的位正确映射为权限名称。
如何实现权限
每个进程都有四个权限集,用于确定进程是否可以使用特定权限。内核会自动计算权限的
有效集。可以修改权限的初始可继承集。通过编码来使用权限的程序可以减小程序的权限
允许集。可以缩小权限的限制集。
有效权限集(E)-当前有效的权限集。进程可以将允许集中的权限添加到有效集,还可
以从E 中删除权限。
允许权限集(P)-可用的权限集。权限可通过继承或指定来供程序使用。执行配置文件
便是一种将权限指定给程序的方法。setuid 命令可将root 具有的所有权限指定给程
序。可从允许集中删除权限,但不能向该集中添加权限。从P 中删除的权限会自动从E
中删除。
权限识别程序会从程序的允许集中删除该程序从不使用的权限。通过这种方法,程序或
恶意进程便无法使用不必要的权限。有关可识别权限的程序的更多信息,请参
见《Solaris Security for Developers Guide》中的第2 章,“Developing Privileged
Applications”。
可继承权限集(I)-进程可以通过调用exec 而继承的权限集。调用exec 之后,允许集和
有效集便会相同,但是setuid 程序的特殊情况除外。
对于setuid 程序,调用exec 之后,可继承集会首先受限制集的限制。然后,将继承的
权限集(I) 减去限制集(L) 中的所有权限后的权限指定给此进程的P 和E。
限制权限集(L)-对可用于进程及其子进程的权限的外部限制。缺省情况下,限制集为
所有权限。进程可以缩小限制集,但是永远不能扩展限制集。L 用于限制I。因此,L 会
在调用exec 时限制P 和E。
如果已为用户指定的配置文件中包括已指定有权限的程序,则此用户通常可以运行此程
序。在未修改的系统上,为此程序指定的权限位于此用户的限制集中。已为程序指定的
权限会成为此用户允许集的一部分。要运行已指定有权限的程序,用户必须从配置文件
shell 运行此程序。
内核可识别基本权限集。在未修改的系统上,每个用户的初始可继承集等效于登录时获取
的基本集。可以修改用户的初始可继承集,但不能修改基本集。
在未修改的系统上,用户在登录时的权限集将显示以下类似信息:
E (Effective): basic
I (Inheritable): basic
权限(概述)
180 系统管理指南:安全性服务• 2006 年9 月
P (Permitted): basic
L (Limit): all
因此,登录时所有用户在其各自的可继承集、允许集和有效集中包含基本集。用户的限制
集包含所有权限。要在用户的有效集中加入更多权限,必须为该用户指定一个权限配置文
件。此权限配置文件将包括已向其中添加了权限的命令。还可以将权限直接指定给用户或
角色,尽管这种权限指定可能会存在风险。有关风险的介绍,请参见第177 页中的“直接
指定安全属性时的安全注意事项”。
进程如何获取权限
进程可以继承权限。或者,可以为进程指定权限。进程从其父进程继承权限。登录时,用
户的初始可继承权限集确定可用于此用户进程的权限。用户初始登录的所有子进程都可继
承此权限集。
还可以将权限直接指定给程序、用户和角色。当某个程序需要权限时,可以在权限配置文
件中将权限指定给此程序的可执行文件。允许运行此程序的用户或角色会被指定包括此程
序的配置文件。登录或进入配置文件shell 时,如果在配置文件shell 中键入程序的可执行文
件,则可使用权限运行此程序。例如,拥有对象访问管理配置文件的角色可以使用
file_chown 权限运行chmod 命令。
当某个角色或用户运行已直接指定有其他权限的程序时,指定的权限会添加到此角色或用
户的可继承集中。指定有权限的程序的子进程会继承父进程的权限。如果子进程需要的权
限比父进程的权限多,则必须为子进程直接指定这些权限。
通过编码来使用权限的程序称为可识别权限的程序。可识别权限的程序可在程序执行过程
中启用和禁用权限。要在生产环境中成功执行,必须为程序指定其启用和禁用的权限。
有关可识别权限的代码的示例,请参见《Solaris Security for Developers Guide》中的第2 章,
“Developing Privileged Applications”。要为需要权限的程序指定权限,请参见第232 页中的
“如何为命令添加权限”。
指定权限
您作为系统管理员应负责指定权限。通常,可在权限配置文件中将权限指定给命令。然
后,将权限配置文件指定给角色或用户。Solaris Management Console 提供了图形用户界面
(graphical user interface, GUI) 来指定权限。还可以使用smuser 和smrole 等命令来指定权
限。有关如何使用GUI 来指定权限的更多信息,请参见第9 章。
还可以将权限直接指定给用户。如果您相信某些用户在其整个会话过程中会负责地使用某
种权限,则可以直接指定此权限。适合直接指定的权限是具有有限影响的权限,如
proc_clock_highres。不适合直接指定的权限是具有广泛影响的权限,如file_dac_write。
还可以拒绝为用户或系统指定权限。从用户或系统的初始可继承集或限制集中删除权限时
必须谨慎。
权限(概述)
第8 章• 使用角色和权限(概述) 181
扩展用户或角色的权限
用户和角色具有可继承权限集以及限制权限集。限制集不能扩展,因为限制集最初包括所
有权限。可以针对用户、角色和系统扩展初始可继承集。还可以将不在可继承集中的权限
指定给进程。
按进程指定权限是最精确的添加权限方法。可以通过允许某用户承担某种角色,扩展此用
户可执行的特权操作的数目。可以为角色指定包括具有已添加权限的命令的配置文件。用
户承担角色时,便会获取此角色的配置文件shell。通过在角色的shell 中键入角色配置文件
中的命令,便可使用已添加的权限执行这些命令。
还可以将配置文件指定给用户而不是用户承担的角色。配置文件可包括具有已添加权限的
命令。用户打开配置文件shell(如pfksh)时,便可使用权限执行用户配置文件中的命令。
在常规shell 中,不使用权限执行命令。特权进程只能在特权shell 中执行。
扩展用户、角色或系统的初始可继承权限集是一种风险性较高的指定权限方法。可继承集
中的所有权限都位于允许集和有效集中。用户或角色在shell 中键入的所有命令都可以使用
直接指定的权限。使用直接指定的权限,用户或角色可以轻松执行可能超出其管理职责范
围的操作。
向某系统上的初始可继承权限集中添加权限后,所有登录到此系统的用户都会具有更大的
基本权限集。通过这种直接指定,系统的所有用户都可以轻松执行可能超出普通用户执行
范围的操作。
限制用户或角色的权限
通过删除权限,可以防止用户和角色执行特定的任务。可以从初始可继承集和限制集中删
除权限。分配小于缺省集的初始可继承集或限制集之前,应谨慎地对权限删除进行测试。
通过从初始可继承集中删除权限,可能会使用户无法登录。从限制集中删除权限后,传统
的setuid 程序可能会失败,因为此程序需要的权限已被删除。
向脚本指定权限
脚本与命令一样,也是可执行文件。因此,在权限配置文件中,可以将权限添加到脚本
中,就像将权限添加到命令中一样。已指定有配置文件的用户或角色在配置文件shell 中执
行脚本时,将会使用已添加的权限来运行脚本。如果脚本包含需要权限的命令,则具有已
添加权限的命令也应该位于配置文件中。
可识别权限的程序可以限制每个进程的权限。包含可识别权限的程序的作业是指为可执行
文件指定此程序所需的确切权限。然后测试此程序,查看此程序是否成功执行了其任务。
还可以检查此程序是否误用了其权限。
权限和设备
权限模型使用权限来保护系统接口,这些接口在超级用户模型中单独由文件权限保护。在
具有权限的系统中,文件权限太小,因此无法保护这些接口。proc_owner 等权限可以覆盖
文件权限,然后提供对所有系统的完全访问权限。
权限(概述)
182 系统管理指南:安全性服务• 2006 年9 月
因此,具有设备目录的拥有权不足以打开设备。例如,不再自动允许sys 组的成员打开
/dev/ip 设备。/dev/ip 的文件权限为0666,但是需要net_rawaccess 权限才能打开设备。
设备策略受权限控制。getdevpolicy 命令可显示每个设备的设备策略。设备配置命令
devfsadm 可用于安装设备策略。devfsadm 命令可将权限集与open 绑定,以便设备读取或写
入。有关更多信息,请参见getdevpolicy(1M) 和devfsadm(1M) 手册页。
使用设备策略,可以更灵活地为打开的设备授予权限。您可以要求与缺省设备策略不同的
权限,或者比其更多的权限。可以针对设备策略和驱动程序适当地修改权限要求。可以在
安装、添加或更新设备驱动程序时修改权限。
add_drv 和update_drv 命令可以修改设备策略项以及驱动程序特定的权限。必须使用完整的
权限集运行进程才能更改设备策略。有关更多信息,请参见add_drv(1M) 和
update_drv(1M) 手册页。
权限和调试
Solaris OS 提供了各种工具来调试权限故障。ppriv 命令和truss 命令可提供调试输出。有关
示例,请参见ppriv(1) 手册页。有关过程,请参见第230 页中的“如何确定程序所需的权
限”。
权限(概述)
第8 章• 使用角色和权限(概述) 183
184
使用基于角色的访问控制(任务)
本章介绍与使用各种不同的角色分配超级用户功能相关的任务。角色可以使用的机制包括
权限配置文件、授权和特权。以下是本章中的任务列表:
第185 页中的“使用RBAC(任务列表)”
第186 页中的“配置RBAC(任务列表)”
第198 页中的“使用角色(任务列表)”
第202 页中的“管理RBAC(任务列表)”
有关RBAC 的概述,请参见第169 页中的“基于角色的访问控制(概述)”。有关参考信
息,请参见第10 章。要通过RBAC 或不通过RBAC 使用特权,请参见第11 章。
使用RBAC(任务列表)
要使用RBAC,需要规划和配置RBAC 以及了解如何承担角色。熟悉角色后,便可以进一步
自定义RBAC 以处理新操作。以下任务列表列出了这些主要任务:
任务说明参考
规划和配置RBAC 在站点上配置RBAC。第186 页中的“配置RBAC(任务列表)”
使用角色通过命令行和在Solaris Management Console
GUI 中承担角色。
第198 页中的“使用角色(任务列表)”
自定义RBAC 为站点自定义RBAC。第202 页中的“管理RBAC(任务列表)”
9第9 章
185
配置RBAC(任务列表)
要有效地使用RBAC,需要进行规划。使用以下任务列表可在站点上规划并初步实现
RBAC。
任务说明参考
1. 规划RBAC 涉及检查站点的安全要求,以及确定如何
在站点上使用RBAC。
第187 页中的“如何规划RBAC 实现”
2. 学习使用Solaris
Management Console
涉及熟悉Solaris Management Console。《System Administration Guide: Basic
Administration》中的第2 章,“WorkingWith
the Solaris Management Console (Tasks)”
3. 配置第一个用户和角色使用Solaris Management Console 的RBAC
配置工具创建用户和角色,并将角色指定
给用户。
《System Administration Guide: Basic
Administration》中的“Using the Solaris
Management ToolsWith RBAC (Task Map)”
4. (可选)创建可以承担角色
的其他用户
确保存在可以承担管理角色的用户。《System Administration Guide: Basic
Administration》中的“Using the Solaris
Management ToolsWith RBAC (Task Map)”
5. (建议)创建其他角色并将
其指定给用户
使用RBAC 工具为特定管理区域创建角
色,并将这些角色指定给用户。
第188 页中的“如何使用GUI 创建和指定角
色”
示例9–5
使用命令行创建角色,并将这些角色指定
给用户。
第191 页中的“如何通过命令行创建角色”
第194 页中的“如何将角色指定给本地用户
”
6. (建议)审计角色操作预先选择包括记录角色操作的审计事件的
审计类。
第195 页中的“如何审计角色”
7. (可选)使root 用户成为
角色
防止匿名root 登录,这是一个安全漏洞。第196 页中的“如何使root 用户成为角色”
配置RBAC
可以使用以下实用程序配置RBAC:
Solaris Management Console GUI-执行与RBAC 相关的任务的首选方法是通过GUI。用
于管理RBAC 元素的控制台工具包含在用户工具集中。
Solaris Management Console 命令-使用Solaris Management Console 命令行界面(如
smrole),可对任何名称服务进行操作。Solaris Management Console 命令需要进行验证
才能连接到服务器。因此,这些命令并不适合在脚本中使用。
本地命令-使用user* 和role* 组合这两类命令行界面(如useradd),仅可对本地文件
进行操作。对本地文件进行操作的命令必须由超级用户或具有相应特权的角色来运行。
配置RBAC(任务列表)
186 系统管理指南:安全性服务• 2006 年9 月
如何规划RBAC 实现
RBAC 可以作为组织管理其信息资源方式的组成部分。进行规划时,需要全面了解RBAC 功
能以及组织的安全要求。
了解RBAC 基本概念。
请阅读第169 页中的“基于角色的访问控制(概述)”。使用RBAC 来管理系统与使用常
规的UNIX 管理做法完全不同。开始实现之前,应先对RBAC 概念进行了解。有关更详细的
信息,请参见第10 章。
检查安全策略。
您组织的安全策略应详细说明系统面临的潜在威胁,衡量每种威胁的风险并制订应对这些
威胁的策略。通过RBAC 隔离与安全相关的任务可以作为该策略的一部分。虽然可以按照
缺省设置安装系统建议的角色及其配置,但是您可能需要自定义RBAC 配置以符合安全策
略。
确定组织需要RBAC 的程度。
根据安全需要,选择如何使用RBAC,如下所述:
无RBAC-您可以以root 用户身份执行所有任务。在此配置中,您将以自己的身份登
录。然后,在选择Solaris Management Console 工具时,键入root 作为用户。
仅单一角色-此方法添加一个角色。该角色会被指定主管理员权限配置文件。此方法与
超级用户模型类似,因为该角色具有超级用户功能。但是,通过此方法可以跟踪已承担
该角色的用户。
建议的角色-此方法创建三个基于以下权限配置文件的角色:主管理员、系统管理员和
操作员。这些角色适用于管理员具有不同责任级别的组织。
自定义角色-您可以创建自己的角色以满足组织的安全要求。新角色可以基于现有或自
定义的权限配置文件。
使超级用户成为角色-此方法可防止任何用户以root 身份登录。相反,在承担root 角
色之前,用户必须以普通用户身份登录。有关详细信息,请参见第196 页中的“如何使
root 用户成为角色”。
确定适用于组织的建议角色。
请查看建议的角色的功能和缺省的权限配置文件。通过缺省的权限配置文件,管理员可以
使用单个配置文件配置建议的角色。以下三个缺省的权限配置文件可用于配置建议的角色
:
主管理员权限配置文件-用于配置可以执行所有管理任务、为其他用户授予权限以及编
辑与管理角色关联的权限的角色。该角色中的用户可将该角色指定给其他用户,并可为
其他用户授予权限。
系统管理员权限配置文件-用于配置可执行大多数与安全无关的管理任务的角色。例
如,系统管理员可以添加新的用户帐户,但不能设置口令或为其他用户授予权限。
操作员权限配置文件-用于配置可以执行介质备份和打印机维护等简单管理任务的角
色。