当前位置:首页 > Linux > 正文

Linux密码有效期如何修改?

修改Linux用户密码有效期: ,1. **单个用户**:使用 chage -M 天数 用户名 设置最大有效期, chage -E 日期 用户名 设置过期日期。 ,2. **全局默认**:编辑 /etc/login.defs,修改 PASS_MAX_DAYS 等参数。 ,3. **查看状态**: chage -l 用户名 检查当前策略。 ,(需root权限操作)

方法1:修改全局默认配置(影响所有新用户)

通过编辑配置文件 /etc/login.defs 设置默认策略:

sudo nano /etc/login.defs  # 使用vi或vim亦可

找到以下参数并调整(单位:天):

PASS_MAX_DAYS 90   # 密码最长有效期(90天后必须修改)
PASS_MIN_DAYS 7    # 密码最短有效期(7天内不能修改)
PASS_WARN_AGE 14   # 密码过期前提醒时间(提前14天警告)

生效范围

Linux密码有效期如何修改?  第1张

  • 仅对新创建的用户生效
  • 现有用户需单独修改(见方法2)

方法2:修改特定用户配置(即时生效)

使用 chage 命令调整指定用户的策略:

sudo chage -l username  # 查看当前配置
sudo chage -M 90 username      # 设置密码最长有效期90天
sudo chage -m 7 username       # 设置密码最短修改间隔7天
sudo chage -W 14 username      # 设置过期前14天提醒
sudo chage -I 30 username      # 密码过期后宽限期30天(超时账户锁定)

关键参数说明
| 选项 | 含义 | 示例命令 |
|——|———————–|————————|
| -M | 密码最长使用天数 | chage -M 90 user1 |
| -m | 密码最短修改间隔 | chage -m 7 user1 |
| -W | 过期警告天数 | chage -W 14 user1 |
| -I | 过期后锁定前的宽限期 | chage -I 30 user1 |
| -E | 设置账户绝对过期日期 | chage -E 2025-12-31 user1 |


验证配置

# 检查全局默认值(需结合用户实际配置)
grep ^PASS /etc/login.defs
# 查看用户具体策略
sudo chage -l username

输出示例:

Last password change     : Jan 01, 2025
Password expires         : Apr 01, 2025 (90天后)
Password inactive        : May 01, 2025 (宽限期30天)
Account expires          : never
Minimum number of days...: 7
Maximum number of days...: 90
Warning number of days...: 14

注意事项

  1. 权限要求:必须使用 sudo 或 root 账户操作
  2. 兼容性
    • chage 命令适用于所有用户(包括root)
    • /etc/login.defs 对root账户无效(需单独用 chage 配置)
  3. 安全建议
    • 生产环境建议设置 PASS_MAX_DAYS ≤ 90
    • 敏感账户启用双因素认证(2FA)补充密码策略
    • 定期审计:使用脚本检查过期账户 awk -F: '{print $1}' /etc/shadow | xargs -n1 chage -l
  4. 关联配置
    • 密码复杂度:通过 /etc/pam.d/common-password/etc/security/pwquality.conf 设置
    • 账户锁定:失败登录处理(如 pam_tally2 模块)

常见问题

Q:修改后为何不生效?
A:检查是否冲突:

  • 用户自定义策略覆盖全局设置(用 chage -l 确认)
  • 系统启用其他认证模块(如LDAP)需在主服务器配置

Q:如何批量修改现有用户?
A:使用循环脚本(谨慎操作):

# 将所有用户密码有效期设为90天
for user in $(cut -d: -f1 /etc/passwd); do sudo chage -M 90 $user; done

合理配置密码有效期是Linux基础安全防护的关键步骤:

  1. 全局策略:通过 /etc/login.defs 管理新用户默认值
  2. 精细控制:用 chage 命令定制单个用户策略
  3. 深度防御:结合密码复杂度、账户锁定机制形成完整防护链

引用说明:本文内容基于Linux官方文档(man 5 login.defs, man 8 chage)及CIS安全基准最佳实践,操作前请备份关键文件(如 /etc/login.defs/etc/shadow)。

0