将基于角色的访问控制与 Virtual I/O Server 配合使用
通过 Virtual I/O Server 版本 2.2和更高版本,系统管理员可以使用基于角色的访问控制 (RBAC) 来定义基于组织中的作业功能的角色。
系统管理员可以使用基于角色的访问控制 (RBAC) 为 Virtual I/O Server中的用户定义角色。 角色将一组许可权和权限授予指定的用户。 因此,用户只能根据给定的访问权来执行特定的系统功能集。 例如,如果系统管理员创建具有访问用户管理命令的权限的角色 UserManagement 并且将此角色分配给用户,那么该用户可以管理系统上的用户,但没有其他访问权。
将基于角色的访问控制与 Virtual I/O Server 配合使用的优点如下所示:
- 分割系统管理功能
- 通过只为用户授予必要的访问权提高安全性
- 一致地实现和强制实施系统管理及访问控制
- 轻松地管理和审计系统功能
授权
Virtual I/O Server 创建紧密仿真 AIX® 操作系统的授权的授权。 Virtual I/O Server 创建紧密仿真 AIX 操作系统授权的授权。 授权仿真命名约定和描述,但仅适用于特定于 Virtual I/O Server 的需求。 缺省情况下, padmin 用户被授予 Virtual I/O Server上的所有权限,并且可以运行所有命令。 其他类型的用户(使用 mkuser 命令创建)保留其命令执行权限。
mkauth 命令会在权限数据库中创建新的用户定义的权限。 可以在 auth 参数中使用点 (.) 来创建权限层次结构,以创建 ParentAuth.SubParentAuth.SubSubParentAuth... 格式的权限。 auth 参数中的所有父元素都必须存在于权限数据库,然后才能创建权限。 可以用于创建权限的最大父元素数目是 8。
在创建权限时,可以通过 Attribute=Value 参数设置权限属性。 所创建的每个权限都必须具有 id 权限属性的值。 如果未使用 mkauth 命令指定 id 属性,那么该命令会自动生成授权的唯一标识。 如果指定标识,那么该值必须唯一且必须大于 15000。 1 - 15000 范围内的标识保留给系统定义的权限使用。
与 AIX 操作系统不同,用户无法为所有 Virtual I/O Server 命令创建权限。 在 AIX 操作系统中,授权用户可以为所有命令创建权限层次结构。 但是,在 Virtual I/O Server中,只能为用户拥有的命令或脚本创建权限。 用户无法创建以 vios 开头的任何授权。 或 aix 。 因为它们被视为系统定义的权限。 因此,用户不能将任何其他层次结构添加至这些权限。
用户无法为所有 Virtual I/O Server 命令创建权限。 在 Virtual I/O Server中,只能为用户拥有的命令或脚本创建权限。 用户无法创建以 vios 开头的任何授权。 因为它们被视为系统定义的权限。 因此,用户不能将任何其他层次结构添加至这些权限。
授权名称不得以短划线 (-) ,加号 (+) , at 符号 (@) 或波浪号 (~) 开头。 它们不得包含空格,制表符或换行符。 不能将关键字 ALL、default 、ALLOW_OWNER、ALLOW_GROUP、ALLOW_ALL 或星号(*)用作授权名称。 不要在权限字符串中使用以下字符:
- :(冒号)
- "(引号)
- #(编号符号)
- ,(逗号)
- =(等号)
- \(反斜杠)
- /(正斜杠)
- 你说什么 (问号)
- '(单引号)
- `(重音符)
下表列出了对应于 Virtual I/O Server 命令的权限。 不使用 vios 和后续子权限,例如 vios 和 vios.device。 如果给予用户具有父权限或后续子权限(例如 vios 或 vios.device)的角色,那么该用户将具有对所有后续子权限及其相关命令的访问权。 例如,具有权限 vios.device 的角色,可为用户提供所有 vios.device.config 和 vios.device.manage 权限及其相关命令的访问权。
| 命令 | 命令选项 | 授权 |
|---|---|---|
| activatevg | 全部 | vios.lvm.manage.varyon |
| alert | 全部 | vios.system.cluster.alert |
| alt_root_vg | 全部 | vios.lvm.change.altrootvg |
| artexdiff | 全部 | vios.system.rtexpert.diff |
| artexget | 全部 | vios.system.rtexpert.get |
| artexlist | 全部 | vios.system.rtexpert.list |
| artexmerge | 全部 | vios.system.rtexpert.merge |
| artexset | 全部 | vios.system.rtexpert.set |
| backup | 全部 | vios.fs.backup |
| backupios | 全部 | vios.install.backup |
| bootlist | 全部 | vios.install.bootlist |
| cattracerpt | 全部 | vios.system.trace.format |
| cfgassist | 全部 | vios.security.cfgassist |
| cfgdev | 全部 | vios.device.config |
| cfglnagg | 全部 | vios.network.config.lnagg |
| cfgnamesrv | 全部 | vios.system.dns |
| cfgsvc | 全部 | vios.system.config.agent |
| chauth | 全部 | vios.security.auth.change |
| chbdsp | 全部 | vios.device.manage.backing.change |
| chdate | 全部 | vios.system.config.date.change |
| chdev | 全部 | vios.device.manage.change |
| checkfs | 全部 | vios.fs.check |
| chedition | 全部 | vios.system.edition |
| chkdev | 全部 | vios.device.manage.check |
| chlang | 全部 | vios.system.config.locale |
| chlv | 全部 | vios.lvm.manage.change |
| chpath | 全部 | vios.device.manage.path.change |
| chrep | 全部 | vios.device.manage.repos.change |
| chrole | 全部 | vios.security.role.change |
| chsp | 全部 | vios.device.manage.spool.change |
| chtcpip | 全部 | vios.network.tcpip.change |
| chuser | 全部 | vios.security.user.change |
| chvg | 全部 | vios.lvm.manage.change |
| chvlog | 全部 | vios.device.manage.vlog.change |
| chvlrepo | 全部 | vios.device.manage.vlrepo.change |
| chvopt | 全部 | vios.device.manage.optical.change |
| cl_snmp | 全部 | vios.security.manage.snmp.query |
| cleandisk | 全部 | vios.system.cluster.change |
| cluster | 全部 | vios.system.cluster.create |
| cplv | 全部 | vios.lvm.manage.copy |
| cpvdi | 全部 | vios.lvm.manage.copy |
| deactivatevg | 全部 | vios.lvm.manage.varyoff |
| diagmenu | 全部 | vios.system.diagnostics |
| dsmc | 全部 | vios.system.manage.tsm |
| entstat | 全部 | vios.network.stat.ent |
| errlog | -rm | vios.system.log |
| 其他 | vios.system.log.view | |
| exportvg | 全部 | vios.lvm.manage.export |
| extendlv | 全部 | vios.lvm.manage.extend |
| extendvg | 全部 | vios.lvm.manage.extend |
| failgrp | -create、-modify 和 -remove | vios.device.manage.spool.change 或 vios.system.cluster.pool.modify |
| fcstat | 全部 | vios.network.stat.fc |
| fsck | 全部 | vios.fs.check |
| hostmap | 全部 | vios.system.config.address |
| hostname | 全部 | vios.system.config.hostname |
| importvg | 全部 | vios.lvm.manage.import |
| invscout | 全部 | vios.system.firmware.scout |
| ioslevel | 全部 | vios.system.level |
| ldapadd | 全部 | vios.security.manage.ldap.add |
| ldapsearch | 全部 | vios.security.manage.ldap.search |
| ldfware | 全部 | vios.system.firmware.load |
| license | -接受 | vios.system.license |
| 其他 | vios.system.license.view | |
| loadopt | 全部 | vios.device.manage.optical.load |
| loginmsg | 全部 | vios.security.user.login.msg |
| lsauth | 全部 | vios.security.auth.list |
| lsdev | 全部 | vios.device.manage.list |
| lsfailedlogin | 全部 | vios.security.user.login.fail |
| lsfware | 全部 | vios.system.firmware.list |
| lsgcl | 全部 | vios.security.log.list |
| lslparinfo | 全部 | vios.system.lpar.list |
| lslv | 全部 | vios.lvm.manage.list |
| lsmap | 全部 | vios.device.manage.map.phyvirt |
| lsnetsvc | 全部 | vios.network.service.list |
| lsnports | 全部 | vios.device.manage.list |
| lspath | 全部 | vios.device.manage.list |
| lspv | 全部 | vios.device.manage.list |
| lsrep | 全部 | vios.device.manage.repos.list |
| lsrole | 全部 | vios.security.role.list |
| lssecattr | -c | vios.security.cmd.list |
| -d | vios.security.device.list | |
| -f | vios.security.file.list | |
| -p | vios.security.proc.list | |
| lssp | 全部 | vios.device.manage.spool.list |
| lssvc | 全部 | vios.system.config.agent.list |
| lssw | 全部 | vios.system.software.list |
| lstcpip | 全部 | vios.network.tcpip.list |
| lsuser | 全部 | vios.security.user.list 注: 任何用户都可以运行此命令以查看最少的用户属性集。 但是,只有具有此权限的用户才能查看所有用户属性。
|
| lsvg | 全部 | vios.lvm.manage.list |
| lsvlog | 全部 | vios.device.manage.vlog.list |
| lsvlrepo | 全部 | vios.device.manage.vlrepo.list |
| lsvopt | 全部 | vios.device.manage.optical.list |
| lu | -创建 | vios.device.manage.backing.create 或 vios.system.cluster.lu.create |
| -地图 | vios.device.manage.backing.create 或 vios.system.cluster.lu.create 或 vios.system.cluster.lu.map | |
| -remove | vios.device.manage.backing.remove 或 vios.system.cluster.lu.remove | |
| -解 | vios.device.manage.remove 或 vios.system.cluster.lu.unmap | |
| migratepv | 全部 | vios.device.manage.migrate |
| mirrorios | 全部 | vios.lvm.manage.mirrorios.create |
| mkauth | 全部 | vios.security.auth.create |
| mkbdsp | 全部 | vios.device.manage.backing.create |
| mkkrb5clnt | 全部 | vios.security.manage.kerberos.create |
| mkldap | 全部 | vios.security.manage.ldap.create |
| mklv | 全部 | vios.lvm.manage.create |
| mklvcopy | 全部 | vios.lvm.manage.mirror.create |
| mkpath | 全部 | vios.device.manage.path.create |
| mkrep | 全部 | vios.device.manage.repos.create |
| mkrole | 全部 | vios.security.role.create |
| mksp | 全部 | vios.device.manage.spool.create |
| mktcpip | 全部 | vios.network.tcpip.config |
| mkuser | 全部 | vios.security.user.create |
| mkvdev | -fbo | vios.device.manage.create.virtualdisk |
| -lnagg | vios.device.manage.create.lnagg | |
| -海运 | vios.device.manage.create.sea | |
| -vdev | vios.device.manage.create.virtualdisk | |
| -vlan | vios.device.manage.create.vlan | |
| mkvg | 全部 | vios.lvm.manage.create |
| mkvlog | 全部 | vios.device.manage.vlog.create |
| mkvopt | 全部 | vios.device.manage.optical.create |
| motd | 全部 | vios.security.user.msg |
| mount | 全部 | vios.fs.mount |
| netstat | 全部 | vios.network.tcpip.list |
| optimizenet | 全部 | vios.network.config.tune |
| oem_platform_level | 全部 | vios.system.level |
| oem_setup_env | 全部 | vios.oemsetupenv |
| passwd | 全部 | vios.security.passwd 注: 用户可以在没有此权限的情况下更改密码。 仅当用户要更改其他用户的密码时,才需要此权限。
|
| pdump | 全部 | vios.system.dump.platform |
| ping | 全部 | vios.network.ping |
| postprocesssvc | 全部 | vios.system.config.agent |
| prepdev | 全部 | vios.device.config.prepare |
| pv | -add、-remove 和 -replace | vios.device.manage.spool.change 或 vios.system.cluster.pool.modify |
| redefvg | 全部 | vios.lvm.manage.reorg |
| reducevg | 全部 | vios.lvm.manage.change |
| refreshvlan | 全部 | vios.network.config.refvlan |
| remote_management | 全部 | vios.system.manage.remote |
| replphyvol | 全部 | vios.device.manage.replace |
| restore | 全部 | vios.fs.backup |
| restorevgstruct | 全部 | vios.lvm.manage.restore |
| rmauth | 全部 | vios.security.auth.remove |
| rmbdsp | 全部 | vios.device.manage.backing.remove |
| rmdev | 全部 | vios.device.manage.remove |
| rmlv | 全部 | vios.lvm.manage.remove |
| rmlvcopy | 全部 | vios.lvm.manage.mirror.remove |
| rmpath | 全部 | vios.device.manage.path.remove |
| rmrep | 全部 | vios.device.manage.repos.remove |
| rmrole | 全部 | vios.security.role.remove |
| rmsecattr | -c | vios.security.cmd.remove |
| -d | vios.security.device.remove | |
| -f | vios.security.file.remove | |
| rmsp | 全部 | vios.device.manage.spool.remove |
| rmtcpip | 全部 | vios.network.tcpip.remove |
| rmuser | 全部 | vios.security.user.remove |
| rmvdev | 全部 | vios.device.manage.remove |
| rmvlog | 全部 | vios.device.manage.vlog.remove |
| rmvopt | 全部 | vios.device.manage.optical.remove |
| rolelist | -p | vios.security.proc.role.list 注: 您可以在没有任何权限的情况下运行此命令的其他选项。
|
| -U | vios.security.role.list | |
| savevgstruct | 全部 | vios.lvm.manage.save |
| save_base | 全部 | vios.device.manage.saveinfo |
| seastat | 全部 | vios.network.stat.sea |
| setkst | 全部 | vios.security.kst.set |
| setsecattr | -c | vios.security.cmd.set |
| -d | vios.security.device.set | |
| -f | vios.security.file.set | |
| -O | vios.security.domain.set | |
| -p | vios.security.proc.set | |
| showmount | 全部 | vios.fs.mount.show |
| shutdown | 全部 | vios.system.boot.shutdown |
| snap | 全部 | vios.system.trace.format |
| snapshot | 全部 | vios.device.manage.backing.create |
| snmp_info | 全部 | vios.security.manage.snmp.info |
| snmpv3_ssw | 全部 | vios.security.manage.snmp.switch |
| snmp_trap | 全部 | vios.security.manage.snmp.trap |
| startnetsvc | 全部 | vios.network.service.start |
| startsvc | 全部 | vios.system.config.agent.start |
| startsysdump | 全部 | vios.system.dump |
| starttrace | 全部 | vios.system.trace.start |
| stopnetsvc | 全部 | vios.network.service.stop |
| stopsvc | 全部 | vios.system.config.agent.stop |
| stoptrace | 全部 | vios.system.trace.stop |
| svmon | 全部 | vios.system.stat.memory |
| syncvg | 全部 | vios.lvm.manage.sync |
| sysstat | 全部 | vios.system.stat.list |
| rmsecattr | -c | vios.security.cmd.remove |
| -d | vios.security.device.remove | |
| -f | vios.security.file.remove | |
| tier | -创建 | vios.device.manage.spool.change 或 vios.system.cluster.pool.modify |
| -remove | vios.device.manage.spool.change 或 vios.system.cluster.pool.modify |
|
| -modify | vios.device.manage.spool.change 或 vios.system.cluster.pool.modify |
|
| topas | 全部 | vios.system.config.topas |
| topasrec | 全部 | vios.system.config.topasrec |
| tracepriv | 全部 | vios.security.priv.trace |
| traceroute | 全部 | vios.network.route.trace |
| uname | 全部 | vios.system.uname |
| unloadopt | 全部 | vios.device.manage.optical.unload |
| unmirrorios | 全部 | vios.lvm.manage.mirrorios.remove |
| unmount | 全部 | vios.fs.unmount |
| updateios | 全部 | vios.install |
| vasistat | 全部 | vios.network.stat.vasi |
| vfcmap | 全部 | vios.device.manage.map.virt |
| viosbr | -观点 | vios.system.backup.cfg.view |
| 其他 | vios.system.backup.cfg 注: 要运行此命令的任何其他选项,需要此授权。
|
|
| viosecure | 全部 | vios.security.manage.firewall |
| viostat | 全部 | vios.system.stat.io |
| vmstat | 全部 | vios.system.stat.memory |
| wkldagent | 全部 | vios.system.manage.workload.agent |
| wkldmgr | 全部 | vios.system.manage.workload.manager |
| wkldout | 全部 | vios.system.manage.workload.process |
角色
Virtual I/O Server 保留其当前角色,并将相应的权限分配给这些角色。 可以创建在 AIX 操作系统中紧密仿真角色的其他角色。 可以创建在 AIX 操作系统中紧密仿真角色的其他角色。 角色模拟命名约定和描述,但仅适用于特定于 Virtual I/O Server 的需求。 用户无法查看,使用或修改任何缺省角色 在 AIX 操作系统中 在 AIX 操作系统中。
以下角色是缺省角色 在 AIX 操作系统中 在 AIX 操作系统中。 这些角色对 Virtual I/O Server 用户不可用,并且不会显示。
- AccountAdmin
- BackupRestore
- DomainAdmin
- FSAdmin
- SecPolicy
- SysBoot
- SysConfig
- isso
- sa
- so
以下角色是 Virtual I/O Server中的缺省角色:
- 管理员
- DEUser
- PAdmin
- RunDiagnostics
- SRUser
- SYSAdm
- ViewOnly
mkrole 命令会创建角色。 newrole 参数必须是唯一的角色名称。 不能使用 ALL 或 default 关键字作为角色名称。 每个角色都必须具有唯一的角色标识,用于安全决策。 如果创建角色时未指定 id 属性,那么 mkrole 命令会自动将唯一标识分配给角色。
角色参数不能包含空格、制表符或换行符。 为了防止不一致,请将角色名称限制为 POSIX 可移植文件名字符集中的字符。 不能使用 ALL 或 default 关键字作为角色名称。 不要在角色字符串中使用以下字符:
- :(冒号)
- "(引号)
- #(编号符号)
- ,(逗号)
- =(等号)
- \(反斜杠)
- /(正斜杠)
- 你说什么 (问号)
- '(单引号)
- `(重音符)
特权
特权是进程的属性,进程可通过它来避免系统的特定限制和局限性。 特权与进程相关联,并且通过运行特许命令获取。 特权在操作系统内核中定义为位掩码,并通过特许的操作强制实施访问控制。 例如,特权位 PV_KER_TIME 可控制内核操作以修改系统日期和时间。 操作系统随附约 80 个特权,它们提供对特许操作的粒度控制。 可以通过内核中特许操作的划分来获取执行操作所需的最低特权。 此功能可增强安全性,因为进程黑客只能获得系统中一两个特权的访问权,不能获得 root 用户特权。
权限和角色是用户级工具,用于配置特许操作的用户访问权。 特权是在操作系统内核中使用的限制机制,用于确定进程是否具有执行操作的权限。 因此,如果用户处于具有运行命令的权限的角色会话中,并且运行该命令,那么会为进程指派一组特权。 权限和角色与特权之间没有直接的映射。 可通过权限提供对若干命令的访问权。 可为这些命令中的每个命令授予一组不同的特权。
下表列示了与基于角色的访问控制 (RBAC) 相关的命令。
| 命令 | 描述 |
|---|---|
| chauth | 修改由 newauth 参数标识的权限的属性 |
| chrole | 更改由 role 参数标识的角色的属性 |
| lsauth | 显示权限数据库中用户定义的权限和系统定义的权限的属性 |
| lsrole | 显示角色属性 |
| lssecattr | 列示一个或多个命令、设备或进程的安全性属性 |
| mkauth | 在权限数据库中创建新的用户定义的权限 |
| mkrole | 创建新角色 |
| rmauth | 除去由 auth 参数标识的用户定义的权限 |
| rmrole | 从角色数据库中除去由 role 参数标识的角色 |
| rmsecattr | 从相应数据库中除去由 Name 参数标识的命令、设备或文件条目的安全性属性 |
| rolelist | 为调用者提供关于指定给他们的角色的角色和权限信息 |
| setkst | 读取安全性数据库并将信息从数据库装入到内核安全性表中 |
| setsecattr | 设置由 Name 参数指定的命令、设备或进程的安全性属性 |
| swrole | 使用由 Role 参数指定的角色创建角色会话 |
| tracepriv | 记录运行命令时命令尝试使用的特权 |