policy_module(auditadm, 2.2.0)

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

role auditadm_r;
role system_r;
userdom_confined_admin_template(auditadm)

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

allow auditadm_t self:capability { dac_read_search  };

kernel_read_ring_buffer(auditadm_t)

corecmd_exec_shell(auditadm_t)

domain_kill_all_domains(auditadm_t)

mls_file_read_all_levels(auditadm_t)

selinux_read_policy(auditadm_t)

logging_send_syslog_msg(auditadm_t)
logging_read_generic_logs(auditadm_t)
logging_manage_audit_log(auditadm_t)
logging_manage_audit_config(auditadm_t)
logging_run_auditctl(auditadm_t, auditadm_r)
logging_run_auditd(auditadm_t, auditadm_r)
logging_stream_connect_syslog(auditadm_t)

seutil_run_runinit(auditadm_t, auditadm_r)
seutil_read_bin_policy(auditadm_t)

userdom_dontaudit_search_admin_dir(auditadm_t)

optional_policy(`
	consoletype_exec(auditadm_t)
')

optional_policy(`
	dmesg_exec(auditadm_t)
')

optional_policy(`
	screen_role_template(auditadm, auditadm_r, auditadm_t)
')

optional_policy(`
	secadm_role_change(auditadm_r)
')

optional_policy(`
	su_role_template(auditadm, auditadm_r, auditadm_t)
')

optional_policy(`
	sudo_role_template(auditadm, auditadm_r, auditadm_t)
')

optional_policy(`
	sysadm_role_change(auditadm_r)
')

optional_policy(`
	vlock_run(auditadm_t, auditadm_r)
')
