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

全部博文(554)

文章存档

2012年(1)

2011年(1)

2009年(8)

2008年(544)

分类:

2008-04-15 13:42:27

7.3 角色的管理

对于传统的安全性模型,超级用户拥有完全的超级用户特权,而其他的用户没有足够的权限解决他们自己的问题。有了基于角色的访问控制(RBAC),便可以取代传统的安全模型。

有了RBAC,可以将超级用户的能力分成不同的包,并将它们分别分配给分担管理任务的个体。当使用RBAC划分超级用户特权时,用户可以拥有不同程度的访问权限,可以控制对其他用户特权操作的授权。

RBAC包括了如下特性。

 角色:一种特殊类型的用户账号,可以用来执行一套管理任务。

 特征文件(profile):一种打包机制,用特殊的属性将授权和命令分组。例如,使用用户和组的ID。

 授权:一种用来授予对受限功能的访问权限的权利。

下面我们来分别介绍它们。

7.3.1 角色管理概述
1.角色
实现RBAC功能的第一步就是对准备指派给每个用户的角色进行定义。另外,不同资源的访问权限也必须与具体的角色名联系在一起。对于管理者来说,角色的变化,以及用户与角色关系的调整都是不可避免的。因此,这种变化的角色和用户列表的实现方法应尽可能的简单。另外,单一的任务并不容易实现与单一角色的关联。

比如,一个被定义为“备份操作员”的角色会涉及到ufsdump命令的运行,而这又需要对磁带设备进行写访问操作。此时,备份操作员角色本身就决定了它对这种文件访问的必然性。因此,我们不需要单独为它定义一个新角色。

又如,一个“设备管理员”可能使用命令tapes来对磁带设备执行写访问操作。所以,这些写操作也不能定义为一个新的角色,它自然成为“设备管理员”角色的一部分。

如果一个用户承担某个角色,他的结果要么承担该角色的全部权限,要么就丧失该角色的全部权限。

在默认情况下,Solaris 支持3种不同的系统管理角色。

 主管理员(PA,Primary Administrator):负责为其他用户分派权限,并负责系统的安全问题。

 系统管理员(SA,System Administrator):负责与安全无关的日常管理工作。

 操作员(Operator):执行备份和设备维护操作。

PA和SA之间的区别主要取决于本地的安全策略。例如,尽管默认的PA角色具备添加用户和修改口令的权限,而默认的SA角色并不具备修改口令的权限,但在很多地方,禁止SA的口令访问可能是不现实的。RBAC的一个最大的好处就是它可以按照本地的需求非常方便地分配权限。

2.权限配置文件(Profile)
特征文件是用于授权的一个或一组特定的命令。这些授权连接在一起形成某个角色,并随后与某个用户或某些不同的用户建立关联关系。它们之间的关系如图7-1所示。

我们可以为每个角色创建一个新的用户账号,这些账号拥有自己的主目录和口令。当执行特征文件中的命令时,用户必须使用su命令进入角色账户,因为这种角色用户是不允许直接登录的。


图7-1 授权和特征文件与给予不同用户的角色相关联
通过su命令访问角色账户与通过su命令访问普通账户的一个不同之处在于它们的审计功能,即在通过su命令访问某个角色时,它执行的所有操作,连同用户的原始UID都会被记入日志。这样,每个访问角色的用户操作都会被明确地记入日志并进行审计。

3.授权
所谓授权,就是赋予某个角色执行某项操作的特权,它是在/etc/security/auth_attr文件中定义的。授权的定义形式与Internet的域名非常相似,它的最左边为企业名称,随后是依次细化的软件包和功能内容。

例如,net.cassowary.*就是一个由厂商cassowary.net提供的任何功能授权。

在默认情况下,所有Solaris提供的软件包都是由前缀Solaris来加以识别的。比如,修改口令的授权就是Solaris.admin.usermgr.pswd,而不是com.sun.Solaris.admin.usermgr.pswd。

许多授权的划分都是十分细致的,它可能只允许读访问,而不允许写访问,反之也是如此。比如,主管理员(PA)可能拥有Solaris.admin.usermgr.read和Solaris.admin.usermgr.write的授权,因而可以对用户配置文件分别进行读访问和写访问操作。而系统管理员(SA)虽然可能拥有Solaris.admin.usermgr.read授权,但他并没有Solaris.admin.usermgr.write的授权,因此他可以读用户配置文件,但不能写。

下面是一些Solaris的基本授权:

Solaris.profmgr.read

Solaris.jobs.users, Solaris.mail.mailq

Solaris.admin.usermgr.read

Solaris.admin.logsvc.read

Solaris.admin.fsmgr.read

Solaris.admin.serialmgr.read

Solaris.admin.diskmgr.read

Solaris.admin.procmgr.user, Solaris.compsys.read

Solaris.admin.printer.read

Solaris.admin.prodreg.read

Solaris.admin.dcmgr.read, Solaris.snmp.read

Solaris.project.read, Solaris.admin.patchmg.read

Solaris.network.hosts.read, Solaris.compsys.read

Solaris.admin.volmgr.read

从这里我们看到,Solaris.admin已经定义了一些授权,它们包括文件系统管理(fsmgr)、日志系统管理(logsvc)、端口管理(serialmgr)和用户管理(usermgr)等。

我们还可以利用关键字grant将权限传递给其他用户。一旦关键字grant被附加在一个授权字符串的末尾,即表明该授权可以委托给其他用户。例如,如果Solaris.admin.usermgr. grant授权与Solaris.admin.usermgr.pswd授权配合在一起,则表示口令修改的操作可以由受委托的用户来执行。

4 角色、权限配置文件和授权的关联
如图7-2所示,授权和命令的定义关联起来构成了权限配置文件,该权限配置文件再分派给不同的角色用户来使用。

图7-2 角色、权限配置文件和授权的关联
阅读(654) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~