diff options
author | Jason Zaman <jason@perfinion.com> | 2015-03-25 10:24:46 +0800 |
---|---|---|
committer | Jason Zaman <jason@perfinion.com> | 2015-03-25 23:52:05 +0800 |
commit | d4ff30bdc377f3dea934af1b478cdf86d33a7589 (patch) | |
tree | c90647149e95eb194daae0d6ca36ced518ffd31b | |
parent | virt: add virt_tmpfs_t type and permissions (diff) | |
download | hardened-refpolicy-d4ff30bdc377f3dea934af1b478cdf86d33a7589.tar.gz hardened-refpolicy-d4ff30bdc377f3dea934af1b478cdf86d33a7589.tar.bz2 hardened-refpolicy-d4ff30bdc377f3dea934af1b478cdf86d33a7589.zip |
introduce virt_leaseshelper_t
-rw-r--r-- | policy/modules/contrib/dnsmasq.te | 1 | ||||
-rw-r--r-- | policy/modules/contrib/virt.fc | 1 | ||||
-rw-r--r-- | policy/modules/contrib/virt.if | 20 | ||||
-rw-r--r-- | policy/modules/contrib/virt.te | 23 |
4 files changed, 45 insertions, 0 deletions
diff --git a/policy/modules/contrib/dnsmasq.te b/policy/modules/contrib/dnsmasq.te index fbfe09fe..eb3c7f8c 100644 --- a/policy/modules/contrib/dnsmasq.te +++ b/policy/modules/contrib/dnsmasq.te @@ -127,4 +127,5 @@ optional_policy(` virt_manage_lib_files(dnsmasq_t) virt_read_pid_files(dnsmasq_t) virt_pid_filetrans(dnsmasq_t, dnsmasq_var_run_t, { dir file }) + virt_domtrans_leaseshelper(dnsmasq_t) ') diff --git a/policy/modules/contrib/virt.fc b/policy/modules/contrib/virt.fc index a4f20bcf..b38007b2 100644 --- a/policy/modules/contrib/virt.fc +++ b/policy/modules/contrib/virt.fc @@ -18,6 +18,7 @@ HOME_DIR/VirtualMachines/isos(/.*)? gen_context(system_u:object_r:virt_content_t /usr/libexec/libvirt_lxc -- gen_context(system_u:object_r:virtd_lxc_exec_t,s0) /usr/libexec/qemu-bridge-helper gen_context(system_u:object_r:virt_bridgehelper_exec_t,s0) +/usr/libexec/libvirt_leaseshelper -- gen_context(system_u:object_r:virt_leaseshelper_exec_t,s0) /usr/bin/virsh -- gen_context(system_u:object_r:virsh_exec_t,s0) /usr/bin/virt-sandbox-service.* -- gen_context(system_u:object_r:virsh_exec_t,s0) diff --git a/policy/modules/contrib/virt.if b/policy/modules/contrib/virt.if index c8bc302e..7c97c87c 100644 --- a/policy/modules/contrib/virt.if +++ b/policy/modules/contrib/virt.if @@ -193,6 +193,26 @@ interface(`virt_domtrans_bridgehelper',` ######################################## ## <summary> +## Execute a domain transition to +## run virt bridgehelper. +## </summary> +## <param name="domain"> +## <summary> +## Domain allowed to transition. +## </summary> +## </param> +# +interface(`virt_domtrans_leaseshelper',` + gen_require(` + type virt_leaseshelper_t, virt_leaseshelper_exec_t; + ') + + corecmd_search_bin($1) + domtrans_pattern($1, virt_leaseshelper_exec_t, virt_leaseshelper_t) +') + +######################################## +## <summary> ## Execute bridgehelper in the bridgehelper ## domain, and allow the specified role ## the bridgehelper domain. diff --git a/policy/modules/contrib/virt.te b/policy/modules/contrib/virt.te index 6332b0f9..0d50107e 100644 --- a/policy/modules/contrib/virt.te +++ b/policy/modules/contrib/virt.te @@ -166,6 +166,12 @@ domain_type(virt_bridgehelper_t) domain_entry_file(virt_bridgehelper_t, virt_bridgehelper_exec_t) role virt_bridgehelper_roles types virt_bridgehelper_t; +type virt_leaseshelper_t; +type virt_leaseshelper_exec_t; +domain_type(virt_leaseshelper_t) +domain_entry_file(virt_leaseshelper_t, virt_leaseshelper_exec_t) +role system_r types virt_leaseshelper_t; + type virtd_lxc_t; type virtd_lxc_exec_t; init_system_domain(virtd_lxc_t, virtd_lxc_exec_t) @@ -1220,3 +1226,20 @@ corenet_rw_tun_tap_dev(virt_bridgehelper_t) userdom_search_user_home_dirs(virt_bridgehelper_t) userdom_use_user_ptys(virt_bridgehelper_t) + +######################################## +# +# Leaseshelper local policy +# + +allow virt_leaseshelper_t virtd_t:fd use; +allow virt_leaseshelper_t virtd_t:fifo_file write_fifo_file_perms; + +manage_dirs_pattern(virt_leaseshelper_t, virt_var_lib_t, virt_var_lib_t) +manage_files_pattern(virt_leaseshelper_t, virt_var_lib_t, virt_var_lib_t) +files_var_lib_filetrans(virt_leaseshelper_t, virt_var_lib_t, { file dir }) + +manage_files_pattern(virt_leaseshelper_t, virt_var_run_t, virt_var_run_t) +files_pid_filetrans(virt_leaseshelper_t, virt_var_run_t, file) + +kernel_dontaudit_read_system_state(virt_leaseshelper_t) |