1. chage命令的介绍
作用: chage用于密码的实效管理,用来修改帐号和密码的有效期,可以用来确定用户何时修改密码。
语法格式:chage [参数]
我们可以用chage –help来查看常用的参数。
[root@doc ~]# chage –help
除了 –help查看帮助之外,还可以使用:[root@doc ~]# info chage
[root@doc ~]# man chage
[root@doc ~]# info chage
[root@doc ~]# chage -h
2. 常用案例示范
2.1. 查看用户密码的有效期
-l 用来查看密码是否过期
此处的-l是L的小写字母
[root@doc ~]# useradd mufeng
[root@doc ~]# chage -l mufeng
最近一次密码修改时间 :1月 16, 2023
密码过期时间 :从不
密码失效时间 :从不
帐户过期时间 :从不
两次改变密码之间相距的最小天数 :0
两次改变密码之间相距的最大天数 :99999
在密码过期之前警告的天数 :7
[root@doc ~]#
2.2. 设置密码的过期时间
现在我们有个mengfeng用户,我们来设置mufeng用户60天后密码过期,密码过期的前7天收到警告信息
[root@doc ~]# chage -M 60 -m7 -W 7 mufeng
[root@doc ~]# chage -l mufeng
最近一次密码修改时间 :1月 16, 2023
密码过期时间 :3月 17, 2023
密码失效时间 :从不
帐户过期时间 :从不
两次改变密码之间相距的最小天数 :7
两次改变密码之间相距的最大天数 :60
在密码过期之前警告的天数 :7
可以看到密码过期时间变成了3月17, 两次更改密码的最大间隔天数变成了60天,密码过期前警告时间变成了:7天。
如果你向我一样困惑于,这些参数到底修改的哪里呢,我们可以看下面的代码示例:
[root@doc ~]# tail -n 1 /etc/shadow
mufeng:!!:19373:7:60:7:::
可以看到mufeng用户在/etc/shadow里是由冒号分隔的几个部分,每个部分代表的意思如下:
这里我们把chage的参数对应的修改字段,直接标注在后面。
第一个字段为:用户名;
第二个字段为:加密的密码
第三个字段为:密码最后一次修改的时间 (chage -d)
第四个字段为:密码最小修改间隔时间 (chage -m)
第五个字段为:密码的有效期 (chage -M)
第六个字段为:密码需要变更前的警告天数 (chage -W)
第七个字段为:密码过期后的宽限天数 (chage -I)
第八个字段为:账号失效时间 (chage -E)
第九个字段为:保留
根据上面的参数,如果我们要设置账号的失效时间该如何设置呢?
2.3. 设置账号的失效时间
## 创建用户
[root@doc ~]# useradd mufenggrow
## 给用户设置密码
[root@doc ~]# echo 123456|passwd --stdin mufenggrow
更改用户 mufenggrow 的密码 。
passwd:所有的身份验证令牌已经成功更新。
## 登录测试,查看是否可以登录
[root@doc ~]# ssh mufenggrow@127.0.0.1
The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established.
ECDSA key fingerprint is SHA256:9uJW2mOqzhYy5gtMsTHmt4V584na0LFqEGYXxA4rUM8.
ECDSA key fingerprint is MD5:42:35:b0:99:2c:04:c5:94:e6:f4:74:6d:af:ec:07:29.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '127.0.0.1' (ECDSA) to the list of known hosts.
mufenggrow@127.0.0.1's password:
[root@doc ~]$ exit
登出
Connection to 127.0.0.1 closed.
## 使用-E参数,修改失效时间
[root@doc ~]# chage -E 0 mufenggrow
再次登录测试,提示已经失效
[root@doc ~]# ssh mufenggrow@127.0.0.1
mufenggrow@127.0.0.1's password:
Your account has expired; please contact your system administrator
Authentication failed.
英语句子:
学计算机也是学英语的过程,可以上面代码中出现的这个句子:
Your account has expired; please contact your system administrator
Authentication failed
翻译过来就是: 你的账户已经过期,请联系您的管理元,身份验证失败。
account 美 /əˈkaʊnt/ 账户
expired 美 /iks’paiəd/ 过期失效
contact 美 /ˈkɑːntækt/ 联系
system美 /ˈsɪstəm/ 系统
administrator 美 /ədˈmɪnɪstreɪtər/ 管理
Authentication 美 /ɔ:,θenti’keiʃən/ 认证,鉴定
failed 美 /feld/ 失败
## 3. 设置登陆必须修改密码
使用-d参数,设置修改密码的到期时间为0,这样下次登录系统的时候,就需要重新iu该密码
```bash
[root@doc ~]# tail -n1 /etc/passwd
mufenggrow:x:1001:1001::/home/mufenggrow:/bin/bash
[root@doc ~]# chage -d 0 mufenggrow
[root@doc ~]# chage -l mufenggrow
最近一次密码修改时间 :密码必须更改
密码过期时间 :密码必须更改
密码失效时间 :密码必须更改
帐户过期时间 :1月 01, 1970
两次改变密码之间相距的最小天数 :0
两次改变密码之间相距的最大天数 :99999
在密码过期之前警告的天数 :7
可以看到,密码的过期时间,失效时间都变成了必须修改,我们登录来测试下。
可以看到修改密码后,会自动推出,让我们重新登录,确保安全。
[root@doc ~]# chage -M 60 -m 7 -W 7 gaosh3
3.总结
Linux 中的 chage 命令用于密码实效管理,可以显示用户密码的详细信息 ,还可以用来修改帐号和密码的有效期限。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.e1idc.net