输入错误时如何提示“su”重新请求密码?

输入错误时如何提示“su”重新请求密码?

默认su行为:

system@sword:/etc/pam.d$ su - test
Password: 
su: Authentication failure
<su exits>

当有人输入错误密码时,我需要配置“延迟”,以防止我的系统受到字典攻击。为了测试这个配置,我想在 ubuntu 中配置suusingPAM来实现这样的行为:

system@sword:/etc/pam.d$ su - test
Password: 
su: Authentication failure
<delay for "y" seconds>
<re-asks password>
Password: 
su: Authentication failure
<delay for "y" seconds>
<su exits>

我如何使用PAM或通过任何其他方式(如果需要)实现此目的?

答案1

最简单的解决方案是(取决于您的发行版)修改/etc/default/su/etc/login.defs设置FAIL_DELAY N其中N是正整数(秒)。

这不会su重复提示,但会N在返回 shell 之前强制等待几秒钟。

当然,这并不能阻止人们提前Ctrl-C终止su

您可以通过 PAM 编辑 /etc/pam.d/su并添加以下行来实现相同的结果

auth       optional   pam_faildelay.so  delay=3000000

靠近文件顶部(在其他auth required设置之前)。

相关内容