passwd是更改用户密码的文件,如果在root下,我们可以直接输入这个命令更改密码

[root@localhost ~]# passwd

更改用户 root 的密码 。

新的 密码:

如果想更改其他用户的密码,则要则要passwd后面加上用户名

[root@localhost ~]# passwd user1

更改用户 user1 的密码 。

新的 密码:

更改完密码我们可以发现在/etc/shadow下,user1这行中出现了一个很长的字符串,这就是我们新更改的密码

[root@localhost ~]# tail -n5 /etc/shadow

chrony:!!:17514::::::

user1:$6$0DixvaM8$3Q/d2IFN8jOvyma9By8UZPkRNVLaqDj.AQwOTFaRxiRZ3d.JDv7dHh7QR9fnlUpiQT8ALuQP.461OzckySSLo.:17548:0:99999:7:::

user2:!!:17547:0:99999:7:::

user8:!!:17547:0:99999:7:::

user4:!!:17548:0:99999:7:::

如果没有密码,则是两个!

[root@localhost ~]# head -n5 /etc/shadow

root:$6$/qUNx3Dm$oVq/XUaOftBgd4XxzCAAaahh3Za4.O.xJBjol1G0pX0.A0UQjEJFDkkh43F29WZUOMvJ75z/jGfE6bebpgQ1k/:17534:0:99999:7:::

bin::17110:0:99999:7:::
daemon:
:17110:0:99999:7:::

adm::17110:0:99999:7:::
lp:
:17110:0:99999:7:::

我们还发现,有的用户 的密码位是*号,这表示这个用户的密码是被锁定的,不能登录,他的密码是有问题的。

passwd -l这个命令是可以锁定用户的,usermod -L也可以锁定用户,如果想解锁,命令是passwd -u,usermod -U。

我们也可以给用户设定密码,passwd --stdin

比如我们现在要给user2设定密码

[root@localhost ~]# passwd --stdin user2

更改用户 user2 的密码 。

19860127

passwd:所有的身份验证令牌已经成功更新。

这时我们发现只要输入一次就可以,不用验证,而且是直接显示,这会在以后shall脚本中使用。比如,echo “111222”| passwd --stdin user2

这里讲一个echo的参数,-e这时一个换行参数。

mkpasswd这是用来生成密码的工具,首先我们来安装这个工具包

[root@localhost ~]# yum install -y expect

然后输入命令,就可以产生一个随机的密码

[root@localhost ~]# mkpasswd

|br34BMxo

我们也可以自定义它的长度和密码内的字符结构(包括特殊符号,数字等)

mkpasswd -l设置密码长度,mkpasswd -s设置特殊符号,两者可以一起用

[root@localhost ~]# mkpasswd -l 10 -s 4

H:7a',?4zJ

通常我们写脚本的时候会用到这个,比如我们要创建100个用户,生成100个密码,而且密码不能相同。然后存到一个文本文档中。就会用到这个命令。