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

全部博文(554)

文章存档

2012年(1)

2011年(1)

2009年(8)

2008年(544)

分类:

2008-04-15 13:43:14

7.3.2 RBAC数据库
Solaris共有四个RBAC数据库用于角色的管理。

 扩展的用户属性数据库(/etc/user_attr):将用户、角

色、授权和权限配置文件相关联。

 授权属性数据库(/etc/security/auth_attr):定义了授权及其授权的属性,标识了相关的帮助文件。

 权限配置文件数据库(/etc/security/prof_attr):定义权限配置文件,列出权限配置文件分配的授权,标识了相关的帮助文件。

 权限执行属性数据库(/etc/security/exec_attr):定义了分配给一个权限配置文件的特权操作。

另外,policy.conf文件提供将应用于所有用户的默认属性。

RBAC的几个数据库的相互关系如图7-3所示。

例如,如果“打印机管理”权限配置文件被指定给一个用户或角色,则该用户或角色的user_attr 项包含关键字/值对:

profiles=Printer Management.

prof_attr 文件使用下行定义该配置文件(该文件也指定了帮助文件和授权):

Printer Management:::Manage printers, daemons,

/ spooling:help=RtPrntAdmin.html;auths=Solaris.admin.printer,

/ Solaris.admin.printer.modify,Solaris.admion.printer.delete

在exec_attr文件中,下行在“打印机管理”配置文件中给命令/usr/sbin/accept指定了一个有效的用户ID = lp:

Printer Management:suser:cmd:::/usr/sbin/accept:euid=lp


图7-3 RBAC的几个数据库关系

1.扩展的用户属性数据库(user_attr)
数据库user_attr是惟一需要的数据库,其他数据库的使用取决于实现哪种安全功能。

/etc/user_attr数据库补充了passwd和shadow数据库。它包含了扩展的用户属性,例如,授权和执行profile。它也帮助你将角色分配给一个用户。

一个角色是一种特殊类型的用户账号,允许一个用户执行一组管理任务。它与一个普通的用户账号类似,只是不通过登录窗口访问角色,只能用su命令来访问他们的角色。

举个user_attr数据库项的实例:

默认的user_attr数据库中的项在下面给出。

root::::type=normal;auths=Solaris.*,Solaris.grant;profiles=All

这一项为root分配了做任何事情的权限,使root可以使用系统中所有的命令。它还分配了两项授权。Solaris.*通配符授权为root分配了所有的Solaris授权。Solaris.grant授权使root可以给其他用户分配的任何Solaris授权的权利。

2.授权属性数据库(auth_attr)
授权就是对一种受限的访问给予的权限。它的表现形式是个字符串,标识着授权者和被授权者。

特定的特权程序能够查看授权,并确定用户是否能够执行受限功能。例如,一个要编辑另一个用户的crontab文件的用户需要有Solaris.jobs.admin授权。

所有的授权都被存储在/etc/security/auth_attr数据库中。当直接将授权分配给用户或角色时,授权被输入user_attr数据库中。也可以为执行profile指定授权,这些授权接下来就被分配给用户。

下面的例子给出了默认的auth_attr数据库的一部分。

Solaris.admin.usermgr.:::Users,Groups &Mailing Lists::help=UserMgrHeader.html

当授权在auth-attr数据库中定义时,就可以将其分配给一个user-attr数据库中的用户。下面的例子为用户duanf分配了授权Solaris.admin.usermgr.。

duanf::::type=normal;auths=Solaris.admin.usermgr.;roles=sysadmin;profiles=All

3.权限配置文件数据库(prof_attr)
有了权限配置文件,就可以使用特殊的属性将授权和命令分组,并将其分配给用户或角色。特殊的属性包括真正有效的UID和GID。最常见的属性是将真正有效的UID设置为root。权限配置被存储在prof_attr数据库中。

下面的例子给出了默认的prof_attr数据库的设备管理部分。所有以Solaris.device字符串开头的授权都被分配给设备管理配置文件。

Device Management:::Control Access to Removable Media:auths=Solaris.device.*;help=DevMgmt.html

在prof_attr数据库中定义的设备管理配置文件被分配给user_attr数据库中的advanced角色,如下所示:

advanced::::type=role;profiles=Device Management,PrinterManagement

而授权在auth_attr数据库中定义的则如下面的摘要所示:

Solaris.device.::evice Allocation::help=DevAllocHeader.htm l

Solaris.device.allocate:::Allocate Device::help=DevAllocate.htm l

Solaris.device.config:::Configure Device Attributes::help=DevConfig.htm l

Solaris.device.grant::elegate Device Adm inistration::help=DevGrant.htm l

4.权限执行属性数据库(exec_attr)
与权限配置文件相联系的执行属性就是命令。命令能够使被赋予了配置文件的用户或角色运行特殊的安全属性。Exec_attr文件包括了与权限配置文件相关联的一个基本命令列表。

下面的例子给出了在prof_attr 数据库中定义的打印机管理配置文件。

Printer Management:::ControlAccess to Printer:help=PrinterMgmt.html

打印机管理配置文件有13 项执行属性,在exec_attr 数据库中为它指定了合适的安全属性,如下所示:

Printer Management:suser:cm d:::/etc/init.d/lp:euid=0

Printer Managem ent:suser:cm d:::/usr/bin/cancel:egid=0

Printer Managem ent:suser:cm d:::/usr/bin/lpset:euid=14

Printer Managem ent:suser:cm d:::/usr/bin/enable:euid=lp

Printer Managem ent:suser:cm d:::/usr/bin/disable:euid=lp

Printer Managem ent:suser:cm d:::/usr/sbin/accept:euid=lp

Printer Managem ent:suser:cm d:::/usr/sbin/reject:euid=lp

Printer Managem ent:suser:cm d:::/usr/sbin/lpadm in:egid=14

Printer Managem ent:suser:cm d:::/usr/sbin/lpfilter:euid=lp

Printer Managem ent:suser:cm d:::/usr/sbin/lpform s:euid=lp

Printer Managem ent:suser:cm d:::/usr/sbin/lpm ove:euid=lp

Printer Managem ent:suser:cm d:::/usr/sbin/lpshut:euid=lp

Printer Managem ent:suser:cm d:::/usr/sbin/lpusers:euid=lp
阅读(1055) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~