发布于2026-08-22 阅读(0)
扫一扫,手机访问
在CentOS 7中,若要设置密码最小长度,需同时配置/etc/login.defs中的PASS_MIN_LEN参数以及/etc/pam.d/system-auth中的pam_pwquality.so模块的minlen参数。需要注意的是,前者仅对useradd创建的新用户初始密码起作用,而后者才是真正对所有passwd操作进行校验的关键,两者缺一不可。

CentOS 7 设置密码最小长度,不能只改一个地方 —— PASS_MIN_LEN 在 /etc/login.defs 里只影响新建用户;真正拦住密码设置的,是 PAM 模块里的 pam_pwquality.so 配置。漏掉任意一处,都可能让弱密码通过。
这个值仅在用 useradd 创建新用户时生效,对已有用户或 passwd 修改密码无约束力。
sudo vi /etc/login.defsPASS_MIN_LEN 8(不要写成 PASS_MIN_LENGTH,后者无效)这是真正起效的核心环节。CentOS 7 默认使用 pam_pwquality.so(不是旧版 pam_cracklib.so),必须在 /etc/pam.d/system-auth 中正确配置。
sudo vi /etc/pam.d/system-authpassword requisite pam_pwquality.so 开头的行(通常在第 20 行左右)minlen=8,例如:password requisite pam_pwquality.so try_first_pass local_users_only retry=3 minlen=8 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1光改配置不验证,等于没改。常见“以为生效了但其实没拦住”的情况,往往出在这里:
passwd 当前用户,尝试设 7 位纯数字密码 —— 应报错:password not accepted 或类似提示grep -v "^#" /etc/security/pwquality.conf | grep minlen,确认 minlen = 8 存在(authconfig 命令会写入此文件,但手动编辑 system-auth 优先级更高)enforce_for_root 参数,否则 passwd root 可绕过chage -l username 查看的是密码有效期,跟长度无关,别混淆最容易被忽略的是:/etc/login.defs 的 PASS_MIN_LEN 和 PAM 的 minlen 是两套机制,前者只管新建用户初始密码生成逻辑,后者才真正校验每次 passwd 输入。生产环境务必两者都设,且以 PAM 配置为准。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9