これを定量化する一つの方法として、ローカルゾーンのものとグローバルゾーンで使用可能な特権を比較します。
例えば、グローバルゾーンで使用可能な特権は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. ...
非グローバルゾーンでは、83個の特権のうち、デフォルトでは43個の特権があります。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.
剥奪されている特権は以下の通りです。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 件のコメント:
コメントを投稿