系统管理指南:安全性服务

Procedure如何确定角色可以运行的特权命令

角色通过包含具有指定权限的命令的权限配置文件来获取特权命令的访问权限。为用户提供特权命令访问权限的最安全的方法是为用户指定一个角色。承担此角色之后,用户便可执行所有包括在此角色权限配置文件中的特权命令。

开始之前

验证到 Solaris Management Console 的用户或角色必须具有 solaris.admin.usermgr.read 授权。基本 Solaris 用户权限配置文件包括此授权。

  1. 确定可以承担的角色。


    $ /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
  2. 找到以 "Assigned Roles:" 开头的行。

    "Assigned Roles" 行列出可以承担的角色。

  3. 确定角色之一拥有的权限配置文件。


    $ /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:
  4. 在 "Rights:" 行中找到该角色的权限配置文件的名称。

  5. 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
  6. 对于每个权限配置文件,在 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 中运行这些命令。


示例 11–12 在角色中运行特权命令

当用户承担角色时,其 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