policy_module(rwho, 1.7.0)

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

type rwho_t;
type rwho_exec_t;
init_daemon_domain(rwho_t, rwho_exec_t)

type rwho_initrc_exec_t;
init_script_file(rwho_initrc_exec_t)

type rwho_log_t;
files_type(rwho_log_t)

type rwho_spool_t;
files_spool_file(rwho_spool_t)

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

allow rwho_t self:capability sys_chroot;
allow rwho_t self:process signal;
allow rwho_t self:fifo_file rw_fifo_file_perms;
allow rwho_t self:unix_stream_socket { accept listen };

allow rwho_t rwho_log_t:dir manage_dir_perms;
allow rwho_t rwho_log_t:file { append_file_perms create_file_perms setattr_file_perms };
logging_log_filetrans(rwho_t, rwho_log_t, { file dir })

allow rwho_t rwho_spool_t:dir manage_dir_perms;
allow rwho_t rwho_spool_t:file manage_file_perms;
files_spool_filetrans(rwho_t, rwho_spool_t, { file dir })

kernel_read_system_state(rwho_t)

corenet_all_recvfrom_netlabel(rwho_t)
corenet_udp_sendrecv_generic_if(rwho_t)
corenet_udp_sendrecv_generic_node(rwho_t)
corenet_udp_bind_generic_node(rwho_t)

corenet_sendrecv_rwho_server_packets(rwho_t)
corenet_udp_bind_rwho_port(rwho_t)
corenet_udp_sendrecv_rwho_port(rwho_t)

domain_use_interactive_fds(rwho_t)

auth_use_nsswitch(rwho_t)

init_read_utmp(rwho_t)
init_dontaudit_write_utmp(rwho_t)

auth_use_nsswitch(rwho_t)

logging_send_syslog_msg(rwho_t)

sysnet_dns_name_resolve(rwho_t)

userdom_getattr_user_terminals(rwho_t)

