必须编辑PAM配置文件启用密码历史检查,图形界面和安全中心均不提供此功能;需在/etc/pam.d/common-password中添加或修改pam_unix.so行并设置remember=3,保存后立即生效,root用户需单独配置才受约束。

麒麟OS用户修改密码时需避免重复使用近期历史密码,防止安全策略形同虚设,尤其在多人共用或审计严格环境中,必须强制启用密码历史记录功能。
通过编辑PAM配置文件启用密码历史检查
该方法直接作用于系统认证底层,是唯一能真正实现“禁止重用前N次密码”的方式,图形界面和安全中心均不提供此选项。
1、以root权限打开终端,执行命令备份原配置:【cp /etc/pam.d/common-password /etc/pam.d/common-password.bak】。
2、使用nano编辑器修改密码策略文件:sudo nano /etc/pam.d/common-password。
3、在文件开头附近找到已有password requisite pam_pwquality.so行(若无则新增),在其下方插入一行:password [success=1 default=ignore] pam_unix.so use_authtok sha512 shadow remember=3。
这行中remember=3表示保留最近3次密码哈希用于比对;use_authtok确保复用当前密码修改流程,不触发额外认证;sha512和shadow保证加密强度与存储位置正确。若该行已存在但remember值不是3,直接修改为remember=3即可。
4、保存退出(Ctrl+O→回车→Ctrl+X),无需重启服务,策略在下次passwd命令执行时立即生效。
验证密码历史限制是否启用成功
完成配置后,必须实测验证,否则无法确认策略真实生效。
方法一:用当前用户执行passwd命令,连续三次设置相同新密码——第三次应提示“Password has been already used”或类似拒绝信息。
方法二:查看PAM日志确认模块加载状态,执行:grep -i "pam_unix.*remember" /etc/pam.d/common-password,输出应包含完整remember=3参数行。
注意:该限制仅对普通用户passwd命令有效,root用户执行passwd username时不受remember约束,如需统一管控,必须为root也单独添加对应pam_unix.so行并指定remember值。
补充说明:为什么不能依赖图形界面或安全中心
麒麟OS当前所有版本(含V10 SP1至SP3)的图形化“安全中心”和“账户设置”中,均未开放密码历史次数配置入口。
试图在“账户保护”或“密码策略”页面寻找“历史密码数”“禁止重用”等选项,只会徒劳无功——这些界面仅控制密码长度、字符类型等基础强度项,【remember机制完全由PAM模块独立管理,无法被GUI读取或写入】。
若跳过PAM手动配置,仅调整安全中心里的策略开关,用户仍可毫无阻碍地反复设置同一密码。

















