Linux中的密码信息保存文件

0x00 前言

Linux系统下,用户的密码会被加密保存在文件/etc/shadow中,本文尝试对这一部分内容进行整理,介绍相关基础知识,测试常用方法,帮助大家对此有更直观的认识。

0x01 Linux下用户密码的保存格式

Linux密码信息保存在两个文件中,分别为:/etc/passwd/etc/shadow

/etc/passwd:

普通用户权限能够查看

保存用户信息,每一行代表一个用户,每一行通过冒号分为七个部分

  1. 用户名
  2. 密码,x表示密码保存在/etc/shadow
  3. UID,0代表root
  4. GID,表示所在组
  5. 描述信息,依次为Full Name、Room Number、Work Phone、Home Phone和Other
  6. 用户主目录
  7. 默认shell类型

eg.

test2:x:1001:1001:test2,11111,111111-11,222222-22,test:/home/test2:/bin/bash

  • 用户名:test2
  • 密码保存在/etc/shadow
  • UID为1001
  • GID为1001
  • 描述信息: Full Name []: test2 Room Number []: 11111 Work Phone []: 111111-11 Home Phone []: 222222-22 Other []: test
  • 用户主目录为/home/test2
  • 默认shell为/bin/bash

/etc/shadow:

只有root用户权限能够查看

保存加密后的密码和用户的相关密码信息,每一行代表一个用户,每一行通过冒号分为九个部分

  1. 用户名
  2. 加密后的密码
  3. 上次修改密码的时间(从1970.1.1开始的总天数)
  4. 两次修改密码间隔的最少天数,如果为0,则没有限制
  5. 两次修改密码间隔最多的天数,表示该用户的密码会在多少天后过期,如果为99999则没有限制
  6. 提前多少天警告用户密码将过期
  7. 在密码过期之后多少天禁用此用户
  8. 用户过期日期(从1970.1.1开始的总天数),如果为0,则该用户永久可用
  9. 保留

注:

参数说明可通过man shadow获取

eg.

test2:$6$C/vGzhVe$aKK6QGdhzTmYyxp8.E68gCBkPhlWQ4W7/OpCFQYV.qsCtKaV00bToWh286yy73jedg6i0qSlZkZqQy.wmiUdj0:17470:0:99999:7:::

  • 用户名:test2
  • 加密后的密码:$6$C/vGzhVe$aKK6QGdhzTmYyxp8.E68gCBkPhlWQ4W7/OpCFQYV.qsCtKaV00bToWh286yy73jedg6i0qSlZkZqQy.wmiUdj0
  • 上次修改密码的时间(从1970.1.1开始的总天数为17470)
  • 两次修改密码间隔:没有限制
  • 两次修改密码间隔最多的天数:没有限制
  • 提前7天警告用户密码将过期
  • 该用户永久可用

由示例可知,加密的密码具有固定格式:

$id$salt$encrypted

id表示加密算法,1代表MD5,5代表SHA-256,6代表SHA-512 salt表示密码学中的Salt,系统随机生成 encrypted表示密码的hash。

转载链接:https://3gstudent.github.io/3gstudent.github.io/Linux%E4%B8%8B%E7%9A%84%E5%AF%86%E7%A0%81Hash-%E5%8A%A0%E5%AF%86%E6%96%B9%E5%BC%8F%E4%B8%8E%E7%A0%B4%E8%A7%A3%E6%96%B9%E6%B3%95%E7%9A%84%E6%8A%80%E6%9C%AF%E6%95%B4%E7%90%86/

    原文作者:码猿上高速
    原文地址: https://blog.csdn.net/qq_38836118/article/details/97627550
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞