在linux系统中,防止用户重复使用旧密码的方法是配置pam模块的密码历史记录功能。具体步骤如下:1. 修改/etc/pam.d/common-password文件中的remember参数以设定密码历史记录数量;2. 根据系统类型调整配置文件路径,如red hat系系统使用/etc/pam.d/system-auth或/etc/pam.d/password-auth;3. 检查/etc/login.defs中的密码策略是否冲突;4. 使用passwd命令测试配置并检查日志排查问题。通过以上步骤可有效提升账户安全,防止密码回滚风险。
在linux系统中,防止用户重复使用旧密码是提升账户安全的一个重要措施。通过配置密码历史记录功能,可以确保用户不能立即回滚到最近用过的密码,从而降低密码被破解的风险。这个功能主要依赖于PAM(Pluggable Authentication Modules)模块来实现。
修改
/etc/pam.d/common-password
/etc/pam.d/common-password
文件
/etc/pam.d/common-password
中配置的。你需要找到类似下面这一行:
password requisite pam_pwquality.so retry=3
在这之后或附近,你会看到这样一行:
password sufficient pam_unix.so obscure use_authtok remember=5
其中的关键参数是
remember=5
,它表示系统会记住最近5个密码,不允许用户重复使用。
- 如果你希望增加或减少这个数字,比如改为10次历史记录,只需将该值修改为
remember=10
。
- 修改完成后保存文件,并退出编辑器。
注意:如果你使用的是red Hat系系统(如centos、RHEL),则配置文件可能位于 /etc/pam.d/system-auth 或 /etc/pam.d/password-auth,请根据你的系统进行相应调整。
配置
/etc/login.defs
/etc/login.defs
(部分系统适用)
虽然
/etc/login.defs
通常用于设置新用户的默认密码策略,但它不直接支持密码历史记录功能。不过你可以在这里检查是否有与密码相关的策略冲突,比如:
PASS_MAX_DAYS 99999 PASS_MIN_DAYS 0 PASS_WARN_AGE 7
这些参数控制密码最长使用时间、最短使用时间和警告天数,和密码历史记录配合使用,能更全面地管理密码生命周期。
测试配置是否生效
修改完配置后,建议测试一下是否真的阻止了旧密码的重复使用。
- 使用
passwd
命令更改某个用户的密码。
- 然后尝试再次将其改回原来的密码,看看是否会提示“Password has been already used. Choose another.”或者类似的警告信息。
- 如果没有生效,请检查日志
/var/log/auth.log
(Debian/Ubuntu)或
/var/log/secure
(Red Hat系)以获取错误信息。
几个常见问题排查点:
- 确保使用的是正确的PAM配置文件路径
- 检查是否有多个
pam_unix.so
的调用导致冲突
- SELinux或AppArmor等安全模块是否干扰了配置
基本上就这些。配置密码历史记录看起来简单,但实际操作中容易忽略一些细节,比如不同发行版之间的差异、PAM模块顺序的影响等。只要注意这些点,就能有效增强系统的账户安全。