系统管理指南:安全性服务

RBAC:超级用户模型的替代项

在传统的 UNIX 系统中,root 用户(也称为超级用户)可执行所有功能。以 root 身份运行的程序或 setuid 程序可执行所有功能。root 用户可以读取和写入任何文件,运行所有程序,以及向任何进程发送中止信号。实际上,任何可成为超级用户的用户都能够修改站点的防火墙,更改审计跟踪,读取机密记录以及关闭整个网络。被非法修改的 setuid 程序可以在系统上执行任何操作。

基于角色的访问控制 (Role-based access control, RBAC) 提供了更为安全的全有或全无型超级用户模型替代项。使用 RBAC,可以在划分更精细的级别上强制执行安全策略。RBAC 使用最低权限的安全原则。最低权限表示用户仅具有执行某项作业所需的权限。普通用户具有足够权限来使用其应用程序、检查其作业状态、列显文件、创建新文件等。超出普通用户功能以外的功能将分为多个权限配置文件。预期要执行需要某些超级用户功能的作业的用户将承担拥有相应权限配置文件的角色。

RBAC 会将超级用户功能收集到权限配置文件中。这些权限配置文件将指定给称为角色的特殊用户帐户。然后,用户可以承担执行需要某些超级用户功能的作业的角色。预定义的权限配置文件是 Solaris 软件附带的。您可以创建角色并指定相应的配置文件。

权限配置文件可以提供广泛的功能。例如,主管理员权限配置文件等效于超级用户。权限配置文件还可以从狭义范围进行定义。例如,Cron 管理权限配置文件可管理 atcron 作业。创建角色时,可以决定是创建具有广泛功能的角色,还是创建具有有限功能的角色,抑或是同时创建这两种角色。

在 RBAC 模型中,超级用户可创建一种或多种角色。这些角色基于权限配置文件。然后,超级用户会将这些角色指定给可以放心委任执行角色任务的用户。这些用户使用其用户名进行登录。登录之后,用户将承担可以运行有限管理命令和图形用户界面 (graphical user interface, GUI) 工具的角色。

由于可以灵活地设置角色,因此可启用各种安全策略。尽管 Solaris 操作系统 (Solaris OS) 没有附带任何角色,但是您可以轻松地配置三种建议的角色。这些角色基于以下同名的权限配置文件:

并不一定要实现这三种角色。角色是一种实现组织安全性需要的功能。可以为各个领域(如安全性、联网或防火墙管理)中具有特殊目的的管理员设置角色。另一种策略是创建一种功能强大的管理员角色和一种高级用户角色。高级用户角色将用于那些允许修复其自身系统的各部分的用户。

超级用户模型可以与 RBAC 模型共存。下表汇总了 RBAC 模型中可能存在的、从超级用户到受限普通用户的各个等级。该表包括可以在两种模型中跟踪的管理操作。有关权限对系统的单独影响的概述,请参见表 8–2

表 8–1 超级用户模型与具有权限的 RBAC 模型

系统上的用户功能 

超级用户模型 

RBAC 模型 

可以成为具有全部超级用户功能的超级用户 

是 

是 

可以使用具有全部用户功能的用户身份登录 

是 

是 

可以成为具有有限功能的超级用户 

否 

是 

可以使用用户身份登录,有时具有超级用户功能 

是,仅使用 setuid 程序

是,使用 setuid 程序和 RBAC

可以使用具有管理功能的用户身份登录,但是没有全部超级用户功能 

否 

是,使用 RBAC 以及直接指定的权限和授权 

可以使用功能少于普通用户的用户身份登录 

否 

是,使用 RBAC 和已删除的权限 

可以跟踪超级用户操作 

是,通过审计 su 命令

是,通过审计配置文件 shell 命令 

另外,如果禁用了 root 用户,则审计跟踪中会出现已经承担 root 角色的用户的名称