歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> 關於Unix >> Solaris中的RBAC和Privileges

Solaris中的RBAC和Privileges

日期:2017/2/28 11:17:13   编辑:關於Unix


  傳統的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 $
Copyright © Linux教程網 All Rights Reserved