使用角色访问控制让Solaris服务器更安全( 二 )


图3 授权和特征文件与给予不同用户的角色的关系
三、RBAC的四个数据库
Solaris共有四个RBAC数据库用于角色的管理 。下面依次介绍:
1、扩展的用户属性数据库(/etc/user_attr):将用户、角色、授权和权限配置文件相关联 。
数据库user_attr是惟一需要的数据库,其他数据库的使用取决于实现哪种安全功能 。/etc/user_attr数据库补充了passwd和shadow数据库 。它包含了扩展的用户属性,例如,授权和执行profile 。它也帮助你将角色分配给一个用户 。一个角色是一种特殊类型的用户账号,允许一个用户执行一组管理任务 。它与一个普通的用户账号类似,只是不通过登录窗口访问角色,只能用su命令来访问他们的角色 。
2、授权属性数据库(/etc/security/auth_attr):定义了授权及其授权的属性,标识了相关的帮助文件 。
所有的授权都被存储在/etc/security/auth_attr数据库中 。当直接将授权分配给用户或角色时,授权被输入user_attr数据库中 。也可以为执行profile指定授权,这些授权接下来就被分配给用户 。特定的特权程序能够查看授权,并确定用户是否能够执行受限功能 。例如,一个要编辑另一个用户的crontab文件的用户需要有Solaris.jobs.admin授权 。
3、权限配置文件数据库(/etc/security/prof_attr):定义权限配置文件,列出权限配置文件分配的授权,标识了相关的帮助文件 。
权限配置被存储在prof_attr数据库中 。有了权限配置文件,就可以使用特殊的属性将授权和命令分组,并将其分配给用户或角色 。特殊的属性包括真正有效的UID和GID 。最常见的属性是将真正有效的UID设置为root 。
4、权限执行属性数据库(/etc/security/exec_attr):定义了分配给一个权限配置文件的特权操作 。
与权限配置文件相联系的执行属性就是命令 。命令能够使被赋予了配置文件的用户或角色运行特殊的安全属性 。Exec_attr文件包括了与权限配置文件相关联的一个基本命令列表 。
另外policy.conf文件提供将应用于所有用户的默认属性 。RBAC的几个数据库的相互关系如图4所示 。
图4 RBAC的几个数据库的相互关系
四、RBAC几大特点
(1)访问权限与角色相关联,不同的角色有不同的权 。用户以什么样的角色对资源进行访问,决定了用户拥有的权限以及可执行何种操作 。
(2)角色继承 。角色之间可能有互相重叠的职责和权力,属于不同角色的用户可能需要执行一些相同的操作 。RBAC 采用角色继承的概念,如角色2继承角色1,那么管理员在定义角色2时就可以只设定不同于角色1的属性及访问权限,避免了重复定义 。
(3)最小权限原则,即指用户所拥有的权力不能超过他执行工作时所需的权限 。实现最小特权原则,需要分清用户的工作职责,确定完成该工作的最小权限集,然后把用户限制在这个权限结合的范围之内 。一定的角色就确定了其工作职责,而角色所能完成的事物蕴涵了其完成工作所需的最小权限 。用户要访问信息首先必须具有相应的角色,用 户无法饶过角色直接访问信息 。
(4)职责分离 。一般职责分离有两种方式:静态和动态 。
(5)角色容量 。在一个特定的时间段内,有一些角色只能有一定人数的用户占用 。在创建新的角色时应该指定角色的容量 。
五、总结
基于角色的访问控制是一种方便、安全、高效的访问控制机制 。本文介绍了基于角色的访问控制(RBAC)的工作原理,RBAC在Solaris 下的实现可以通过两种方法:RBAC命令和SMC 。后边笔者会依次介绍 。

推荐阅读