在 common-auth 中添加一行后无法再进行身份验证

在 common-auth 中添加一行后无法再进行身份验证

我按照网上的建议设置了一个在密码尝试失败后运行的脚本。我在/etc/pam.d/common-auth

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

行后

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

我现在无法以任何用户身份登录:

$ su root
Password: 
su: Authentication failure

为什么我无法再通过这条新进入的线路进行连接?

完整文件 ( /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

success=1意味着,如果成功,PAM 应该跳过下一个模块并转到下一个模块 ... 即pam_deny.so。通过在pam_unix和之间插入一个模块pam_deny,跳过计数会发生变化。如果您想在 之后添加一个在失败时运行的模块,请success=2使用。pam_unix.so

相关内容