1. 安装必要软件包
以 root 用户执行以下命令,安装 pam_pwquality 和 cracklib 相关工具。
dnf install pam_pwquality cracklib cracklib-dicts cracklib-words
2. 创建自定义弱密码列表文件
创建一个文本文件,每行写入一个需要被禁止的弱密码字段(例如:姓名缩写、公司名缩写、项目名等)。
vim /etc/security/custom-weak-passwords.txt
示例内容 (请替换为您实际需要禁止的字段):
KyLin
Admin
Server
Test123
ZhangSan
LiSi
ITDept
3. 生成 Cracklib 字典数据库
使用 create-cracklib-dict 命令将上一步的文本文件转换成系统可识别的二进制字典。
# 创建存储字典的目录(如果不存在)
mkdir -p /var/cracklib
# 根据自定义列表生成字典数据库
cat /etc/security/custom-weak-passwords.txt | create-cracklib-dict - /var/cracklib/pw_dict
4. 修改 PAM 配置
编辑密码认证相关的 PAM 配置文件,添加或修改 pam_pwquality 模块的参数。
vim /etc/pam.d/system-auth
找到包含 pam_pwquality.so 的那一行,确保其参数中包含 dictcheck=1 和 dictpath=/var/cracklib/pw_dict。修改后的行示例如下:
password requisite pam_pwquality.so try_first_pass local_users_only dictcheck=1 dictpath=/var/cracklib/pw_dict
5. 验证配置
尝试为任意用户设置一个包含上一步自定义弱密码列表中字段的密码,验证是否会被拒绝。
passwd <测试用户名>
输入密码:例如 Admin@2025 (如果 Admin 在您的自定义列表中)
预期结果:系统会提示密码包含字典单词,并拒绝修改。
注意事项:
1.字典文件是二进制的:修改 /etc/security/custom-weak-passwords.txt 后,必须重新执行步骤3来更新字典数据库。
2.影响范围:该配置会影响所有通过 passwd 命令修改密码的本地用户。
3.建议:可以定期(例如每个季度)回顾并更新自定义弱密码列表,以增强账户安全性。




