Linux之chage 命令用法详解 |
您所在的位置:网站首页 › linux为用户设置登录密码的命令是 › 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 [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 |