Linux shadow 文件详解:恢复 root 密码的完整指南

发布时间:2026/10/31 10:11:26

Linux shadow 文件详解:恢复 root 密码的完整指南 一. shadow 文件简介在 Linux 系统中/etc/shadow文件用于存储用户密码的加密信息以及密码相关的策略属性。它与/etc/passwd文件配合使用passwd 文件保存用户基本信息且对所有用户可读而 shadow 文件中存放的加密密码仅对 root 用户可读从而提升了系统安全性。shadow 文件的每一行对应一个用户格式为用户名:加密密码:上次修改密码的日期:密码最小使用天数:密码最大使用天数:密码过期前的警告天数:密码过期后的宽限天数:账号失效日期:保留字段各个字段的含义如下用户名与 /etc/passwd 中的用户名一致。加密密码如果为空表示该用户没有密码如果是 ! 或 *表示账号被锁定无法通过密码登录。Ubantu就是在这里动了手脚让root用户没有办法登录。正常情况下这边应该是一个SHA256的值也就是用户加密的密码。上次修改密码的日期从 1970-01-01 开始的天数。密码最小使用天数两次修改密码之间最少间隔的天数防止频繁改回原密码。密码最大使用天数密码的有效期到期后强制用户修改密码。密码过期前的警告天数在密码过期前多少天开始向用户发送警告。密码过期后的宽限天数密码过期后用户仍可登录的天数超限后将锁定账号。账号失效日期从 1970-01-01 开始的天数超过此日期账号将被禁用。保留字段目前通常为空。管理员可以通过chage命令修改密码过期策略也可以使用passwd命令修改用户密码。对 shadow 文件的直接编辑通常使用vipw -s进行以确保文件锁定的安全性。可是Ubantu系统为了确保用户的安全默认禁用了管理员账号root他的Root密码是*占位符所以我们就没有办法使用管理员账号登录更没有办法修改root密码也就没有办法使用大部分的Root功能。虽然说Ubantu支持使用SUDO来暂时性的切换超级用户权限但被禁用了许多功能。二. 具体操作当 Ubuntu 系统的 root 账号密码被设置为*占位符而无法登录时有以下几种方案可以恢复或绕过此限制使用 sudo 临时提权如果当前用户拥有 sudo 权限可以直接使用sudo -i或sudo su -切换到 root 环境然后执行passwd root为 root 设置新密码。# 切换到 root 用户环境 sudo -i # 为 root 设置新密码交互式输入两次新密码 passwd root从 Live CD/USB 启动并清空 root 密码使用 Ubuntu 安装盘或其他 Linux 发行版的 Live CD/USB 启动电脑挂载原系统的根分区找到并编辑/etc/shadow文件将 root 行第二个字段加密密码的*删除留空使 root 无需密码即可登录。# 查看分区布局找到原系统的根分区如 /dev/sda2 sudo fdisk -l # 挂载原系统根分区到 /mnt sudo mount /dev/sda2 /mnt # 使用 vipw -s 安全编辑 shadow 文件注意路径是 /mnt/etc/shadow sudo vipw -s /mnt/etc/shadow # 找到 root 行将第二个字段的 * 删除留空后保存退出复制其他用户的密码哈希如果系统中存在另一个已知密码的用户例如你自己的普通用户可以将其在/etc/shadow中的加密密码字符串复制到 root 的密码字段。这样 root 就与该用户使用相同的密码。# 查看已知用户如 username在 shadow 中的加密密码哈希 sudo grep ^username: /mnt/etc/shadow | cut -d: -f2 # 将上述命令输出的哈希字符串复制到 root 行的第二个字段替换原来的 * sudo sed -i s/^root:[^:]*:/root:复制的哈希值:/ /mnt/etc/shadow生成自定义密码的加密值在可以运行命令的环境中例如通过 sudo 或 Live 环境使用openssl或mkpasswd工具生成指定密码的 SHA-512 加密哈希然后手动替换 root 在/etc/shadow中的密码字段。# 使用 mkpasswd 生成 SHA-256 加密哈希需先安装 whois 包 mkpasswd -m sha-256 你的新密码 # 或者使用 openssl 生成带随机盐的 SHA-512 哈希推荐 openssl passwd -6 你的新密码 # 得到哈希值后用 vipw -s 编辑 /mnt/etc/shadow手动替换 root 的第二个字段以下是恢复 root 密码的完整决策路径可根据自身情况按图索骥选择最合适的方案决策起点Ubuntu root 密码为 *无法登录 │ ├─ 有 sudo 权限 ── 是 ──→ 方案一sudo -i → passwd root → 完成 │ └─ 无 sudo 权限 ──→ 可物理接触机器 ── 是 ──→ 方案二Live CD/USB → 挂载根分区 │ │ │ ├─ 需自定义密码 ── 否 ──→ 删除/替换 * → 完成 │ │ │ └─ 需自定义密码 ── 是 ──→ 有已知密码用户 ── 是 ──→ 方案三复制哈希 → 完成 │ │ │ └─ 否 ──→ 方案四生成加密值openssl/mkpasswd → 完成 │ └─ 无 sudo 权限 且 不可物理接触机器 → 无法解决以上方法中方法 1最为简便但前提是当前用户已在 sudoers 列表中。方法 2是通用性强、无需已知凭证的终极方案。方法 3 和 4则适用于需要对密码哈希进行精细控制的场景。三. 注意事项与常见问题1. 直接编辑 shadow 文件的风险直接使用普通文本编辑器如 vi、nano修改/etc/shadow文件存在以下风险文件锁竞争系统进程如passwd、chage可能正在同时修改该文件导致数据损坏或丢失。格式错误shadow 文件中每个字段都有严格的顺序和分隔要求手工编辑容易遗漏或错位冒号错误的格式会导致该用户甚至所有用户无法登录。权限问题保存时如果权限设置不当可能使 shadow 文件权限变为可读造成密码哈希泄露。SELinux如果使用其他系统修改系统检测到重要文件的哈被修改了可能会主动阻止任何用户登录。因此强烈推荐使用vipw -s命令编辑 shadow 文件。它会自动对文件加锁防止并发写入并在编辑完成后检查格式最大限度降低安全风险。2. Live CD 方案中的分区挂载与可写性当使用 Ubuntu Live CD/USB 启动时原系统的根分区通常处于未挂载或只读状态。为确保能够写入 shadow 文件需要识别根分区使用sudo fdisk -l或lsblk查看分区布局确定原系统的根分区设备如/dev/sda2。挂载为可写执行sudo mount /dev/sda2 /mnt将其挂载到/mnt后不要忘记添加-o remount,rw或在挂载时直接以读写方式挂载默认通常是只读。如果文件系统错误导致只读可以先运行fsck修复。使用 chroot可选但推荐挂载后可通过sudo chroot /mnt切换到原系统的根环境此时执行passwd root更为安全和标准它会自动处理 shadow 文件的加密和格式。确认写入路径如果直接编辑文件路径应为/mnt/etc/shadow而非/etc/shadow否则修改的是 Live 环境自身的文件。3. 密码策略chage 设置与 shadow 字段的关联在恢复 root 密码之后有时可能需要调整密码过期策略以符合系统加固要求。使用chage命令与 shadow 文件字段的直接对应关系如下-m 最小使用天数对应第 4 个字段密码最小使用天数。-M 最大使用天数对应第 5 个字段密码最大使用天数。-W 警告天数对应第 6 个字段密码过期前的警告天数。-I 过期后宽限天数对应第 7 个字段密码过期后的宽限天数。-E 账户过期日期对应第 8 个字段账号失效日期格式为YYYY-MM-DD。如果需要让密码立即过期以强制用户在下次登录时修改可执行chage -d 0 root。建议在恢复 root 密码后结合安全策略设定合理的密码有效期限防止长期使用同一个密码。
延伸阅读

更多相关文章

2026/10/30 1:09:32

PAGravf重力场逼近的误差分析与精度评定原理及方法

来源:地球物理大地测量科学计算平台,章传银地球重力场无缝连续地充满于整个地固空间,我们只能用一定分辨率的格网空间平均值来表达重力场量,这是重力场量区别于一般离散点几何大地测量要素的典型特征,重力场逼近的误差…

2026/10/25 15:40:46

PIC18F46K40与M95M02-DR EEPROM的嵌入式数据存储方案

1. 项目背景与核心需求在嵌入式系统开发中,数据存储的可靠性往往决定着整个系统的稳定性。M95M02-DR这颗2Mbit的EEPROM芯片与PIC18F46K40微控制器的组合,恰好能满足工业级应用对非易失性存储的严苛要求。我最近在一个环境监测设备项目中采用了这套方案&a…

2026/10/31 10:08:51

多智能体系统中的语言对齐技术实践与优化

1. 多智能体协作中的语言对齐挑战 当多个智能体(Agent)需要协同完成复杂任务时,语言层面的不一致性会成为阻碍协作效率的关键瓶颈。上周我在部署一个客服工单处理系统时就遇到了典型场景:工单分类Agent使用"urgent/高优先级&…

2026/10/31 10:08:51

ponytail插件:轻量级React状态管理新范式

1. “Ponytail”不是发型,是前端开发圈悄然兴起的轻量级状态管理插件 最近在几个前端技术群和 GitHub Issues 里频繁刷到这个词—— ponytail 。一开始我也以为是某个 UI 库的彩蛋、新出的 CSS 动画库,甚至怀疑是不是某位开发者给自己的开源项目起了个…

2026/10/31 10:08:51

5个提升Windows效率的必备命令行工具

1. Windows命令行的效率革命 在Windows操作系统中,图形界面(GUI)确实提供了直观的操作体验,但真正的高效操作往往隐藏在命令行(CLI)中。作为一名长期与Windows打交道的技术从业者,我发现命令行工具能完成许多GUI难以实现或效率低下的任务。以…

2026/10/31 10:08:51

OpenClaw对接钉钉命令执行权限配置与排错指南

1. 问题现象与初步排查 最近在帮客户部署OpenClaw对接钉钉时,遇到了一个诡异的问题:配置完成后,机器人能正常接收消息并返回响应,但涉及到执行本地命令的功能却始终无法正常工作。最奇怪的是,系统日志里没有任何错误信…

2026/10/31 10:08:51

BLE技术解析:低功耗蓝牙协议栈与应用开发指南

1. BLE技术概述 蓝牙低功耗(Bluetooth Low Energy,简称BLE)是蓝牙技术联盟(Bluetooth SIG)在2010年推出的无线通信协议,作为蓝牙4.0核心规范的一部分。与经典蓝牙相比,BLE最大的特点是极低的功耗…

2026/10/31 10:03:51

关于deepseek部署到qq对话怎样显得有人味(新手向)

我这个是qq开放平台的官方机器人渠道(因为方便),流程就是注册,绑定qq,实名认证后在教程里给你一串代码,发给deepseek harness识别这串代码就能自动生成deepseek harness的qq机器人插件,让qq机器…

2026/10/30 20:55:10

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/30 20:55:10

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/30 20:55:09

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

2026/10/31 0:02:41

猫狗目标检测数据集:VOC/COCO/YOLO三格式一体化实战包

简介:本资源是一套面向计算机视觉初学者与YOLO目标检测实践者的猫狗图像数据集及配套开发工具包,专为快速上手目标检测模型训练而设计。资源包含1000张真实场景高清猫狗图片,标注质量高,同时提供VOC(XML)、…

2026/10/31 0:02:41

HDU2017多校标程复现:算法竞赛工程化真题沙盒

简介:本资源为2017年HDU多校联合训练第一场官方配套资料,面向ACM程序设计竞赛备赛学生、算法爱好者及高校编程集训队成员,旨在提供权威解题参考与完整测试验证环境。压缩包共40个文件,含15份C标程(覆盖全部赛题&#x…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑