修改 /etc/login.defs 只影响新建用户,关键参数包括:PASS_MAX_DAYS 90、PASS_MIN_DAYS 7、PASS_MIN_LEN 8(仅提示)、PASS_WARN_AGE 7;已有用户需用 chage 单独调整,密码复杂度由 PAM 模块强制。

直接编辑 /etc/login.defs 文件即可修改密码基础参数,但要注意:这些设置只对新建用户生效,已有用户的策略需用 chage 单独调整。
关键参数及推荐值
该文件中控制密码生命周期的几项核心配置如下(建议值基于当前主流安全实践):
- PASS_MAX_DAYS 90:密码最长使用 90 天,到期后必须更换(避免设为 99999 或 -1)
- PASS_MIN_DAYS 7:两次改密至少间隔 7 天,防绕过历史记录
- PASS_MIN_LEN 8:最小长度设为 8(注意:仅作提示,实际强度由 PAM 模块强制)
- PASS_WARN_AGE 7:提前 7 天提醒用户密码即将过期
修改操作步骤
以 root 权限执行以下操作:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 先备份原文件:
cp -a /etc/login.defs /etc/login.defs.bak - 用 vim 编辑:
vim /etc/login.defs - 查找并修改对应行(如
PASS_MAX_DAYS),确保格式为“参数名 + 空格 + 数值”,无多余字符或注释符号干扰 - 保存退出后,新创建的用户将自动继承这些规则
验证与补充说明
修改后可通过以下方式确认效果:
- 新建测试用户:
useradd -m testuser,再用chage -l testuser查看其策略是否已应用 - 已有用户不受影响,需手动运行
chage -M 90 username等命令更新 -
PASS_MIN_LEN不具备强制力,真正限制密码长度和复杂度的是pam_pwquality.so(在/etc/pam.d/password-auth中配置)
常见误区提醒
不要误以为改完 /etc/login.defs 就万事大吉:
- 它不控制密码复杂度(大小写、数字、特殊字符等),那是 PAM 模块的事
- 它不锁定账户、不记录失败尝试,这些靠
pam_faillock.so - root 用户默认绕过部分限制,如
PASS_MIN_LEN对其无效

















