在登录提示符下输入错误密码后,会出现大约 3 秒的延迟。如何在 Linux 系统上使用 PAM 更改它?
答案1
我假设您正在使用 Linux 和 pam。延迟可能是由于pam_faildelay.so
。/etc/pam.d
使用检查您的 pam 配置pam_faildelay
,例如:
# Enforce a minimal delay in case of failure (in microseconds).
# (Replaces the `FAIL_DELAY' setting from login.defs)
# Note that other modules may require another minimal delay. (for example,
# to disable any delay, you should add the nodelay option to pam_unix)
auth optional pam_faildelay.so delay=3000000
要更改时间,请调整延迟参数。如果您想摆脱延迟,您可以删除/注释整行。
延迟的另一个来源可能是pam_unix.so
。要禁用由pam_unix.so
添加参数引起的延迟nodelay
,并可选择添加一行调用pam_faildelay.so
来添加(变量)延迟,例如:
auth optional pam_faildelay.so delay=100000
答案2
您需要将nodelay
参数传递给auth
pam_unix.so
.
根据您的身份验证方式,您需要设置参数的位置会有所不同。然而最多linux 发行版有类似的东西/etc/pam.d/system-auth
,包含在所有不同的文件中。
例如,/etc/pam.d/system-auth
您可能有一行如下所示:
auth sufficient pam_unix.so try_first_pass nullok
这应该更改为:
auth sufficient pam_unix.so try_first_pass nullok nodelay
该pam_unix.so
模块负责对/etc/passwd
和执行身份验证/etc/shadow
。如果您使用 LDAP 或其他密码后端,您可能仍应进行设置,nodelay
因为pam_unix.so
这是控制提示的内容(当pam_unix.so
身份验证失败时,它通常只是将获得的密码传递到下一个模块)。
您可以pam_unix.so
通过执行以下操作来阅读更多信息man pam_unix