linux密码安全需配置pam模块与shadow参数:设置minlen=10、大小写字母/数字/特殊字符各至少1个、difok=3、maxrepeat=3;用chage设有效期90天、提醒7天、强制首登改密;pam_pwhistory.so remember=5防重用;/etc/login.defs设新用户默认策略。

Linux系统默认密码策略较宽松,需手动配置以增强安全性。核心是修改PAM(Pluggable Authentication Modules)模块和shadow密码文件参数,涉及密码长度、字符类型、历史记录、最长使用期限等关键控制点。
启用PAM密码复杂度检查(pam_pwquality)
现代Linux发行版(如CentOS 8+/RHEL 8+、Ubuntu 20.04+)默认使用pam_pwquality.so替代旧的pam_cracklib。需编辑/etc/pam.d/common-password(Debian/Ubuntu)或/etc/pam.d/system-auth(RHEL/CentOS):
- 确认存在类似这一行(若无则添加,放在其他password段之前):
password requisite pam_pwquality.so retry=3 minlen=10 difok=3 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1 maxrepeat=3 - 参数说明:
– minlen=10:最小长度10位
– difok=3:新密码至少3个字符与旧密码不同
– ucredit=-1:至少含1个大写字母(负值表示“至少”)
– lcredit=-1:至少含1个小写字母
– dcredit=-1:至少含1个数字
– ocredit=-1:至少含1个特殊字符
– maxrepeat=3:禁止连续4个相同字符(如aaaa)
设置密码有效期与强制修改策略
通过chage命令或直接编辑/etc/shadow生效,推荐用chage统一管理:
Linux AI 服务器 — 将 Linux 服务器转换为本地 AI 推理集群。使用 systemd、NVIDIA CUDA 实现无头 Linux AI,零 GUI 开销。
- 为用户设置密码有效期(例如90天后过期,提前7天提醒):
sudo chage -M 90 -W 7 username - 强制首次登录修改密码:
sudo chage -d 0 username(下次登录即提示改密) - 设置密码最短使用时间(防刚改完立刻再改):
sudo chage -m 1 username(至少用满1天) - 查看当前策略:
chage -l username
启用密码重用限制(防止循环使用旧密码)
在PAM配置中加入历史记录控制,避免用户反复使用最近用过的密码:
- 在/etc/pam.d/common-password或/etc/pam.d/system-auth中添加:
password [default=ok] pam_pwhistory.so enforce_for_root remember=5 use_authtok -
remember=5表示保存最近5次密码哈希,新密码不得与之重复
– enforce_for_root:对root用户也生效
– use_authtok:配合前面pam_pwquality使用,不单独触发密码提示 - 确保/etc/security/opasswd文件存在且可写(PAM自动创建)
全局默认策略(新用户自动继承)
避免每次新建用户都手动设chage,可配置系统级默认值:
- 编辑/etc/login.defs:
– PASS_MAX_DAYS 90(最大有效期)
– PASS_MIN_DAYS 1(最小使用天数)
– PASS_WARN_AGE 7(过期前警告天数) - 注意:该配置仅对useradd创建的新用户生效,不影响已有账户
- 验证是否生效:
sudo useradd -m testuser && sudo chage -l testuser,应显示对应天数










