policy_module(auditadm, 2.5.1)

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

role auditadm_r;
userdom_unpriv_user_template(auditadm)

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

allow auditadm_t self:capability { dac_override dac_read_search };

kernel_read_ring_buffer(auditadm_t)

corecmd_exec_shell(auditadm_t)

domain_kill_all_domains(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)

seutil_run_runinit(auditadm_t, auditadm_r)
seutil_read_bin_policy(auditadm_t)

optional_policy(`
	consoletype_exec(auditadm_t)
')

optional_policy(`
	dmesg_exec(auditadm_t)
')

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

optional_policy(`
	secadm_role_change(auditadm_r)
')

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

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

optional_policy(`
	sysadm_role_change(auditadm_r, auditadm_t)
')

optional_policy(`
	vlock_run(auditadm_t, auditadm_r)
')
