passwd –stdin
echo “123456” | passwd –stdin root
优点:方便快捷
缺点:如果你输入的指令能被别人通过history或者其他方式捕获,那么这样的方式是很不安全,更重要的是如果密码同时含有单引号和双引号,那么则无法通过这种方法修改。
chpass 明文
a、首先将用户名密码一起写入一个临时文件。
cat chpass.txt
root:123456
zhaohang:123456
b、使用如下命令对用户口令进行修改:
chpasswd < chpass.txt
c、可以使用123456来登录系统,密码修改完毕。
优点:可以很快速方便的修改多个用户密码
缺点:明文密码写在文件里仍然显得不够安全,但是避免了第一种修改方法不能有特殊字符串密码的情况。
chpass密文
a、用openssl passwd -1来生成用户口令,连同用户名一起写入文件。
cat chpass.txt
root:$1$ri2hceVU$WIf.firUBn97JKswK9Ex00
b、使用如下命令对用户口令进行修改:
chpasswd -e < chpass.txt
c、可以使用123456来登录系统,密码修改完毕。
优点:可以很快方便的修改多个用户密码,和上面两种相比大大增强了安全性
附加介绍:
chpasswd
语法: # echo 用户名:密码 | chpasswd # chpasswd < doiido.txt 参数: -e :如果使用了-e选项,口令将只能以加密的方式传递 如果未使用-e选项,口令将按明文的形式传递 注意事项 1:用户名必须是系统上已存在的用户 2:普通用户没有使用这个指令的权限 3:如果输入文件是按非加密方式传递的话,请对该文件进行适当的加密。 4:指令文件不能有空行
openssl passwd -1命令可以输出shadow里面的密码,把这个命令生成的秘串更改为你shadow里的密码,那么下次你登录系统就可以用你的生成密码的口令来登录了,使用这个命令,即使口令一样,多次执行生成的密码串也不一样。那个hash值对应的密码是完全随机的基于64位字符编码的28位长,因此要破解它是非常困难的,只要不用那些密码已经公布出来的hash值创建账号,即使这些密码文件被公布也还是比较安全的。