出于安全合规要求,为Linux服务器安全合规设置用户密码有效期(例如90天)是常见的运维操作。以下是配置全局默认策略和修改特定用户策略的具体步骤。
一、 修改系统全局默认密码策略
对于CentOS等Linux系统,新建用户的默认密码策略参数定义在 /etc/login.defs 配置文件中。修改此文件只对新创建的用户生效。
该文件中与密码策略相关的主要参数如下:
PASS_MAX_DAYS: 密码可以使用的最大天数。
PASS_MIN_DAYS: 密码更改的最小间隔天数。
PASS_MIN_LEN: 密码最小长度。
PASS_WARN_AGE: 密码过期前发出警告的天数。
查看当前默认配置,通常PASS_MAX_DAYS被设置为一个很大的数值(如99999天),这意味着密码几乎永不过期。

我们可以使用vi或其他编辑器直接修改此文件,将密码有效期调整为90天:
PASS_MAX_DAYS 90
保存后,此后新增的用户将自动应用90天的密码有效期。可以使用chage -l命令验证新用户test的策略:
chage -l test

二、 修改特定用户的密码过期策略
上述/etc/login.defs的修改不影响系统中已存在的用户。对于历史用户,需要使用chage命令进行单独设置,这是系统运维人员进行用户管理的常用工具。
chage 命令常用参数说明:
-l: 列出指定用户的密码策略详情。
-M: 设置密码可以使用的最大天数。
-m: 设置密码更改的最小间隔天数。
-W: 设置在密码过期前多少天开始发出警告。
-E: 强制设置用户账户本身的过期日期(格式:YYYY-MM-DD)。
-I: 设置密码过期后,账户被完全锁定前的宽限天数。
-d: 强制设置密码的最后修改日期。
三、 常用操作示例
-
将用户 testuser 的密码有效期设置为90天
chage -M 90 testuser
-
将用户 testuser 的密码有效期设为90天,并提前15天警告
chage -M 90 -W 15 testuser
-
将用户 testuser 的账户过期时间设置为指定日期
chage -E 2025-12-23 testuser
执行后,可以通过chage -l testuser查看策略是否生效。

|