これを定量化する一つの方法として、ローカルゾーンのものとグローバルゾーンで使用可能な特権を比較します。
例えば、グローバルゾーンで使用可能な特権は82個です:
それぞれの特権の内容を知ることができます。bleonard@solaris:~$ ppriv -l | wc -l 82
bleonard@solaris:~$ ppriv -lv
contract_event
Allows a process to request critical events without limitation.
Allows a process to request reliable delivery of all events on
any event queue.
contract_identity
Allows a process to set the service FMRI value of a process
contract template.
...
複数の権限の内容を確認することもできます。bleonard@solaris:~$ ppriv -lv file_dac_read file_dac_write
file_dac_read
Allows a process to read a file or directory whose permission
bits or ACL do not allow the process read permission.
file_dac_write
Allows a process to write a file or directory whose permission
bits or ACL do not allow the process write permission.
In order to write files owned by uid 0 in the absence of an
effective uid of 0 ALL privileges are required.
非グローバルゾーンでは、83個の特権のうち、デフォルトでは43個の特権があります。剥奪されている特権は以下の通りです。root@myzone:~# ppriv -l zone | wc -l 43
Tim Taylorのように、ゾーンに特権を追加することもできます。例えば、ゾーンには通常DTraceを実行する権限がありません。cpc_cpu dtrace_kernel dtrace_proc dtrace_user file_downgrade_sl file_flag_set file_upgrade_sl graphics_access graphics_map net_mac_implicit proc_clock_highres proc_priocntl proc_zone sys_config sys_devices sys_ipc_config sys_linkdir sys_dl_config sys_net_config sys_res_bind sys_res_config sys_smb sys_suser_compat sys_time sys_trans_label virt_manage win_colormap win_config win_dac_read win_dac_write win_devices win_dga win_downgrade_sl win_fontpath win_mac_read win_mac_write win_selection win_upgrade_sl xvm_control
以下のようにして、DTraceの権限を追加することができます。root@myzone:~# dtrace -l ID PROVIDER MODULE FUNCTION NAME
これでゾーン内でDTraceを実行することができます。bleonard@solaris:~$ sudo zonecfg -z myzone Password: zonecfg:myzone> set limitpriv="default,dtrace_proc,dtrace_user" zonecfg:myzone> verify zonecfg:myzone> exit bleonard@solaris:~$ sudo zoneadm -z myzone reboot
root@myzone:~# dtrace -l | more
ID PROVIDER MODULE FUNCTION NAME
1 dtrace BEGIN
2 dtrace END
3 dtrace ERROR
7115 syscall nosys entry
7116 syscall nosys return
...
なお、一部の特権はゾーンに付与することができません。付与できない特権を付与している場合、ブート時に以下のようなメッセージが出ます。すべての権限とゾーンのステータス(デフォルト、オプション、禁止)をまとめたリストはこちらです。bleonard@solaris:~$ sudo zoneadm -z myzone reboot privilege "dtrace_kernel" is not permitted within the zone's privilege set zoneadm: zone myzone failed to verify
System Administration Guide: Virtualization Using the Solaris Operating System
Privileges in a Non-Global Zone
http://download.oracle.com/docs/cd/E19082-01/819-2450/z.admin.ov-18/index.html
原文はこちら。
http://blogs.oracle.com/observatory/entry/what_a_zone_is_never
0 件のコメント:
コメントを投稿