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


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

    1、问题背景

    有时在linux系统安装软件时,有的软件可能会在安装过程中创建系统用户,同时会给出这个用户的密码。过了一段时间我们不确定这个密码是否还正确,那怎么确认这个密码就是这个账户的正确密码呢?[假设这个账户被设置为不能登录,或者不想登录这个账户的情况下。无法通过登录账户确认密码是否正确]

    2、解决方法

    创建test用户

    useradd test
    
    • 1

    查看/etc/shadow 文件中记录的test账户信息

    cat /etc/shadow | grep test
    
    • 1

    在这里插入图片描述
    给test用户设置密码

    passwd test
    
    • 1

    在这里插入图片描述
    再次查看/etc/shadow 文件中记录的test账户信息

    cat /etc/shadow | grep test
    
    • 1

    在这里插入图片描述

    文件中每行代表一个用户,使用 “:” 作为分隔符,每行用户信息被划分为 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 盐值
    
    • 1

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

  • 相关阅读:
    极客时间Kafka - 05 Kafka 生产者发送消息可靠性保障|幂等生产者和事务生产者
    C和指针 第10章 结构和联合 10.10 问题
    【Jmeter】安装配置:Jmeter 下载 MySQL JDBC 驱动
    服务容错框架Sentinel入门
    【校招VIP】计算机网络之TCP/IP模型归纳
    C++_模板进阶
    Java版本spring cloud + spring boot企业电子招投标系统源代码
    Java内部类(成员内部类、静态内部类、局部内部类、局部内部类)
    java学习--day24(单例模式&序列化&Lambda表达式)
    【GridSearch实例】制作 KNeighborsClassifier 的MNIST数据集分类器,用GridSearch找最佳模型参数组合
  • 原文地址:https://blog.csdn.net/OceanWaves1993/article/details/134320776