linux系统,确认账户密码正确

linux系统,确认账户密码正确

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 个字段。

第一列是用户名

第二列是加密的密码
“该字段存放的是加密后的用户口令字,如果为空,则对应用户没有口令,登录时不需要口令; 星号代表帐号被锁定; 双叹号表示这个密码已经过期了。 $6$开头的,表明是用SHA-512哈希加密的, $1$ 表明是用MD5哈希加密的 $2$ 是用Blowfish哈希加密的 $5$ 是用 SHA-256哈希加密的。)

第三列
最后一次修改时间”表示的是从某个时刻起,到用户最后一次修改口令时的天数。(一般这个时间起点是1970年1月1日)

第四列
最小时间间隔”指的是两次修改口令之间所需的最小天数。

第五列
最大时间间隔 指的是口令保持有效的最大天数。

第六列
警告时间 字段表示的是从系统开始警告用户到用户密码正式失效之间的天数。

第七列是密码过期后的宽限天数
不活动时间 表示的是用户没有登录活动但账号仍能保持有效的最大天数。

第八列是账号失效时间
失效时间 给出的是一个绝对的天数,如果使用了这个字段,那么就给出相应账号的生存期。期满后,该账号就不再是一个合法的账号,也就不能再用来登录了。

第九列是保留字段,暂时没有含义。

我们关注第二列
在这里插入图片描述
在用户名test之后有$1$ ,这表明它是MD5哈希加密的,第二个$和第三个$之间的hFz7FF30是盐值,第三个$之后是哈希后的密码,使用盐进行哈希处理 - 在本例中为ZweMBsio/Jp4FN4GhvyPf.

可以使用openssl使用相同的盐值来计算给定的密码的哈希值,如下所示:

openssl passwd -1 -salt 盐值

可以看到输入给定密码后,openssl passwd 命令计算出的密码哈希值和/etc/shadow文件中查询到的密码哈希值是相同的,则说明我们输入的密码是test账户的正确密码。
在这里插入图片描述
我们输入的如果是test账户的错误密码,可以看到openssl passwd 命令计算出的密码哈希值和/etc/shadow文件中查询到的密码哈希值是不同的
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值