角色通过包含具有指定权限的命令的权限配置文件来获取特权命令的访问权限。为用户提供特权命令访问权限的最安全的方法是为用户指定一个角色。承担此角色之后,用户便可执行所有包括在此角色权限配置文件中的特权命令。
验证到 Solaris Management Console 的用户或角色必须具有 solaris.admin.usermgr.read
授权。基本 Solaris 用户权限配置文件包括此授权。
确定可以承担的角色。
$ /usr/sadm/bin/smuser list -- -n username -l Authenticating as user: primadmin … User name: username User ID (UID): 110 Primary group: staff Secondary groups: Comment: Has admin roles Login Shell: /bin/sh … Rights: Assigned Roles: primadmin, admin |
找到以 "Assigned Roles:" 开头的行。
"Assigned Roles" 行列出可以承担的角色。
确定角色之一拥有的权限配置文件。
$ /usr/sadm/bin/smuser list -- -n admin -l Authenticating as user: primadmin … User name: admin User ID (UID): 101 Primary group: sysadmin Secondary groups: Comment: system administrator Login Shell: /bin/pfksh … Rights: System Administrator Assigned Roles: |
在 "Rights:" 行中找到该角色的权限配置文件的名称。
在 prof_attr 数据库中查找权限配置文件。
由于系统管理员配置文件是配置文件的集合,因此需要在系统管理员配置文件中列出这些配置文件。
$ cd /etc/security $ grep "System Administrator" prof_attr System Administrator:::Can perform most non-security administrative tasks:profiles=Audit Review,Printer Management,Cron Management, Device Management,File System Management,Mail Management,Maintenance and Repair,Media Backup,Media Restore,Name Service Management,Network Management,Object Access Management,Process Management,Software Installation,User Management,All;help=RtSysAdmin.html |
对于每个权限配置文件,在 exec_attr 数据库中查找与其相关的权限配置文件。
例如,Network Management 配置文件是 System Administrator 配置文件的补充配置文件。Network Management 配置文件包括一些特权命令。
$ cd /etc/security $ grep "Network Management" exec_attr Network Management:solaris:cmd:::/usr/sbin/ifconfig:privs=sys_net_config Network Management:solaris:cmd:::/usr/sbin/route:privs=sys_net_config … |
这些命令及其指定权限是 solaris 策略项的最后两个字段。可以在角色的配置文件 shell 中运行这些命令。
当用户承担角色时,其 shell 成为配置文件 shell。因此,将使用指定给命令的权限来执行这些命令。在以下示例中,admin 角色可以更改 useful.script 文件的权限。
% whoami jdoe % ls -l useful.script -rwxr-xr-- 1 elsee eng 262 Apr 2 10:52 useful.script chgrp admin useful.script chgrp: useful.script: Not owner % su admin Password: <键入 admin 的口令> $ /usr/ucb/whoami admin $ chgrp admin useful.script $ chown admin useful.script $ ls -l useful.script -rwxr-xr-- 1 admin admin 262 Apr 2 10:53 useful.script |