免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4246 | 回复: 1
打印 上一主题 下一主题

[学习求职] AIX 6 RBAC学习记录一 [复制链接]

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-12-01 10:58 |只看该作者 |倒序浏览

    增强 RBAC(Role Based Access Control,基于角色的访问控制)是AIX 6 的安全新特性。使用RBAC对用户权限的控制颗粒度可以做得很细,所以这个东西还是很有用的。由于RBAC相关命令都是新命令,不太好记,要用的时候却想不起来了,所以决定根据常见的需求,通通写成可重复使用的脚本。
1、查看具有角色的所有用户
lsrole -f -a dfltmsg ALL; lsuser -a default_roles roles ALL |grep -v "roles=$"
命令结果示例:
# lsrole -f -a dfltmsg ALL; lsuser -a default_roles roles ALL |grep -v "roles=$"
AccountAdmin:
        dfltmsg=User and Group Account Administration
BackupRestore:
        dfltmsg=Backup and Restore Administration
DomainAdmin:
        dfltmsg=Remote Domain Administration
FSAdmin:
        dfltmsg=File System Administration
SecPolicy:
        dfltmsg=Security Policy Administration
SysBoot:
        dfltmsg=System Boot Administration
SysConfig:
        dfltmsg=System Configuration Administration
isso:
        dfltmsg=Information System Security Officer
sa:
        dfltmsg=System Administrator
so:
        dfltmsg=System Operator
mawt2: default_roles=sa roles=sa
#
相关命令:
for i in `lsuser -a ALL`; do (rolelist -u $i | grep . && print $i"\n") ;done
chuser roles=sa,isso mawt3
chuser roles=sa mawt2
chuser default_roles=sa roles=sa mawt2
chuser default_roles= roles= mawt2
$ rolelist
sa              System Administrator
$ rolelist -e
sa              System Administrator
$
2、查看某角色所能执行的所有命令
ROLE=sa  #此处填角色名。填isso、sa、so的话,它们的子角色所能执行的命令也能列出来。
x() {
ROLE=$1
AUTHS=`lsrole -a authorizations $ROLE|awk -F= '{print $2}' |sed 's/,/|/g'`
lssecattr -c -a accessauths ALL | egrep "$AUTHS"
ROLELIST=`lsrole -a rolelist $ROLE|awk -F= '{print $2}' |sed 's/,/ /g'`
[[ a"$ROLELIST" == a ]] && return || for i in $ROLELIST; do (echo '##rolelist '$i; x $i);done
}
x $ROLE
命令结果示例:
# ROLE=SysBoot
# x() {
> ROLE=$1
> AUTHS=`lsrole -a authorizations $ROLE|awk -F= '{print $2}' |sed 's/,/|/g'`
> lssecattr -c -a accessauths ALL | egrep "$AUTHS"
> ROLELIST=`lsrole -a rolelist $ROLE|awk -F= '{print $2}' |sed 's/,/ /g'`
> [[ a"$ROLELIST" == a ]] && return || for i in $ROLELIST; do (echo '##rolelist '$i; x $i);done
> }
# x $ROLE
/usr/bin/chauthent accessauths=aix.system.boot.create
/usr/bin/mksysb accessauths=aix.system.boot.create
/usr/lib/boot/bin/bootinfo_chrp accessauths=aix.system.boot.info
/usr/sbin/bootinfo accessauths=aix.system.boot.info
/usr/sbin/bosboot accessauths=aix.system.boot.create
/usr/sbin/exec_shutdown accessauths=aix.system.boot.shutdown
/usr/sbin/fastboot accessauths=aix.system.boot.reboot
/usr/sbin/fasthalt accessauths=aix.system.boot.halt
/usr/sbin/halt accessauths=aix.system.boot.halt
/usr/sbin/reboot accessauths=aix.system.boot.reboot
/usr/sbin/savebase accessauths=aix.system.boot.create
/usr/sbin/shutdown accessauths=aix.system.boot.shutdown
#
相关命令:
chuser roles=sa mawt2
chfs -a size=+1M /tmp
# lsrole -a rolelist sa
sa rolelist=FSAdmin,AccountAdmin
# lsrole -a rolelist ALL
AccountAdmin rolelist=
BackupRestore rolelist=
DomainAdmin rolelist=
FSAdmin rolelist=
SecPolicy rolelist=
SysBoot rolelist=
SysConfig rolelist=
isso rolelist=DomainAdmin,SecPolicy,SysConfig
sa rolelist=FSAdmin,AccountAdmin
so rolelist=BackupRestore,SysBoot
#  
说明:sa rolelist=FSAdmin,AccountAdmin表明sa有两个子角色:FSAdmin,AccountAdmin。子角色所能执行的命令,父角色也能执行。
========================================================================
任何形式的转载,请写明出处:
email:
beginner@yeah.net
blog:
http://www.aixchina.net/?1865
   
http://www.cublog.cn/u/739/
========================================================================


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/739/showart_1673807.html

论坛徽章:
0
2 [报告]
发表于 2012-07-19 23:48 |只看该作者
今天才看到这里,研究的深啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP