Celeb Glow
news | March 17, 2026

Cannot authenticate anymore after adding a line to common-auth

I have followed online advice to set a script that would run after a failed password attemp. I added the line in /etc/pam.d/common-auth

auth [default=ignore] pam_exec.so seteuid /root/script

after the line

auth [success=1 default=ignore] pam_unix.so nullok_secure

I am now unable to log in with any user:

$ su root
Password:
su: Authentication failure

Why cannot I connect anymore with this the new entered line?

Full file (/etc/pam.d/common-auth):

#
# /etc/pam.d/common-auth - authentication settings common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of the authentication modules that define
# the central authentication scheme for use on the system
# (e.g., /etc/shadow, LDAP, Kerberos, etc.). The default is to use the
# traditional Unix authentication mechanisms.
#
# As of pam 1.0.1-6, this file is managed by pam-auth-update by default.
# To take advantage of this, it is recommended that you configure any
# local modules either before or after the default block, and use
# pam-auth-update to manage selection of other modules. See
# pam-auth-update(8) for details.
# here are the per-package modules (the "Primary" block)
auth [success=1 default=ignore] pam_unix.so nullok_secure
auth [default=ignore] pam_exec.so seteuid /root/script
# here's the fallback if no module succeeds
auth requisite pam_deny.so
# prime the stack with a positive return value if there isn't one already;
# this avoids us returning an error just because nothing sets a success code
# since the modules above will each just jump around
auth required pam_permit.so
# and here are more per-package modules (the "Additional" block)

1 Answer

success=1 means that, on success, PAM should skip the next module and go to the one after ... which is pam_deny.so. By inserting a module between pam_unix and pam_deny, the skip count changed. Use success=2 for pam_unix.so if you want to add a module to be run on failure after it.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy