auth		required	pam_env.so {{ debug|default('', true) }}
{% if pam_ssh %}
auth		sufficient	pam_ssh.so
{% endif %}

{% if krb5 %}
auth		[success={{ 4 if homed else 3 }} default=ignore]      pam_krb5.so {{ krb5_params }}
{% endif %}

{% if sssd %}
auth		[default=1 ignore=ignore success=ok]	pam_usertype.so isregular
auth		[default=3 ignore=ignore success=ok]	pam_localuser.so
{% endif %}

auth		requisite	pam_faillock.so preauth

{% if homed %}
auth            [success=2 default=ignore]      pam_systemd_home.so
{% endif %}

{% if sssd %}
auth            sufficient    pam_unix.so {{ nullok|default('', true) }} {{ debug|default('', true) }}
{% else %}
auth            [success=1 new_authtok_reqd=1 ignore=ignore default=bad]      pam_unix.so {{ nullok|default('', true) }} {{ debug|default('', true) }} try_first_pass
{% endif %}
auth		[default=die]	pam_faillock.so authfail
{% if sssd %}
auth		sufficient	pam_sss.so forward_pass {{ debug|default('', true) }}
{% endif %}
{% if caps %}
auth		optional	pam_cap.so
{% endif %}
{% if sssd %}
auth		required	pam_deny.so
{% endif %}
{% if krb5 %}
account		[success=2 default=ignore]	pam_krb5.so {{ krb5_params }}
{% endif %}

{% if homed %}
account         [success={{ 2 if sssd else 1 }} default=ignore]      pam_systemd_home.so
{% endif %}

account		required	pam_unix.so {{ debug|default('', true) }}
account         required        pam_faillock.so
{% if sssd %}
account		sufficient	pam_localuser.so
account		sufficient	pam_usertype.so issystem
account		[default=bad success=ok user_unknown=ignore] pam_sss.so {{ debug|default('', true) }}
account		required	pam_permit.so
{% endif %}

{% if passwdqc %}
password	required	pam_passwdqc.so config=/etc/security/passwdqc.conf
{% endif %}

{% if pwquality %}
password        required        pam_pwquality.so {{ local_users_only|default('', true ) }}
{% endif %}

{% if pwhistory %}
password        required        pam_pwhistory.so use_authtok remember=5 retry=3
{% endif %}

{% if krb5 %}
password	[success=1 default=ignore]	pam_krb5.so {{ krb5_params }}
{% endif %}

{% if homed %}
password        [success=1 default=ignore]      pam_systemd_home.so
{% endif %}

{% if passwdqc or pwquality %}
password	{{ 'sufficient' if sssd else 'required' }}	pam_unix.so try_first_pass {{ unix_authtok|default('', true) }} {{ nullok|default('', true) }} {{ unix_extended_encryption|default('', true) }} {{ debug|default('', true) }}
{% else %}
password        {{ 'sufficient' if sssd else 'required' }}        pam_unix.so try_first_pass {{ nullok|default('', true) }} {{ unix_extended_encryption|default('', true) }} {{ debug|default('', true) }}
{% endif %}

{% if sssd %}
password	sufficient	pam_sss.so use_authtok
password	required	pam_deny.so
{% endif %}

{% if pam_ssh %}
session		optional	pam_ssh.so
{% endif %}

{% include "templates/system-session.tpl" %}
