policy_module(pxe)

########################################
#
# Declarations
#

type pxe_t;
type pxe_exec_t;
init_daemon_domain(pxe_t, pxe_exec_t)

type pxe_initrc_exec_t;
init_script_file(pxe_initrc_exec_t)

type pxe_log_t;
logging_log_file(pxe_log_t)

type pxe_runtime_t alias pxe_var_run_t;
files_runtime_file(pxe_runtime_t)

########################################
#
# Local policy
#

allow pxe_t self:capability { chown setgid setuid };
dontaudit pxe_t self:capability sys_tty_config;
allow pxe_t self:process signal_perms;

allow pxe_t pxe_log_t:file { append_file_perms create_file_perms setattr_file_perms };
logging_log_filetrans(pxe_t, pxe_log_t, file)

manage_files_pattern(pxe_t, pxe_runtime_t, pxe_runtime_t)
files_runtime_filetrans(pxe_t, pxe_runtime_t, file)

kernel_read_kernel_sysctls(pxe_t)
kernel_read_system_state(pxe_t)

corenet_all_recvfrom_netlabel(pxe_t)
corenet_udp_sendrecv_generic_if(pxe_t)
corenet_udp_sendrecv_generic_node(pxe_t)
corenet_udp_bind_generic_node(pxe_t)

corenet_sendrecv_pxe_server_packets(pxe_t)
corenet_udp_bind_pxe_port(pxe_t)

dev_read_sysfs(pxe_t)

domain_use_interactive_fds(pxe_t)

files_read_etc_files(pxe_t)

fs_getattr_all_fs(pxe_t)
fs_search_auto_mountpoints(pxe_t)

logging_send_syslog_msg(pxe_t)

miscfiles_read_localization(pxe_t)

userdom_dontaudit_use_unpriv_user_fds(pxe_t)
userdom_dontaudit_search_user_home_dirs(pxe_t)

optional_policy(`
	seutil_sigchld_newrole(pxe_t)
')

