linux中设置密码最大有效期限用chage -m命令,控制密码最长使用天数,到期后强制改密但账户仍可登录;-m 90设90天,-m 0立即过期,-m -1永不过期;新用户默认策略需修改/etc/login.defs中pass_max_days值;建议配合-w和-i参数增强提醒与宽限期管理。

在 Linux 中设置密码最大有效期限,核心是用 chage -M 命令。这个参数控制“密码最长能用多少天”,到期后用户登录时会被强制要求改密,但账户本身仍可登录——这点常被误解为“账号被锁”,其实不是。
给单个用户设密码有效期(最常用)
管理员需用 root 或 sudo 权限执行:
- 设为 90 天:sudo chage -M 90 username
- 立即过期(下次登录必须改密):sudo chage -M 0 username
- 永不过期(不推荐):sudo chage -M -1 username 或 sudo chage -M 99999 username
执行后可用 sudo chage -l username 查看效果,“Maximum number of days between password change” 字段即为所设值。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
让新用户默认继承该策略
/etc/login.defs 文件只影响 今后新建的用户,对已有用户完全无效:
- 编辑文件:sudo vi /etc/login.defs
- 修改这一行:PASS_MAX_DAYS 90(把原值替换成你需要的天数)
- 保存后,后续用 useradd 创建的用户会自动获得此设置
配合其他参数避免策略失效
光设 -M 不够,用户可能忽略提醒或拖到最后一刻。建议组合使用:
- -W 7:提前 7 天开始登录时提示“密码将在 X 天后过期”
- -I 14:密码过期后还能登录 14 天,但每次都要改密;超期则账户被锁定
- 完整命令示例:sudo chage -M 90 -W 7 -I 14 username
注意区分 -M 和 -E
别把密码过期和账户过期搞混:
- -M 管密码本身(用户还能登,但得改密)
- -E 管整个账户(比如 -E 2026-12-31,到了那天连登录都不允许)
- 两者可共存,但触发逻辑独立:密码过期+宽限期未满,仍可登;账户到期日一到,直接拒绝所有认证










