Solaris OS 中的 RBAC 模型引入了以下元素:
授权-一种可使用户或角色执行一类可能影响安全性的操作的权限。例如,安装过程中的安全策略会为普通用户提供 solaris.device.cdrw 授权。用户可使用此授权来读取和写入 CD-ROM 设备。有关授权的列表,请参见 /etc/security/auth_attr 文件。
权限-可以授予命令、用户、角色或系统的单项权利。进程可使用权限来成功执行。例如,proc_exec 权限允许进程调用 execve()。普通用户具有基本权限。要查看基本权限,请运行 ppriv -vl basic 命令。
安全属性-可供进程用于执行操作的属性。在典型的 UNIX 环境中,进程可使用安全属性来执行原本禁止普通用户执行的操作。例如,setuid 和 setgid 程序具有安全属性。在 RBAC 模型中,普通用户执行的操作可能需要安全属性。除了 setuid 和 setgid 程序之外,授权和权限也是 RBAC 模型中的安全属性。例如,具有 solaris.device.allocate 授权的用户可以分配供独占使用的设备。具有 sys_time 权限的进程可以处理系统时间。
特权应用程序-可以通过检查安全属性来覆盖系统控制的应用程序或命令。在典型的 UNIX 环境和 RBAC 模型中,使用 setuid 和 setgid 的程序都是特权应用程序。在 RBAC 模型中,需要权限或授权才能成功执行的程序也是特权应用程序。有关更多信息,请参见特权应用程序和 RBAC。
权限配置文件-可以指定给角色或用户的管理功能的集合。一个权限配置文件由授权、具有安全属性的命令以及其他权限配置文件组成。权限配置文件提供了一种便捷的方法来对安全属性进行分组。
角色-用于运行特权应用程序的特殊身份。这种特殊身份只能由指定的用户承担。在由角色运行的系统中,超级用户并不是必需的。超级用户功能会分配给不同的角色。例如,在具有两种角色的系统中,将由安全角色处理安全任务,而第二种角色则处理与安全性无关的系统管理任务。角色可以进行更为精细的划分。例如,系统可能包括各种用于处理加密框架、打印机、系统时间、文件系统以及审计的管理角色。
下图说明了各 RBAC 元素如何协同工作。
在 RBAC 中,将角色指定给用户。用户承担某种角色时,便可使用此角色的功能。角色从权限配置文件中获取其功能。权限配置文件可以包含授权、特权命令以及其他补充权限配置文件。特权命令是指那些使用安全属性执行的命令。
下图使用操作员角色、操作员权限配置文件以及打印机管理权限配置文件来说明 RBAC 的各种关系。
操作员角色用于维护打印机以及执行介质备份。此角色会指定给用户 jdoe。jdoe 通过切换到此角色然后提供角色口令,便可承担此角色。
操作员权限配置文件已指定给操作员角色。操作员权限配置文件包含两个辅助配置文件:打印机管理和介质备份。这些辅助配置文件反映了角色的主要任务。
打印机管理权限配置文件用于管理打印机、打印守护进程和假脱机程序。打印机管理权限配置文件包括三种授权:solaris.admin.printer.read、solaris.admin.printer.delete 和 solaris.admin.printer.modify。角色和用户可使用这些授权来处理打印机队列中的信息。打印机管理权限配置文件还包括一些具有安全属性的命令,例如 euid=lp 的 /usr/sbin/lpshut 以及 euid=0 的 /usr/ucb/lpq。