修改linux账号密码报错如下
BAD PASSWORD: The password fails the dictionary check - it is based on a dictionary word
✅ 翻译:密码未通过字典校验,属于常见字典单词(系统判定弱密码)
解决方案:
⚠️重要前置提醒
仅测试/内网环境操作,生产服务器严禁关闭密码校验,存在高危安全风险!
你现在是 root 用户,正常情况下:出现 BAD PASSWORD 警告后,再次输入一遍密码确认,依然可以强制保存;如果确认输入后直接退出,说明配置了 enforce_for_root 强制root也要遵守密码策略。
方案一:只关闭【字典词校验】(推荐,保留其他复杂度规则)
编辑配置文件
vim /etc/security/pwquality.conf
找到 dictcheck,修改为:
dictcheck = 0
dictcheck=0 关闭字典单词检测,不再报 based on a dictionary word
保存退出,无需重启服务,直接重试改密:
passwd opsadmin
方案二:修改PAM配置(CentOS/RHEL,彻底放行root)
编辑文件
vim /etc/pam.d/system-auth
找到这一行:
password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
末尾加上 enforce_for_root 就代表root也要强校验,删掉这个参数,root即可绕过全部复杂度校验。
配套文件(部分系统生效)
vim /etc/pam.d/password-auth
和上面做一样修改
方案三:临时完全注释校验模块(不推荐)
直接注释 pam_pwquality 整行,所有密码规则全部失效
# password requisite pam_pwquality.so ......
✅ 配套:合规安全密码示例(不用改配置直接用)
不想动配置,直接用这类密码不会报错:
OpsAdmin@2026、Admin_8921#op
✅ 补充操作:改完密码查看有效期(你之前用到的命令)
chage -l opsadmin
✅ 恢复策略(操作完测试后建议复原)
把 dictcheck=1 恢复,或者取消注释 pam_pwquality 那一行,保障服务器安全。