说明

  chpasswd命令用于从标准输入中读取一定格式的用户名和密码来批量修改用户的密码,输入格式为:
“用户名:密码”

格式

  chpasswd [option]

常用参数
  • -e:默认输入的是明文密码,加了该参数就需要加密码后的密码
示例
1、不使用任何参数
[root@localhost ~]# chpasswd 
root:123456 #每行一个,格式为:用户名:密码
skip:123456
[root@localhost ~]#     #如果要结束输入,就在新的空行使用ctrl+d


2、批量从文本文件中读取
数据准备:有user01~user10这10个用户,我们通过文件的来批量修改密码
[root@localhost ~]# tail -10 /etc/passwd
user01:x:1004:1004::/home/user01:/bin/bash
user02:x:1005:1005::/home/user02:/bin/bash
user03:x:1006:1006::/home/user03:/bin/bash
user04:x:1007:1007::/home/user04:/bin/bash
user05:x:1008:1008::/home/user05:/bin/bash
user06:x:1009:1009::/home/user06:/bin/bash
user07:x:1010:1010::/home/user07:/bin/bash
user08:x:1011:1011::/home/user08:/bin/bash
user09:x:1012:1012::/home/user09:/bin/bash
user10:x:1013:1013::/home/user10:/bin/bash

[root@localhost ~]# echo user{01..10}:$((RANDOM+50000000))|tr " " "\n" >> pass.txt #批量生成用户的密码到文件
[root@localhost ~]# cat pass.txt 
user01:50025206
user02:50024249
user03:50000692
user04:50001626
user05:50011699
user06:50017253
user07:50013451
user08:50017327
user09:50019542
user10:50016287

[root@localhost ~]# chpasswd < pass.txt #批量更新
[root@localhost ~]# su - user01 #从root切换到user01
[user01@localhost ~]$ su - user02 #从user01切换到user02
Password:             #这里输入新的user02密码
[user02@localhost ~]$  #验证成功,表明设置密码成功