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/scriptafter the line
auth [success=1 default=ignore] pam_unix.so nullok_secureI am now unable to log in with any user:
$ su root
Password:
su: Authentication failureWhy 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.