• L43.linux命令每日一练 -- 第七章 Linux用户管理及用户信息查询命令 -- chage和chpasswd


    7.7 chage:修改用户密码有效期

    7.7.1 命令详解

    【命令星级】 ★★★☆☆

    【功能说明】

    ​ chage命令用于查看或修改用户密码的有效期,有些参数的功能与passwd相同。

    【语法格式】

    chage [options] [login]
    chage [选项] [用户名]
    
    • 1
    • 2

    ​ **说明:**在chage命令以及后面的选项和用户名里,每个元素直接都至少要有一个空格。

    【选项说明】

    ​ 表7-9针对该命令的参数选项进行了说明。

    ​ 表7-9 chage命令的参数选项及说明

    在这里插入图片描述

    7.7.2 使用范例

    ​ **范例7-16:**创建新用户range,要求该用户在7天之内不能更改密码,60天以后必须修改密码,过期前10天通知用户,过期30天之后禁止用户登录。

    ​ 这个案例的前面已经用passwd实现过了,本范例再使用chage实现同样的功能,命令如下:

    [root@centos7 ~]# useradd range	#添加新用户range。
    [root@centos7 ~]# chage -m7 -M60 -W10 -I30 range	#使用change按题意要求进行授权。
    [root@centos7 ~]# chage -l range
    Last password change					: Oct 18, 2020	#最后一次密码变化时间为2020-10-18,-d选项可控制该行。
    Password expires					: Dec 17, 2020	#密码过期时间为60天,即从2020-10-18到2020-12-17,该行受-M参数影响。
    Password inactive					: Jan 16, 2021	#密码停权时间,即密码过期30天后停权,-I选项可控制该行。
    Account expires						: never	#账户过期时间,-E选项可控制该行。
    Minimum number of days between password change		: 7		#-m选项可控制该行。
    Maximum number of days between password change		: 60	#-M选项可控制该行。
    Number of days of warning before password expires	: 10	#-W选项可控制该行。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    ​ 下面就来测试-E参数的使用,代码如下:

    [root@centos7 ~]# chage -E 2020-12-31 range	#测试-E参数的使用。
    [root@centos7 ~]# chage -l range |grep "Account expires"
    Account expires						: Dec 31, 2020
    #用户有效期变成了设定的日期。
    [root@centos7 ~]# usermod -e "2021/12/31" range	#usermod也可以更改用户有效期。
    [root@centos7 ~]# chage -l range |grep "Account expires"
    Account expires						: Dec 31, 2021
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    7.8 chpasswd:批量更新用户密码

    7.8.1 命令详解

    【命令星级】 ★★★★☆

    【功能说明】

    ​ chpasswd命令可从标准输入中读取一定格式的用户名、密码来批量更新用户的密码。这个格式为“用户名:密码”,注意,用户名必须事先真实存在,否则,该命令无法为一个不存在的用户设置密码。

    【语法格式】

    chpasswd [options] 
    chpasswd [选项] 
    
    • 1
    • 2

    ​ **说明:**在chpasswd命令以及后面的选项和用户名里,每个元素直接都至少要有一个空格。

    【选项说明】

    ​ 表7-10针对该命令的参数选项进行了说明。

    ​ 表7-10 chpasswd命令的参数选项及说明

    在这里插入图片描述

    7.8.2 使用范例

    7.8.2.1 基础范例

    ​ **范例7-17:**命令行批量修改密码。

    [root@centos7 ~]# id neteagle
    uid=1000(neteagle) gid=1000(neteagle) groups=1000(neteagle)
    [root@centos7 ~]# chpasswd	#在命令行输入chpasswd回车。
    root:123456		#格式 用户名:密码,用户必须存在才行。
    neteagle:123456		#一行一个。
    [root@centos7 ~]# 		#在新的空行输入Ctrl+d结束输入。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    7.8.2.2 生产案例

    ​ 范例7-18:批量创建10个用户stu01-stu10,并且设置8位随机密码,要求不能使用Shell的循环(例如:for、while等),只能用Linux命令及管道实现,此题前面也用passwd的方法实现过,本例将采用chpasswd方法来实现。

    ​ 1)添加10个用户:

    [root@centos7 ~]# echo stu{01..10} |xargs -n 1 useradd		#添加10个用户。
    [root@centos7 ~]# tail /etc/passwd
    stu01:x:2000:2000::/home/stu01:/bin/bash
    stu02:x:2001:2001::/home/stu02:/bin/bash
    stu03:x:2002:2002::/home/stu03:/bin/bash
    stu04:x:2003:2003::/home/stu04:/bin/bash
    stu05:x:2004:2004::/home/stu05:/bin/bash
    stu06:x:2005:2005::/home/stu06:/bin/bash
    stu07:x:2006:2006::/home/stu07:/bin/bash
    stu08:x:2007:2007::/home/stu08:/bin/bash
    stu09:x:2008:2008::/home/stu09:/bin/bash
    stu10:x:2009:2009::/home/stu10:/bin/bash
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    ​ 2)以“用户名:密码”的格式将新添加的用户写入pass.txt文件:

    [root@centos7 ~]# echo stu{01..10}:$((RANDOM+10000000)) |tr " " "\n" >pass.txt
    [root@centos7 ~]# cat pass.txt 
    stu01:10028876
    stu02:10001001
    stu03:10020618
    stu04:10005553
    stu05:10008663
    stu06:10017520
    stu07:10010008
    stu08:10015959
    stu09:10018951
    stu10:10011872
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    ​ 3)chpasswd将从文件pass.txt中读取相关的数据,为对应的用户设置冒号后面的密码:

    [root@centos7 ~]# chpasswd 
    
    • 1

    ​ 测试所设置密码的有效性:

    [root@centos7 ~]# su - stu08	#从root切到stu08,不要密码。
    [stu08@centos7 ~]# su - stu10	#从stu08切到stu10,提示输入密码。
    Password: 	#输入密码10006364
    [stu10@centos7 ~]# whoami
    stu10		#成功切换,证明密码是正确的。
    
    • 1
    • 2
    • 3
    • 4
    • 5
  • 相关阅读:
    面试官:介绍一下 Redis 三种集群模式
    Spring Security 简单token配置
    圣杯布局和双飞翼布局
    数据可视化-ECharts Html项目实战(14)
    车载蓝牙PIN码是什么
    vuex---$store案例
    初学者学习JS很吃力怎么办?到底该如何学习JS?
    box-sizing: border-box;box-sizing:content-box;讲解
    【SpringCloud】Nacos的安装、Nacos注册、Nacos服务多级存储模型
    Docker存储目录迁移
  • 原文地址:https://blog.csdn.net/qq_25599925/article/details/125686788