Linux之chage 命令用法详解

在linux中,有一些针对用户管理的工具,今天我们要提及到的是Chage工具。二话不多说,先man再说:

#man chage    //要养成man习惯!!

得出如下信息:

名称
       chage - 更改用户密码过期信息

大纲
       chage [选项] 登录

描述
       The chage command changes the number of days between password changes
       and the date of the last password change. This information is used by
       the system to determine when a user must change his/her password.
 

由信息可以得知chage是针对用户密码进行的,但是也不全是针对密码,因为chage有个选项,是针对账户修改的:

注:只有 root 才可以使用 chage,但也有个例外情况,下面会讲到

-E:--expiredate 过期日期

该选项的功能是设定账户的可用时长,即在什么时间过期;

命令如下:

chage -E 2019-04-29 test    //其中,test为用户,用户将在2019年4月29日失效(不可登录)

//注:必须为大写E

除了-E选项外,还有其他的选项,我们可以敲入命令:chage 查看,如下所示:

选项:
  -d, --lastday
  -h, --help
  -I, --inactive
  -l, --list
  -m, --mindays
  -M, --maxdays
  -R, --root 
  -W, --warndays

以上大多数选项是针对用户密码进行设置的,下面逐一解释并进行举例说明:

-d:根据man出来的信息翻译为:最近日期,它的作用是将更改{用户最近一次修改密码}的日期;

eg:chage -d 2019-06-30 test             //设置test用户最后一次修改密码的日期为2019年6月30日

注:chage -d 0 test                           //则代表该test用户需立即修改密码

可能有人会这么想,修改最近一次修改密码的日期有什么用呢?

个人觉得,该选项为其他选项的条件,其他所有选项成立的前提都是根据该选项(-d)。

下面逐一分析其他选项:

【-m】

-m --mindays 最小天数        将两次改变密码之间相距的最小天数设为“最小天数”
//该解释理解起来可能有点拗,实际上它作用很简单,就是以最近修改密码的日期为开始,到设定天数内,用户不能修改密码

eg:chage -m 5 test     

//该命令表示为:从最近修改密码的日期开始的5天内,用户test不能再次修改密码,如果修改,会出现如下提示:

[test@testhost ~]$passwd

更改用户test的密码

为test更改STRESS密码

(当前)UNIX密码:

您需要等待更长时间以更改密码

【-M】

-M  --maxdays 最大天数        将两次改变密码之间相距的最大天数设为“最大天数”

//即自修改密码的日期开始,修改后密码的有效期限

eg:chage -M 8 test

//test用户自修改密码的日期开始,修改后的密码将在8天后过期;

//如修改密码的日期为:2019年6月30日。修改过后的密码将会在2019年7月8日过期

注:这里有个概念:密码过期;先记着,因为跟下面所讲的选项有关,所以等下一起解释:

【-I】

-I  --inactive INACITVE       过期 INACTIVE 天数后,设定密码为失效状态

//该选项为大写的i,它的作用是:当密码过期状态超过所设定的时间后,密码会变为失效状态

eg:chage -I 3 test

//用户test从密码过期开始算起,3天不修改密码则密码失效,

//如密码在2019年7月8日过期,如果不进行修改,则会在2019年7月11日失效

这里出现了另外个概念:密码失效;

它跟密码过期有什么不一样呢?

密码过期:设置的密码经过一段的时间后,系统会认为该密码不安全,于是将密码设置为过期状态,用户登录的时候,系统会提示用户进行密码修改;如下所示:

$ssh test@192.168.2.5     //ssh连接
test@192.168.2.5's password: 
You are required to change your password immediately (password aged)
Last login: Sun Jun 30 16:20:31 2019

WARNING: Your password has expired.                                    //你的密码已过期
You must change your password now and login again!
Changing password for user test.
Changing password for test.

密码失效:经过一段时间,如果用户没有进行密码修改,则系统会将该密码设置为失效状态(此时用户不可通过该密码进行登录)

如下所示:

$ ssh test@192.168.2.5
test@192.168.2.5's password: 
Permission denied, please try again.                                                          //第一次输错密码后,提示错误;
test@192.168.2.5's password: 
Your account has expired; please contact your system administrator  //第二次输对后,提示账户过期
Authentication failed.

注:以上两个解释中的“经过一段时间”,均可通过选项设置;

【-W】

-W  --warndays 警告天数       将过期警告天数设为“警告天数”

//当所设置的密码快要接近过期时间后,系统会对用户进行警告,如前面例子所示:

eg:chage -W 8 test

//用户test的密码快要过期的的8天内,系统会持续对用户进行警告,

//如用户密码在2019-06-30过期,则在2019-06-22日后,系统会对用户test提出警告

【-R】

-R  --root CHROOT_DIR         //chroot 到的目录

//这个涉及到chroot的概念,不进行解释,知道是这个就好!

【-l】

-l, --list                    显示帐户年龄信息。               //这里应该为日期信息;

//小写的L,显示出账户的日期信息;

eg:chage -l test

最近一次密码修改时间                                     :6月 30, 2019
密码过期时间                                                  :7月 08, 2019
密码失效时间                                                  :7月 11, 2019
帐户过期时间                                                  :4月 26, 2019
两次改变密码之间相距的最小天数                  :5
两次改变密码之间相距的最大天数                  :8
在密码过期之前警告的天数                            :8

注:以上信息,就是在这次所讲指令输入完成后的最终结果;

【-h】

 -h, --help                    显示此帮助信息

eg:chage -h

用法:chage [选项] 登录

选项:
  -d, --lastday 最近日期        将最近一次密码设置时间设为“最近日期”
  -E, --expiredate 过期日期     将帐户过期时间设为“过期日期”
  -h, --help                    显示此帮助信息并推出
  -I, --inactive INACITVE       过期 INACTIVE 天数后,设定密码为失效状态
  -l, --list                    显示帐户年龄信息
  -m, --mindays 最小天数        将两次改变密码之间相距的最小天数设为“最小天数”
  -M, --maxdays 最大天数        将两次改变密码之间相距的最大天数设为“最大天数”
  -R, --root CHROOT_DIR         chroot 到的目录
  -W, --warndays 警告天数       将过期警告天数设为“警告天数”

除了通过chage修改外,也可以通过修改文件:/etc/login.defs来修改m、M、W选项的内容,但是修改后需要重启系统,相比之下,没有用chage方便。

以上,总结为:

1.chage工具是更改用户密码过期信息,它的命令格式为:chage [选项] 登录用户

2.选项分为三种类型:一种是针对密码的设定选项(-i、-d、-m、-M、W、-R),一种是命令显示选项(-h,-l),一种是针对账户选项(-E);(知识结构,方便记忆)

注:命令显示选项不需要root用户也可以执行;

3.两种修改密码设定的方式;

拓展部分:

当我们输入命令:

#cat /etc/shadow    //

 test:!!:18077:5:8:8:3:18012:

            第一个字段为:用户名;

            第二个字段为:加密的密码

            第三个字段为:密码最后一次修改的时间      (chage -d)

            第四个字段为:密码最小修改间隔时间         (chage -m)

            第五个字段为:密码的有效期                       (chage -M)

            第六个字段为:密码需要变更前的警告天数  (chage -W)

            第七个字段为:密码过期后的宽限天数         (chage -I)

            第八个字段为:账号失效时间                       (chage -E)

            第九个字段为:保留

注:

1.第三个字段中,显示18077的原因是:Linux 计算日期的起始时间是以  1970 年 1 月 1 日开始,不断累加得到的时间, 到 1971 年 1 月 1 日,则为 366 天。这里显示 18077 天,也就是说,此 root 账号在 1970 年 1 月 1 日之后的第 18077 天修改的 root 用户密码。通过命令计算,结果如下所示:

[root@test ~]# date -u -d "1970-01-01 UTC $((18077 * 86400 )) seconds"
2019年 06月 30日 星期日 00:00:00 UTC

第八个字段运算同理

2.对于普通账户的密码遗失,可以通过 root 账户解决,它会重新给你配置好指定账户的密码,而不需知道你原有的密码(利用 root 的身份使用 passwd 命令即可)。
如果 root 账号的密码遗失,则需要重新启动进入单用户模式,系统会提供 root 权限的 bash 接口,此时可以用 passwd 命令修改账户密码;也可以通过挂载根目录,修改 /etc/shadow,将账户的 root 密码清空的方法,此方式可使用 root 无法密码即可登陆,建议登陆后使用 passwd 命令配置 root 密码。

 

### 回答1: linux chage命令是用来修改用户密码过期时间的命令。它可以设置用户密码的最长使用期限、最短使用期限、密码过期前的警告天数等参数。使用chage命令可以提高系统的安全性,防止用户长时间使用同一个密码,从而避免密码泄露的风险。 ### 回答2: Linux chage命令是一个非常实用的命令,它可以帮助我们对linux系统中的用户密码进行管理。chage命令可以让管理员定期更改用户密码的过期时间,增强系统安全性。 chage命令的基本用法是“chage [选项] 用户名”,我们可以使用不同的选项对指定用户的密码过期时间进行管理。常用的选项包括: -l:列出当前用户的密码过期信息; -d:设置用户密码的最后修改时间,该时间是从1970年1月1日开始计算的天数; -E:设置用户密码的过期时间,即从1970年1月1日开始计算的天数; -m:设置用户密码可以修改的最短间隔天数; -M:设置用户密码的最长有效期; -W:设置密码过期前多少天提醒用户更改密码。 例如,我们可以使用“chage -M 90 -m 1 -W 7 root”命令来设置root用户密码的最长有效期为90天,最短间隔时间为1天,提前7天提醒用户更改密码。 总的来说,chage命令对于加强系统安全性是非常实用的。通过定期更改用户密码的方式可以防止用户长期使用同一密码,减少密码泄露的风险。同时,管理员也可以根据系统的需要使用chage命令灵活调整用户密码的管理策略。 ### 回答3: Linux chage命令是一个管理用户密码到期时间的命令。该命令可以用来指定用户密码的最长有效期限、最短有效期限、过期前警告天数、账号失效日期等信息。 chage命令只有超级用户才有权限使用。 chage命令的语法格式如下: chage [-m 最短天数] [-M 最长天数] [-W 警告天数] [-E 失效日期] [-I 帐号不活动天数] [-d 上次修改密码的日期] 用户名 -m 最短天数指密码最短有效期限,即从上次密码修改或创建起多少天后必须修改密码。默认值为0,表示不设置最短有效期限。 -M 最长天数指密码最长有效期限,即从上次密码修改或创建起多少天后必须修改密码。默认值为99999,表示密码永不过期。 -W 警告天数指距密码过期日子前多少天开始警告用户修改密码,默认值为7天。 -E 失效日期指账号的失效日期,用户无法再登录系统。日期格式是YYYY-MM-DD。 -I 帐号不活动天数指多少天用户没有登录系统时,账号被禁止登录。默认值为-1,表示不启用该功能。 -d 上次修改密码的日期用于设置密码最长有效期限。日期格式是YYYY-MM-DD。 用户可以通过chage命令查看当前用户密码策略的设置。例如: $ chage -l user1 Last password change : Aug 03, 2021 Password expires : never Password inactive : never Account expires : never Minimum number of days between password change : 0 Maximum number of days between password change : 99999 Number of days of warning before password expires : 7 其中,Last password change表示最近一次修改密码的日期,Password expires表示密码的过期日子,Password inactive表示密码失效期限,Account expires表示账号失效日期,Minimum number of days between password change表示密码最短有效期限,Maximum number of days between password change表示密码最长有效期限,Number of days of warning before password expires表示密码过期前的警告天数。 通过chage命令,管理员可以灵活设置用户密码的管理策略,提高系统安全性。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值