Bomi
分类: 系统运维
2012-02-05 00:41:57
大家如果安装并体验了OpenSolaris 2008.05,会发现无法直接使用root帐号进行登录,必须用个人帐号登录到系统后su到root帐号才能拥有超级权限。这是因为在 OpenSolaris里root默认是一个角色,而不是一个普通用户,不能直接用角色登录系统,只能通过su命令切换到角色。所以,我觉得大家有必要了解RBAC(基于角色的访问控制)的概念及相关配置知识。
在UNIX系统中,root帐号具有最高权限,任何人只要切换为root身份就可以拥有对系统的无限制权限。RBAC正是针对这个安全隐患产生的,它对基于all-or-nothing的超级用户模式的UNIX系统提供了另外一种选择,可以把组织内的超级用户权限分散,并把这些权限赋予特定的用户或角色。角色可以根据作业需求制定给特定的个体,使用角色的个体将获得角色所有的权限。
首先得明确角色的概念。角色是一种特殊的身份,普通用户使用角色来运行特权应用和命令。比如,张三和李四是Unix-Center的用户,而根据权限的不同又划分成系统管理员、超级版主、版主等角色,张三和李四可以被指定成不同的角色。在Solaris里,普通用户和角色的信息都存储在/etc /user_attr这个文件里。
以/etc/user_attr中的部分内容来说明:
root::::type=role;auths=solaris.*,solaris.grant;profiles=All;lock_after_retries=no;clearance=admin_high;min_label=admin_low
haiou::::profiles=Primary Administrator;roles=root
type为normal表示user为普通帐号,type为role表示这个user是一个角色;roles指定角色列表;profiles指定权限配置数据库;auths指定特定的授权。
我们可以通过使用roles命令列出用户被分配的角色,也可以将角色和普通用户相互进行转换。比如,可以将root从角色转换成普通帐号,使用命令 rolemod -K type=normal root,这样我们就可以直接使用root帐号进行登录了;如果要将root从普通帐号转换成角色,使用命令usermod -K type=role root即可。
在Solaris里可以通过命令行或者管理控制台SMC来管理和配置RBAC,而在OpenSolaris 2008.05里默认没有集成SMC,下面介绍如何用命令来管理RBAC。
在命令行里管理RBAC有四个命令:roleadd(添加角色)、rolemod(修改角色)、useradd(添加用户)和usermod(修改用户)。
配置过程如下:
(1) 建立角色并设置密码:
roleadd -m -d /export/home/sysadm sysadm //建立新角色sysadm
passwd sysadm //配置新角色roleshut的密码
(2)定义角色的权限配置
vi /etc/security/prof_attr //为新角色新增一行配置条目
System Administrator :::This role can administrator the system:
(3)定义权限配置的可用特权
vi /etc/security/exec_attr //新角色权限配置的权限
(4)把权限配置和角色关联
rolemod -P 'System Administrator' sysadm //把权限分配给sysadm
在创建新用户时可以使用useradd的-R选项直接制定新用户帐号的角色。
(5)把角色赋予用户
usermod -R sysadm haiou //把角色sysadm指派给用户haiou
[ 本帖最后由 云杉上的蝴蝶 于 2008-8-26 18:39 编辑 ]