policy_module(pwauth)

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

attribute_role pwauth_roles;
roleattribute system_r pwauth_roles;

type pwauth_t;
type pwauth_exec_t;
application_domain(pwauth_t, pwauth_exec_t)
role pwauth_roles types pwauth_t;

type pwauth_runtime_t alias pwauth_var_run_t;
files_runtime_file(pwauth_runtime_t)

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

allow pwauth_t self:capability setuid;
allow pwauth_t self:process setrlimit;
allow pwauth_t self:fifo_file manage_fifo_file_perms;
allow pwauth_t self:unix_stream_socket { accept listen };

manage_files_pattern(pwauth_t, pwauth_runtime_t, pwauth_runtime_t)
files_runtime_filetrans(pwauth_t, pwauth_runtime_t, file)

domain_use_interactive_fds(pwauth_t)

auth_domtrans_chk_passwd(pwauth_t)
auth_domtrans_upd_passwd(pwauth_t)
auth_use_nsswitch(pwauth_t)

init_read_utmp(pwauth_t)

logging_send_syslog_msg(pwauth_t)
logging_send_audit_msgs(pwauth_t)

miscfiles_read_localization(pwauth_t)
