# SPDX-License-Identifier: LGPL-2.1-or-later
# This file is part of systemd.
#
# Used by systemd --user instances.

{% if ENABLE_HOMED %}
-account sufficient pam_systemd_home.so
{% endif %}
account  sufficient pam_unix.so no_pass_expiry
account  required   pam_permit.so

{% if HAVE_SELINUX %}
session  required   pam_selinux.so close
session  required   pam_selinux.so nottys open
{% endif %}
session  required   pam_loginuid.so
session  optional   pam_keyinit.so force revoke
session  required   pam_namespace.so
{% if ENABLE_HOMED %}
-session optional   pam_systemd_home.so
{% endif %}
session  optional   pam_systemd.so
