红联Linux门户
Linux帮助

Solaris中的RBAC和Privileges

发布时间:2007-07-16 00:23:04来源:红联作者:ivepace
  传统的UNIX中,root具有几乎无穷的权力,而一般用户却经常受到这样那样的限制。通常解决这个问题的办法包括su、sudo、wheel组、ACL等,而Solaris采用了基于角色的访问控制(RBAC)和Privileges的方法。下面将用实例解释这两种权限控制方法。
  RBAC实例:
  在Solaris中,普通用户是不具有关机的权限的,我们可以通过RBAC来下放权限给某些用户。
  首先,我们需要创建一个普通用户(如果系统中已经有普通用户可以忽略这一步):
  # useradd -m -d /export/home/baseuser baseuser
  # passwd baseuser
  New Password:
  Re-enter new Password:
  passwd: password successfully changed for baseuser
  # grep baseuser /etc/passwd
  baseuser:x:5007:1::/export/home/baseuser:/bin/sh

  其次,我们需要创建一个角色用户:
  # roleadd -m -d /export/home/shutdown shutdown
  # passwd shutdown
  New Password:
  Re-enter new Password:
  passwd: password successfully changed for shutdown
  # grep shutdown /etc/passwd
  shutdown:x:5008:1::/export/home/shutdown:/bin/pfsh

  应该注意的是角色用户的shell是/bin/pfsh,该帐号是不能直接登录的,需要通过su命令才能切换到该用户。其他可以使用的shell包括:/bin/pfcsh,/bin/pfksh等。
  现在,我们要定义一个profile:
  # echo "System Shutdown:::profile to shutdown:" >> /etc/security/prof_attr

  给profile设置执行特殊命令的权限:
  # echo "System Shutdown:suser:cmd:::/usr/sbin/shutdown:uid=0" >> /etc/security/exec_attr

  然后,将profile赋予给角色shutdown,再将角色shutdown赋予给用户baseuser(当然如果预先设置好prof_attr和exec_attr,可以在创建角色和用户时分别赋予属性):
  # rolemod -P "System Shutdown" shutdown
  # usermod -R shutdown baseuser
  # grep shutdown /etc/user_attr
  shutdown::::type=role;profiles=System Shutdown
  baseuser::::type=normal;roles=shutdown

  完成!现在我们可以用baseuser用户登录,然后su到shutdown角色去重启机器。
  实际上,与RBAC(即角色管理控制)相关的有五个文件,分别是:
  /etc/user_attr 用户属性文件
  /etc/security/prof_attr 角色属性文件
  /etc/security/auth_attr 授权属性文件
  /etc/security/exec_attr 执行属性文件
  系统默认已经设置了很多可以使用的profile,我们只需找到适用的profile,添加角色和将角色赋予给用户就可以了。对以上文件更详细的解释请阅读相关手册。
  Privileges实例:
  与RBAC不同的是,RBAC在用户层工作,与UID和权限有关;而Privileges工作在核心层,UID和权限将被忽略。例如,如果一个普通用户的进程得到读任何文件的privilege,该进程就可以读本来只有root用户才能访问的文件。
  查看权限列表
  #ppriv -l -v

  查看当前用户进程的权限
  $ ppriv $
文章评论

共有 0 条评论