禁用或大幅缩短密码错误时的暂停时间

禁用或大幅缩短密码错误时的暂停时间

我现在正在使用 plasma 5 (如果重要的话,在 Fedora 22 上),每当我在锁定屏幕上输入错误的密码时,我都必须等待大约五秒钟才能让我再次尝试在密码输入中输入文本。

我觉得这太长了,想知道是否有人知道这个超时是否在某个配置文件中定义(希望只影响锁定/登录屏幕而不是其他软件,因为超时可以很好地阻止机器人暴力破解)

答案1

pam_unix.so更新条目不起作用的原因(请参阅重力回答) 不起作用的原因可以在以下源代码中找到kscreenlocker

在将收到的密码转发给身份验证程序之前(即kcheckpass)KScreenLocker欢迎应用程序将开始三秒钟的“宽限锁定时器”并将拒绝任何进一步的解锁尝试,直到该计数器过期。当然,这个三秒的数字是硬编码的。因此,当您尝试删除 PAM 级时间时(如另一个答案中所建议的那样),您实际上要做的就是按比例等待这个计时器。

这里唯一的解决方案是重新编译 KScreenLocker,将给定的计时器修补为某个低值(将其设置为 0 可能会引起不快;我还没有检查过)。
或者尝试向上游提出不同的值。据我所知,他们不太愿意让屏幕锁定器上的内容可配置,所以你可能运气不佳。

答案2

该延迟是由pam_unix认证模块添加的。

打开/etc/pam.d/system-auth,在其中找到“auth … pam_unix.so”模块,然后将nodelay选项添加到行中。(有关所有选项的信息以及如何指定它们的示例,请参阅“man pam_unix”。)

答案3

在 Plasma 5 上(我在 Fedora 39 上),这是在您的主题文件之一中设置的。

就我而言,我使用Breeze Dark但它的“父”主题Breeze因此我需要更新的文件是/usr/share/plasma/look-and-feel/org.kde.breeze.desktop/contents/lockscreen/LockScreenUi.qml

找到这一段代码并将值更改为您想要的值(以毫秒为单位)

Timer {
    id: graceLockTimer
    interval: 3000
    onTriggered: {
        root.clearPassword();
        authenticator.tryUnlock();
    }
}

来源

您可以立即测试,无需重新启动机器。

希望这能帮助其他人(可能也包括我未来的自己)

相关内容