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

发布时间:2026/9/14 15:21:44

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/9/12 12:23:19

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

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

2026/9/7 11:18:59

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

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

2026/9/14 18:55:19

水质监测管理平台:水质实时监测・化验记录全链路业务建模

前言水质监测管理,是守护供水安全的最后一道防线,覆盖在线水质数据自动采集、实时监测、国标限值比对、超标分级预警、异常处置复核,以及实验室采样、化验、审核、归档全流程,业务对标国家标准、时效要求高、处置复核需双人把关、…

2026/9/14 18:55:19

守护万家数字安全感,网络安全走进社区 “家门口”

引言:立足网安周 “进社区”,找准基层网络安全治理切口2026 年国家网络安全宣传周于 9 月 14‑20 日在全国开展,主题为“网络安全为人民,网络安全靠人民 —— 智能时代 网安护航”。宣传周持续推进网络安全 “七进” 活动&#xf…

2026/9/14 18:55:19

DPR适配实战:解决移动端图片模糊的根本方案

1. 这不是图片质量的问题,是设备与渲染的“语言错位” 你肯定遇到过:设计师发来的 PNG 稿子在 Sketch 里放大看连像素点都锐利得能数清,导出切图后塞进前端页面,一上真机——尤其是 iPhone 14 Pro 或华为 Mate 50——图片立刻像蒙…

2026/9/14 18:55:19

氛围编程与职场效能:开发者如何平衡创新与绩效

1. 项目背景解析:当"氛围编程"遭遇职场现实"氛围编程"这个概念最近在技术社区引发了不少讨论,它描述的是一种更注重工作环境舒适度和团队协作体验的编程方式。典型的氛围编程实践包括:开放式协作空间设计弹性工作时间制度…

2026/9/14 2:17:50

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/14 0:03:22

KCF目标跟踪算法与OTB工程实现:毕业设计实战解析

简介:这是一份基于KCF核相关滤波算法、融合尺度池与抗遮挡处理的目标检测跟踪MATLAB完整源码,主要面向计算机相关专业准备毕业设计、课程设计或期末大作业的学生,也适合需要项目实战练习的初学者。源码在OTB数据集上完成验证,能够…

2026/9/14 0:03:22

语音情感识别实战:Keras实现LSTM、CNN、SVM与MLP多模型对比

简介:面向语音情感识别入门与进阶开发者,这份基于Keras的项目源码完整实现了LSTM、CNN、SVM、MLP四种模型,兼容Python3.8与Keras/TensorFlow2环境。压缩包内含49个文件,大小约70.31MB,主体包括Python脚本、yaml/json配…

2026/9/14 11:59:31

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/14 13:53:59

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/14 11:22:57

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

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

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

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