大家好,欢迎来到IT知识分享网。
1、问题背景
有时在linux系统安装软件时,有的软件可能会在安装过程中创建系统用户,同时会给出这个用户的密码。过了一段时间我们不确定这个密码是否还正确,那怎么确认这个密码就是这个账户的正确密码呢?[假设这个账户被设置为不能登录,或者不想登录这个账户的情况下。无法通过登录账户确认密码是否正确]
2、解决方法
创建test用户
useradd test
查看/etc/shadow 文件中记录的test账户信息
cat /etc/shadow | grep test
给test用户设置密码
passwd test
再次查看/etc/shadow 文件中记录的test账户信息
cat /etc/shadow | grep test
文件中每行代表一个用户,使用 “:” 作为分隔符,每行用户信息被划分为 9 个字段。
第一列是用户名
第九列是保留字段,暂时没有含义。
我们关注第二列
在用户名test之后有$1$ ,这表明它是MD5哈希加密的,第二个$和第三个$之间的hFz7FF30是盐值,第三个$之后是哈希后的密码,使用盐进行哈希处理 – 在本例中为ZweMBsio/Jp4FN4GhvyPf.
可以使用openssl使用相同的盐值来计算给定的密码的哈希值,如下所示:
openssl passwd -1 -salt 盐值
可以看到输入给定密码后,openssl passwd 命令计算出的密码哈希值和/etc/shadow文件中查询到的密码哈希值是相同的,则说明我们输入的密码是test账户的正确密码。
我们输入的如果是test账户的错误密码,可以看到openssl passwd 命令计算出的密码哈希值和/etc/shadow文件中查询到的密码哈希值是不同的
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/151257.html