linux系统中的chage命令主要用于查看和修改用户密码的过期信息,是系统管理员管理用户账户安全的核心工具之一,所有操作都需要root权限才能执行。

chage命令基本语法
chage命令的基本格式如下:
chage [选项] 用户名
如果不添加任何选项直接执行chage 用户名,会进入交互式配置界面,依次提示你输入各项密码策略参数。
常用参数说明
以下是chage命令最常用的参数,掌握这些参数就能满足大部分密码策略配置需求:
- -l:列出指定用户的当前密码过期信息,不会修改任何配置
- -d:设置上次修改密码的日期,格式为YYYY-MM-DD,也可以直接输入距离1970年1月1日的天数
- -E:设置账户过期日期,格式为YYYY-MM-DD,到该日期后账户会被锁定无法登录
- -M:设置密码的最大使用天数,超过这个天数后密码会过期,必须修改才能登录
- -m:设置密码的最小使用天数,在这个天数内用户不能修改密码
- -W:设置密码过期前的提醒天数,到这个天数时用户登录会收到密码即将过期的提示
- -I:设置密码过期后的宽限天数,密码过期后在这个天数内还可以登录,登录后必须修改密码
常用操作示例
1. 查看用户密码过期信息
要查看用户test的当前密码策略,执行以下命令:
chage -l test
输出结果会包含上次密码修改时间、密码过期时间、账户过期时间、最小使用天数、最大使用天数、警告天数、宽限天数等信息。
2. 设置密码30天必须修改,过期前7天提醒
如果需要让test用户的密码最多使用30天,过期前7天开始提醒,执行以下命令:
chage -M 30 -W 7 test
3. 设置账户在2024年12月31日过期
如果需要让test账户到指定日期自动锁定,执行以下命令:
chage -E 2024-12-31 test
如果要取消账户过期限制,将日期设置为空即可:
chage -E -1 test
4. 强制用户下次登录必须修改密码
如果需要让test用户下次登录系统时必须修改密码,可以将上次密码修改时间设置为0:
chage -d 0 test
注意事项
chage命令修改的配置最终会写入/etc/shadow文件,该文件只有root用户有权限读取和修改,普通用户无法执行chage命令修改自己的密码策略。另外设置密码最小使用天数时,要避免设置过大导致用户无法及时更新存在风险的密码,密码最大使用天数建议根据系统安全等级设置在30到90天之间。