diff --git a/Changelog b/Changelog
index dc7b54a75..87d5be7c6 100644
--- a/Changelog
+++ b/Changelog
@@ -1,3 +1,4 @@
+- Xen updates from Dan Walsh.
- Filesystem updates from Dan Walsh.
- Large samba update from Dan Walsh.
- Drop snmpd_etc_t.
diff --git a/policy/modules/system/xen.if b/policy/modules/system/xen.if
index 7ef96e523..4c9ea79e3 100644
--- a/policy/modules/system/xen.if
+++ b/policy/modules/system/xen.if
@@ -55,6 +55,25 @@ interface(`xen_dontaudit_use_fds',`
dontaudit $1 xend_t:fd use;
')
+########################################
+##
+## Read xend image files.
+##
+##
+##
+## Domain allowed access.
+##
+##
+#
+interface(`xen_read_image_files',`
+ gen_require(`
+ type xen_image_t, xend_var_lib_t;
+ ')
+
+ files_list_var_lib($1)
+ read_files_pattern($1,{ xend_var_lib_t xen_image_t },xen_image_t)
+')
+
########################################
##
## Allow the specified domain to append
@@ -72,10 +91,31 @@ interface(`xen_append_log',`
')
logging_search_logs($1)
- allow $1 xend_var_log_t:file { getattr append };
+ append_files_pattern($1,xend_var_log_t,xend_var_log_t)
dontaudit $1 xend_var_log_t:file write;
')
+########################################
+##
+## Create, read, write, and delete the
+## xend log files.
+##
+##
+##
+## Domain allowed access.
+##
+##
+#
+interface(`xen_manage_log',`
+ gen_require(`
+ type var_log_t, xend_var_log_t;
+ ')
+
+ logging_search_logs($1)
+ manage_dirs_pattern($1,xend_var_log_t,xend_var_log_t)
+ manage_files_pattern($1,xend_var_log_t,xend_var_log_t)
+')
+
########################################
##
## Do not audit attempts to read and write
diff --git a/policy/modules/system/xen.te b/policy/modules/system/xen.te
index 774425568..9d1d1ed08 100644
--- a/policy/modules/system/xen.te
+++ b/policy/modules/system/xen.te
@@ -1,5 +1,5 @@
-policy_module(xen,1.3.0)
+policy_module(xen,1.3.1)
########################################
#
@@ -25,6 +25,10 @@ type xend_exec_t;
domain_type(xend_t)
init_daemon_domain(xend_t, xend_exec_t)
+# tmp files
+type xend_tmp_t;
+files_tmp_file(xend_tmp_t)
+
# var/lib files
type xend_var_lib_t;
files_type(xend_var_lib_t)
@@ -88,16 +92,22 @@ allow xend_t self:packet_socket create_socket_perms;
allow xend_t xen_image_t:dir list_dir_perms;
manage_dirs_pattern(xend_t,xen_image_t,xen_image_t)
manage_files_pattern(xend_t,xen_image_t,xen_image_t)
+read_lnk_files_pattern(xend_t,xen_image_t,xen_image_t)
rw_blk_files_pattern(xend_t,xen_image_t,xen_image_t)
allow xend_t xenctl_t:fifo_file manage_file_perms;
dev_filetrans(xend_t, xenctl_t, fifo_file)
+manage_files_pattern(xend_t,xend_tmp_t,xend_tmp_t)
+manage_dirs_pattern(xend_t,xend_tmp_t,xend_tmp_t)
+files_tmp_filetrans(xend_t, xend_tmp_t, { file dir })
+
# pid file
allow xend_t xend_var_run_t:dir setattr;
manage_files_pattern(xend_t,xend_var_run_t,xend_var_run_t)
manage_sock_files_pattern(xend_t,xend_var_run_t,xend_var_run_t)
-files_pid_filetrans(xend_t,xend_var_run_t, { file sock_file })
+manage_fifo_files_pattern(xend_t,xend_var_run_t,xend_var_run_t)
+files_pid_filetrans(xend_t,xend_var_run_t, { file sock_file fifo_file })
# log files
allow xend_t xend_var_log_t:dir setattr;
@@ -167,6 +177,7 @@ files_etc_filetrans_etc_runtime(xend_t,file)
files_read_usr_files(xend_t)
storage_raw_read_fixed_disk(xend_t)
+storage_raw_write_fixed_disk(xend_t)
storage_raw_read_removable_device(xend_t)
term_getattr_all_user_ptys(xend_t)
@@ -181,8 +192,12 @@ locallogin_dontaudit_use_fds(xend_t)
logging_send_syslog_msg(xend_t)
+lvm_domtrans(xend_t)
+
miscfiles_read_localization(xend_t)
+mount_domtrans(xend_t)
+
sysnet_domtrans_dhcpc(xend_t)
sysnet_signal_dhcpc(xend_t)
sysnet_domtrans_ifconfig(xend_t)
@@ -284,6 +299,10 @@ dev_read_sysfs(xenstored_t)
files_read_usr_files(xenstored_t)
+storage_raw_read_fixed_disk(xenstored_t)
+storage_raw_write_fixed_disk(xenstored_t)
+storage_raw_read_removable_device(xenstored_t)
+
term_use_generic_ptys(xenstored_t)
term_use_console(xenconsoled_t)
@@ -317,6 +336,7 @@ files_search_var_lib(xm_t)
allow xm_t xen_image_t:dir rw_dir_perms;
allow xm_t xen_image_t:file read_file_perms;
+allow xm_t xen_image_t:blk_file read_blk_file_perms;
kernel_read_system_state(xm_t)
kernel_read_kernel_sysctls(xm_t)
@@ -337,6 +357,8 @@ files_list_mnt(xm_t)
# Some common macros (you might be able to remove some)
files_read_etc_files(xm_t)
+storage_raw_read_fixed_disk(xm_t)
+
term_use_all_terms(xm_t)
init_rw_script_stream_sockets(xm_t)