Linux常用命令-chpasswd

命令

chpasswd

描述

update passwords in batch mode
以批处理模式更改用户密码

用法

1
chpasswd [options]

选项

1
2
3
4
Options:
-c 加密方法(可选项NONE DES MD5 SHA256 SHA512)
-e 不加密
-m 以md5方法加密

注意

可以同时更改多个用户密码,用户必须已存在,该命令不支持创建用户.

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# 定义用户密码文件,可以指定多个用户
$ cat a
usera:aaa
userb:bbb
userc:ccc
# 默认使用的是/etc/login.defs中定义的加密方法
$ cat a | chpasswd
$ tail -3 /etc/shadow
usera:$6$ir9AM/DEkr$at.ligiOTaP0mAA06r7DaagC3HvWTaJhDqKYpcR0fkKlaqkJP1ZUC14ADvYOO.3jNwaFRWq0Uy7/JWUul5Fcr.:18635:0:99999:7:::
userb:$6$kEcPrWAFoCqQ$M6YfJPE9nzEK4AerKqfTQr8ubS6Px2vI.V8chml9uj8sVRenckK6Qgd.EM60s2TzO.Efq9pI5k5gPVsjmvR6M.:18635:0:99999:7:::
userc:$6$Wqmd./kFR3$rn1caajtDbkayEk7xKlrYaxNGGqPMJA8lbWjURJhD1nY8MYtDaQKHw7.3Wzlwc680xHPvmJaYM06MpaRTy9pP/:18635:0:99999:7:::
$ grep ENCRYPT_METHOD /etc/login.defs
# Use SHA512 to encrypt password.
ENCRYPT_METHOD SHA512
# 以md5方法加密密码
$ cat a | chpasswd -m
$ tail -3 /etc/shadow
usera:$1$n9dID/ee$QZmC.N1Fr2L4Z5WBtfKmy.:18635:0:99999:7:::
userb:$1$EP4yw/DN$zVWwjU7t9WQTJCCtmUdFd0:18635:0:99999:7:::
userc:$1$zT96B/Xb$FpPNk2MPCMUHfaE7Gh5te/:18635:0:99999:7:::
# 以SHA256方法加密密码
$ cat a | chpasswd -c SHA256
$ tail -3 /etc/shadow
usera:$5$hFANqw/xGOijs.$vjngjHRQ3KJzgtPTdhf1P2bD3mlQRWzH/6pTjSbB3Q6:18635:0:99999:7:::
userb:$5$8RGVm/.IoSwO$0UwnKBm1ZjwiLeNtOqiRlAbhXQNvAZbqWmNaU4M7h.5:18635:0:99999:7:::
userc:$5$QHqDH/aZKwn6$r1BuQJXdAPPZZjjvJyYRxG2y7mqXVPf33Cp0uAuMkB6:18635:0:99999:7:::
# 设置明文密码不加密
$ cat a | chpasswd -e
$ tail -3 /etc/shadow
usera:aaa:18635:0:99999:7:::
userb:bbb:18635:0:99999:7:::
userc:ccc:18635:0:99999:7:::
# 如果用户不存在会提示
$ echo "user1:aa" | chpasswd
chpasswd: line 1: user 'user1' does not exist
chpasswd: error detected, changes ignored