Linux 系统用户密码有效期
一、账户有效期相关参数
1.1 概念
密码有效期:当一个密码过期后,系统会要求修改密码后才能登录。
账户有效期:当一个账号过期了,将无法再登录。也不提供修改密码的机会。
1.2 查看账号信息
使用chage -l root命令可以查看用户的相关信息。
前四个比较难以理解,这里进行详细的解释:
Last password change:表示最后一次修改密码的日期。例如一个密码的有效期设置为90天。那么从Last password change开始往后推90天的日期,就是密码的过期时间。当密码过期,用户再登录时会被要求更改密码,只有更改密码之后才能登录。
#修改上次修改密码的日期为2024年10月10日
chage -d 2024-10-10 rootPassword expires:表示密码的过期日期,注意这里是日期,而非密码的有效天数,但是这个日期实际上和密码的有效天数是直接相关的。如果密码永久有效,这里显示never。如果密码是90天,这里显示一个具体的日期时间,时间从Last password change开始向后推90天。(修该这个值会同步修改Maximum number of days between password change)
#密码在90天后过期
chage -M 90 root
#密码在99999天后过期(永不过期)
chage -M 99999 root
#密码在-1天后过期(永不过期)
chage -M -1 rootPassword inactive:默认天数为-1,这里会显示never。也就是密码过期之后,用户再进行登录,系统会要求用户进行修改。而如果设置了7天,则表示密码过期7天内,用户还有修改密码的机会,超过7天账号将被锁定,连修改密码的机会也没有。只能通过管理员用户(如root)才能解锁账号。
#密码过期的7天内,可以修改密码并登录。超过7天账号会被锁定。
chage -I 7 root
#不论密码过期多久,都可以修改密码并登录
chage -I -1 rootAccount expires:账号过期时间,表示账号在多少天后会过期,即便此时密码并没有过期。
#账号在2025年12月31日过期
chage -E 2025-12-31 root
#账号永不过期
chage -E -1 root如果root账号过期了怎么办?
如果root账号过期,将无法登录系统。并且系统内也没有其它管理员账号。则只能进入救援模式,执行命令passwd root修改密码,然后执行chage -E -1 root取消过期设置。
二、管理命令
1.查看用户密码有效期
chage -l root输出
Last password change : Dec 12, 2024
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 12345
Number of days of warning before password expires : 72.修改密码最小有效期
用户在修改密码之后,要再等7天才能再次修改。(没啥用)
chage -m 7 root3.修改密码最大有效期
表示密码从“上次修改的日期往后99999天内有效”,设置为99999或者-1表示密码永久生效。
chage -M 99999 root4.修改密码过期警告时间
系统将在密码过期7天前开始警告。
chage -W 7 root5.设置用户密码的最后修改日期
如果修改为0天,则会要求用户在下次登陆时,必须修改密码。
chage -d 0 root设置为今天
相当于重置了密码的有效期
chage -d $(date +%Y-%m-%d) root