Linux 找回 Root 密码(多发行版本)

devtools/2025/3/17 2:42:59/

适用于大多数 Linux 发行版(Ubuntu、CentOS、Debian 等),无需第三方工具,需物理接触服务器或系统启动权限


步骤 1:重启系统并进入 GRUB 引导菜单
  1. 重启系统,看到启动画面时,快速按下 EscShift 或 E(不同系统按键不同,可多试几次)。
  2. 进入 GRUB 菜单后,选择要修改的系统内核选项(通常第一个),按 e 进入编辑模式。

步骤 2:修改内核启动参数
  1. 找到以 linux 或 linux16 或 linuxefi 开头的行(可能显示为 ro quiet splash),将 ro 改为 rw init=/bin/bash(部分系统需改为 rw single)。
     

    <BASH>

    linux /vmlinuz-xxx root=/dev/sda1 **rw init=/bin/bash**
    
    • 目的:以可读写(rw)模式启动,并直接进入单用户模式(无需密码)。

步骤 3:挂载文件系统并修改密码
  1. 按下 Ctrl+X 或 F10 启动到命令行界面。
  2. 重新挂载根分区为读写模式(部分系统已通过参数自动挂载):
     

    <BASH>

    mount -o remount,rw /
    
  3. 修改 Root 密码
     

    <BASH>

    passwd root    # 输入两次新密码
    
  4. 确保 SELinux 重新标记(如系统使用 SELinux):
     

    <BASH>

    touch /.autorelabel  # CentOS/RHEL 需要此步骤
    
  5. 重启系统:
     

    <BASH>

    exec /sbin/init      # 或直接按 Ctrl+Alt+Delete
    

其他可能场景处理
场景 1:系统使用 systemd(如 Ubuntu 18.04+、CentOS 7+)
  1. 在 GRUB 编辑模式中,修改 linux 行末尾为:
     

    <BASH>

    rw init=/bin/bash
    
  2. 若提示文件系统错误,需指定根分区:
     

    <BASH>

    mount -o remount,rw /sysroot
    chroot /sysroot
    passwd root
    touch /.autorelabel  # 仅 SELinux 系统需要
    exit
    reboot
    
场景 2:使用 Live CD/USB 修改密码
  1. 用 Linux Live USB 启动系统。
  2. 挂载原系统的根分区(需替换 /dev/sda1 为实际分区):
     

    <BASH>

    sudo mount /dev/sda1 /mnt
    
  3. 修改密码:
     

    <BASH>

    sudo chroot /mnt
    passwd root
    exit
    sudo reboot
    

注意事项
  1. 安全限制
    • 要求物理访问机器,虚拟机需控制台权限。
    • 若启用了全盘加密(如 LUKS),需先解密磁盘。
    • Secure Boot 可能阻止此操作,需在 BIOS/UEFI 中临时关闭。
  2. 生产环境
    • 修改密码后检查系统日志(/var/log/secure 或 /var/log/auth.log)。
    • 启用 SSH 密钥认证或 sudo 权限,减少依赖 Root 密码。

示例流程图

 

<PLAINTEXT>

重启 → GRUB菜单 → 修改启动参数 → 进入单用户模式 → 挂载rw → passwd → 重启生效

通过上述步骤,可快速恢复 Root 权限,建议操作后加固系统安全! 🔐


http://www.ppmy.cn/devtools/167711.html

相关文章

AI辅助编程!DeepSeek vs ChatGPT- AI在地图网络分析(最佳路径)上的应用

你是否好奇像DeepSeek和ChatGPT这样的AI语言模型在生成创建网络地图的Python代码时表现如何&#xff1f;在本教程中&#xff0c;我将对它们进行测试&#xff01; 仅需一个简单提示&#xff0c;这些大语言模型就能生成代码&#xff1a;接收一个起点和多个目的地地址&#xff0c;…

prometheus-helm的使用

1、部署Prometheus监控平台 1、下载安装Prometheus &#xff08;当前集群版本1.26.3&#xff09; git clone https://github.com/prometheus-operator/kube-prometheus.git -b release-0.12 安装&#xff1a; cd kube-prometheus/ 创建命名空间和crd&#xff1a; kubectl …

【VUE】day03-vue过滤器、计算属性、vue-cli、vue组件

【VUE】day03-vue过滤器、计算属性、vue-cli、vue组件 1. 过滤器2.使用vue.filter定义全局过滤器3. 使用全局过滤器格式化时间4. 过滤器的其他用法5. 侦听器的基本用法5.1 进入页面就被侦听 6. 计算属性6.1 了解计算属性的语法和特点 7. axios8. vue-cli8.1 安装与使用8.2 创建…

Vite项目中vite.config.js中为什么只能使用process.env,无法使用import.meta.env?

关键要点 研究表明&#xff0c;Vite 配置文件&#xff08;vite.config.js&#xff09;运行在 Node.js 环境中&#xff0c;因此只能使用 process.env 访问环境变量&#xff0c;而 import.meta.env 专为客户端代码设计&#xff0c;在配置文件中不可用。于建议在 vite.config.js …

UE5.5 Niagara初始化粒子模块

粒子生成模块列表是每个创建的粒子都会调用一次对应的模块。此阶段中的模块设置每个粒子的初始值。粒子将从上到下的顺序执行模块。 下面&#xff0c;将列一下粒子生成常用的模块。 Initialize Particle 初始化粒子 所有粒子必需的基础模块&#xff0c;用于初始化粒子的基本属…

Ubuntu docker镜像恢复至原始文件

1.加载 Docker 镜像文件 首先&#xff0c;你需要将 .tar 格式的镜像文件加载回 Docker 中。 docker load -i <镜像文件路径> 加载完成后&#xff0c;你可以使用 docker images 命令查看所有可用的镜像&#xff0c;确认加载是否成功。 若出现 Got permission denied whil…

一个接口返回的preview和response的同一个字段的值不一样

&#x1f306; 内容速览 &#x1f315; 问题分析&#x1f315; 解决办法 &#x1f315; 问题分析 后端开发接口后与前端联调时发现&#xff0c;涉事次数页面展示值与实际不符全为0&#xff0c;排查发现查询接口的preview和response的involeNum的值不一样&#xff0c;其中previe…

leetcode hot100贪心

&#x1f51f; 贪心 121. 买卖股票的最佳时机 给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票&#xff0c;并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利…