/etc/shadow文件详解

前言

/etc/shadow 是 Linux 系统中存储用户加密密码的文件,每行对应一个用户的加密信息。该文件只有系统管理员 root 用户可以访问。

字段详解

该文件的每一行包含 9 个字段,以冒号 (“:”) 分隔

用户名:加密密码:最后一次修改时间:最小修改时间间隔:密码有效期:密码需要变更前的警告天数:密码过期后的宽限时间:账号失效时间:保留字段

root:$6$ARS.45jV$FypZVaIMgzXohB6JDe6YkAoWOiUlj1nVXd0Fy6ugIovHn5ngt.QIL8FWZ5V/9KCUV.DfbK1WaAiXcsFIy7lmP/:16846:0:99999:7:::

如下

root:$6$ARS.45jV$FypZVaIMgzXohB6JDe6YkAoWOiUlj1nVXd0Fy6ugIovHn5ngt.QIL8FWZ5V/9KCUV.DfbK1WaAiXcsFIy7lmP/:16846:0:99999:7:::
bin:*:15628:0:99999:7:::
abhishek:$6$Kob9YWCa$cxyOOkYB4wDLo33PiHFjFJIJdn6FIphZAnLzJ.kzqW7sw2rnndu5YhxKiaFH8COj7YvxiLQjqCXTc5fm.1DTI.:16100:0:99999:7:::
apache:!!:16286::::::
orcl2:$6$DoCAd3Kj$uILiq2a2i6MCOU4A9QMI0GuS7j94pnhloaJeZwVHFgKcyFvrOlpamm5QgX7jOz7R88P/wg.4IY/WYfXPk37Rc0:19787:0:99999:7:::

1. 用户名

系统用户

2. 加密密码

Linux 的密码采用的是 SHA512 散列加密算法,原来采用的是 MD5 或 DES 加密算法。SHA512 散列加密算法的加密等级更高,也更加安全,是单向不可逆的。

在 /etc/shadow 文件中,密码字段的开头标记表示使用的哈希算法:

  • $1$ 表示使用 MD5-based 加密(DES-based 加密是过时的)。
  • $2$ 表示使用 Blowfish 加密。
  • $5$ 表示使用 SHA-256 加密。
  • $6$ 表示使用 SHA-512 加密。

如下,$6$ 表示密码算法是 SHA-512。紧跟着的 ARS.45jV 是一个随机的 salt,用于增加密码的安全性,最后是经过哈希计算后的密码值。

$6$ARS.45jV$FypZVaIMgzXohB6JDe6YkAoWOiUlj1nVXd0Fy6ugIovHn5ngt.QIL8FWZ5V/9KCUV.DfbK1WaAiXcsFIy7lmP/

如果密码字段为 * 或者两个 !! 表示密码被锁定或者禁用。

nobody:*:15628:0:99999:7:::
dbus:!!:16098::::::

3. 最后一次修改密码的时间

此字段表示最后一次修改密码的时间,数字的含义是从 1970 年 1 月 1 日到现在的天数,1970 年 1 月 1 日作为 1,过一天加 1,上面 root 账号最后一次修改时间为 16846,这是哪一天呢,可以使用如下命令进行换算。即最后一次修改密码的时间为:2016 年 2 月 15 日星期一

date -d "1970-01-01 16846 days"

4. 最小修改时间间隔

设置了这个值,则表示从变更密码的日期算起,多少天内无法再次修改密码,如果是 0 的话,则没有限制

5. 密码有效期

该字段的默认值为 99999,也就是 273 年,可认为是永久生效。如果改为 90,则表示密码被修改 90 天之后必须再次修改,否则该用户即将过期。可以通过这个字段强制用户定期修改密码。

6. 密码需要变更前的警告天数

密码快过期了,系统就会给出警告了,提醒用户 “再过 n 天你的密码就要过期了,请尽快重新设置你的密码!”。该字段的默认值是 7。

7. 密码过期后的宽限天数

在密码过期后,不是立即失效,则在此字段规定的宽限天数内,用户还是可以登录系统的;如果过了宽限天数,系统将不再让此账户登陆,也不会提示账户过期,是完全禁用。

假设这个字段设置为 10,则代表密码过期 10 天后失效;如果是 0,则代表密码过期后立即失效;如果是 -1,则代表密码永远不会失效。

8. 账号失效时间

过了这个日期账号就无法使用。使用自 1970 年 1 月 1 日以来的总天数作为账户的失效时间。

9. 保留字段

这些字段是保留用于未来用途,通常为空。

shadow密码解密

将要解密的shadow文件中的hash所在行全部复制到shadow.txt中,准备一个字典pwd.txt

john --wordlist=pwd.txt shadow.txt
#显示已经成功破解的密码
john --show shadow.txt

成功解密出两个密码。

John the Ripper 会自动检测您的系统的 CPU 核心数量,并根据这个数量设置线程数,以充分利用系统资源进行密码破解。

参考:Linux /etc/shadow(影子文件)内容详解_unix /etc/shadow-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ly4j

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值