Linux之chage 命令用法详解

您所在的位置:网站首页 linux为用户设置登录密码的命令是 Linux之chage 命令用法详解

Linux之chage 命令用法详解

2024-07-08 14:58| 来源: 网络整理| 查看: 265

在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 [email protected]     //ssh连接 [email protected]'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 [email protected] [email protected]'s password:  Permission denied, please try again.                                                          //第一次输错密码后,提示错误; [email protected]'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 密码。

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3