## <summary>Xen hypervisor</summary>
########################################
## <summary>
## Execute a domain transition to run xend.
## </summary>
## <param name="domain">
## <summary>
## Domain allowed to transition.
## </summary>
## </param>
#
interface(`xen_domtrans',`
gen_require(`
type xend_t, xend_exec_t;
')
domtrans_pattern($1,xend_exec_t,xend_t)
')
########################################
## <summary>
## Inherit and use xen file descriptors.
## </summary>
## <param name="domain">
## <summary>
## Domain to not audit.
## </summary>
## </param>
#
interface(`xen_use_fds',`
gen_require(`
type xend_t;
')
allow $1 xend_t:fd use;
')
########################################
## <summary>
## Do not audit attempts to inherit
## xen file descriptors.
## </summary>
## <param name="domain">
## <summary>
## Domain to not audit.
## </summary>
## </param>
#
interface(`xen_dontaudit_use_fds',`
gen_require(`
type xend_t;
')
dontaudit $1 xend_t:fd use;
')
########################################
## <summary>
## Allow the specified domain to append
## xend log files.
## </summary>
## <param name="domain">
## <summary>
## Domain allowed to transition.
## </summary>
## </param>
#
interface(`xen_append_log',`
gen_require(`
type var_log_t, xend_var_log_t;
')
logging_search_logs($1)
allow $1 xend_var_log_t:file { getattr append };
dontaudit $1 xend_var_log_t:file write;
')
########################################
## <summary>
## Do not audit attempts to read and write
## Xen unix domain stream sockets. These
## are leaked file descriptors.
## </summary>
## <param name="domain">
## <summary>
## Domain to not audit.
## </summary>
## </param>
#
interface(`xen_dontaudit_rw_unix_stream_sockets',`
gen_require(`
type xend_t;
')
dontaudit $1 xend_t:unix_stream_socket { read write };
')
########################################
## <summary>
## Connect to xenstored over an unix stream socket.
## </summary>
## <param name="domain">
## <summary>
## Domain allowed access.
## </summary>
## </param>
#
interface(`xen_stream_connect_xenstore',`
gen_require(`
type xenstored_t, xenstored_var_run_t;
')
files_search_pids($1)
stream_connect_pattern($1,xenstored_var_run_t,xenstored_var_run_t,xenstored_t)
')
########################################
## <summary>
## Connect to xend over an unix domain stream socket.
## </summary>
## <param name="domain">
## <summary>
## Domain allowed access.
## </summary>
## </param>
#
interface(`xen_stream_connect',`
gen_require(`
type xend_t, xend_var_run_t;
')
files_search_pids($1)
stream_connect_pattern($1,xend_var_run_t,xend_var_run_t,xend_t)
')
########################################
## <summary>
## Execute a domain transition to run xm.
## </summary>
## <param name="domain">
## <summary>
## Domain allowed to transition.
## </summary>
## </param>
#
interface(`xen_domtrans_xm',`
gen_require(`
type xm_t, xm_exec_t;
')
domtrans_pattern($1,xm_exec_t,xm_t)
')