Solaris のシステム管理 (セキュリティサービス)

Procedure役割が実行可能な特権付きコマンドを判断する方法

役割は、特権が割り当てられたコマンドを含む権利プロファイルによって、特権付きコマンドにアクセスすることができます。特権付きコマンドに対するアクセス権をユーザーに与える最も安全な方法は、役割をコマンドに割り当てることです。ユーザーは、役割を引き受けると、その役割の権利プロファイルに含まれるすべての特権付きコマンドを実行することができます。

始める前に

Solaris 管理コンソールに対して認証を行うユーザーまたは役割は、solaris.admin.usermgr.read 承認を得る必要があります。Basic Solaris User 権利プロファイルには、この承認が含まれます。

  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. 役割の 1 つに含まれる権利プロファイルを判断します。


    $ /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 データベースの権利プロファイルを見つけます。

    System Administrator プロファイルはプロファイルの集合なので、System Administrator プロファイルのプロファイルを一覧表示する必要があります。


    $ 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 ポリシーエントリの最後の 2 つのフィールドです。役割のプロファイルシェルで、これらのコマンドを実行することができます。


例 11–12 役割での特権付きコマンドの実行

ユーザーが役割を引き受けると、シェルはプロファイルシェルになります。したがって、コマンドは、コマンドに割り当てられた特権で実行されます。次の例で、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: <Type admin password>
$ /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