RBCA

来源:互联网 发布:索取阿里云免费开通码 编辑:程序博客网 时间:2024/06/14 00:38

在UNIX系统中,root账号具有最高权限,有时某些管理员比如网络管理员会需要root的权限,那么这时它就需要知道root的密码,su到root来执行自己要执行的命令。但这样具有很大的安全隐患,因为他在su到root下后,所获得的权限远远大于自己需要的,他可以删除数据库中的内容,可以访问其他人的目录等等。

RBAC (role based access control)可以很有效的解决这一问题,RBAC把root的权限分成非常细的碎片,这些碎片组合起来赋予 role。 然后再让用户su到role来执行所需要执行的命令。 比如说, 网络管理员这时可以su到netadmin 这个role,这一它所获得的权限就只是他执行自己命令所需要的权限,这样安全隐患就会小许多。

对于role这个概念,很好理解。它是一直特殊的用户。不可以用它登陆,但你可以通过别的用户su到role上来。role包含了特定的权限,通过su到role你就可以获得对应的权限 。


RBAC所用到的几个文件

/etc/user_attr 用户数据库

里面存储用户的信息,格式如下:

user : 保留字段 : 保留字段 : 保留字段 ; 属性

user字段是用户的名字。

属性字段是用分号分隔开的key-value对,有4个有效关键字:

type值为normal或者role。为normal表示是一个普通用户,为role表示是一个role。auths值为从/etc/security/auth_attr中获取的授权列表。auths是solaris定义好的,对root权限细分之后的碎片。RBAC的本质就是把这些碎片中必要的部分赋予特定的用户,而不是一下全都赋予某个用户。profilesprofile是auths的集合。定义在/etc/security/prof_attrrole指定role列表,指定了该用户su 到哪些role

例如:

bash-2.03# tail -2 /etc/user_attrlimingwei::::type=normal;roles=role1role1::::type=role;profile=p1

上面的内容代表limingwei是一个用户,role1是一个role。这个用户可以su到role1。 role1这个


/etc/security/prof_attr profile数据库

这个文件内容的格式为:

profname:保留字段1,保留字段2,描述,属性
profname,是profile的名字。

描述,是对该profile的描述

属性,是由分号分隔的key-value对。有两个有效关键字:

help是帮助文件的名字,帮助文件一般都在/usr/lib/help/auths/locale/Cauthsauths是从/etc/security/auth_attr中得到的auths条目。代表着把这些auths集中在该profile内,将来可以通过把profile跟role绑定,让role获得这些权限。


bash-2.03# tail -2 /etc/security/prof_attrMirror:::Mirror:help=Mirror.htmlp1:::test:auths=solaris.*

/etc/security/exec_attr 特权数据库

在了解这个文件之前要先明白特权。特权就是一些带有安全属性的可执行文件,比如说带有euid的脚本或者命令。在之前的知识中我们了解到,RBCA是:

先把root的权限分散放到/etc/security/auth_attr中。

然后把特定的auth集中赋给profile

然后把profile赋给role

其实特权跟auth差不多,你把特权跟profile关联起来,这样把profile赋予给role的时候,role也具有了这些特权。

该文件的格式

profile name:安全策略:type:保留1:保留2:id:属性

profile name就是要关联的profile

安全策略,suser solaris9, solaris solaris10

实体类型,只能是cmd

id,可执行文件的全路径

属性,跟安全策略有关。如果安全策略为solaris,那么这里可以为privs,如果安全策略为suser,那么这里可以为euid,uid,egid,gid。


原创粉丝点击