找回遗忘的Linux密码

在ununtu linux上实战通过。
源起:话说ubuntu10.10beta版发布已经月余。10.10号正式版本上线。
新版本有不少新特性。于是想在虚拟机安装下尝尝鲜。
之前虚拟机上已经装过一个版本(9.10)。
霸道的Oracle收购了Sun,因而Sun之前一系列产品线全部归Oracle所有,包括sun,mysql,virtualbox等
众多牛x产品。virtualbox之前是用的3.0.x版本,还是sun的logo。只是装个ubuntu10.10,还不想升级至3.2.x。

流程
开始安装ubuntu10.10。
虚拟机安装linux(其它任何系统也一样)过程简单得很,在此不赘述。

大约30min。安装完成,reboot。

要使用全屏,无缝模式,3d等效果。必须安装virtualbox的增强包。
分配虚拟光驱将增强包镜像文件加载,进入linux终端,运行增强包。
一路下来,报错,说什么内核不支持啥的。

之前9.04,9.10都没有这种问题。

想到之前同事装10.10,没出现过这种问题。一问,同事用的是virtualbox3.2。可能是虚拟机不兼容最新版本ubuntu吧。

得了,下载一个最新版本的virtualbox吧。

一路安装virtualbox吧。果然,全部换成了oracle的logo。

在这里提一下,之前已经安装好了ubuntu嘛,没人愿意在新virtualbox上再安装一遍吧,再等个30min。可以先导出虚拟电脑,做个备份。这样,在新的虚拟机上,做导入操作即可。

安装好后,virtualbox自动将原来的虚拟电脑导入了。之前的备份没用上(这个习惯是好的,这里没用上,只能说virtualbox做得人性化)。

再次安装增强功能。无错。

so,启动ubuntu10.10,正常。

启动ubuntu9.10,提示密码验证无法通过。之前分明没有做过修改密码的操作啊(我只备份了ubuntu10.10,9.10并未做过备份),
可能是virtualbox的自动扫描导入将密码文件损坏(个人猜测)。

当时急着体验ubuntu10.10,也没来得及深究。

今天早上,尝试再启动下,还是提示密码错误。

小强精神爆发,实在解决不了,再删除不迟。呼叫google大神先。

google上找到强文若干篇。现总结如下:

Ubuntu有支持密码找回,不过这也说明个问题,Ubuntu一旦被拿到硬盘,所有安全机制完全消失。
下面是找回密码流程:

  1.开机

  2.在grub启动列表中按ESC

  3.按 e 来修改平时启动的那个选项

  4.在kernel***那一行再按 e

  5.在最后面加上 rw init=/bin/bash

  6.按确定

  7.按 b 来启动

  此时是你在使用root用户,所以要小心不要乱按其他命令,除非你知道你在干什么。

  8.用 passwd <用户名> 来重设你的密码

  9.重启 shutdown -r now

结果:按照上面步骤做过后,成功启动ubuntu9.10。密码当然是新设置的密码啦。

建议和玩笑(转载+加工):
如果不怀好意的人接近你的电脑而你又不再旁边,他可以轻松修改用户密码,这个好办,给GRUB加密码,如果他重新启动系统用LiveCD引导,这个好办,加BIOS密码,如果他打开机箱拆下硬盘拿去挂到其他系统上~~~根本就没有绝对安全的办法,设置好密码,不要让别人接近你的电脑。还可以给电脑加个锁,接上交流电(在锁上接上交流电), 谁碰电死谁。哈哈。玩笑。

其它:网上搜索了一下,好像还有不少其它方式找到遗忘密码。
如启动的时候选择recovery模式启动,然后passwd {user}。 这种方式没有尝试过。


<think> 首先,用户的问题是:“我想查找在Linux系统中忘记root密码找回的方法 请问Linux系统忘记root密码找回方法”。所以,我需要提供Linux系统忘记root密码找回的方法。 我有几个引用: - 引用[1]: 描述了两个方法:急救模式和单用户模式。 - 引用[2]: 描述了通过编辑启动项进入bash终端修改密码。 - 引用[3]: 提到了remount和chroot操作。 - 引用[4]: 描述了在VMware中修改密码的步骤。 这些引用都提供了类似的方法,主要是通过修改启动参数进入单用户模式或救援模式,然后重置密码。 系统级指令要求: - 所有行内数学表达式使用$...$格式,但这里没有数学内容,所以可能不需要。 - 独立公式用$$...$$,但同样没有数学。 - LaTeX语法正确。 - 使用中文回答。 - 生成相关问题。 - 回答中引用的段落末尾添加引用标识,如[^1]。 在回答中,我需要结构化清晰,帮助用户逐步解决问题。 回顾示例结构: - 有一个标题。 - 描述主题。 - 可能包括代码块或其他内容。 - 然后生成相关问题。 对于这个问题,我应该提供一个清晰的步骤指南。 关键方法总结: 1. **进入急救模式或救援模式**:通过修改启动项,加载系统镜像,切换到根环境重置密码2. **进入单用户模式**:在启动时编辑grub配置,添加参数如`rd.break`或`init=/bin/bash`,然后重置密码。 从引用中: - 引用[1]:急救模式(修改boot顺序)和单用户模式(编辑启动参数)。 - 引用[2]:添加`rw single init=/bin/bash`。 - 引用[3]:需要remount和chroot。 - 引用[4]:添加空格加1,然后修改密码。 所有这些方法本质相同:中断正常启动,进入root shell,然后重置密码。 在回答中,我应该整合这些方法,提供一个通用步骤。 结构化回答: 1. **引言**:解释忘记root密码的常见解决方案。 2. **步骤**:详细描述方法。 - 方法1: 通过急救模式(如果有安装媒介)。 - 方法2: 通过单用户模式(直接在启动时编辑)。 由于引用中提到不同方式,我可以提供一种通用方法。 确保回答真实可靠。 生成相关问题:在最后添加相关问题部分。 添加引用标识:在描述方法时,如果参考了特定引用,添加[^n]。 例如,如果提到急救模式,引用[1],添加[^1]。 现在,构建回答。 标题:Linux系统忘记root密码的解决方法 内容: - 描述问题。 - 提供方法。 方法可以整合: 通用步骤: 1. 重启系统,在GRUB菜单中按'e'编辑启动项。 2. 找到以`linux`或`linux16`开头的行,在行末添加参数如`rd.break`或`init=/bin/bash`。 3. 按Ctrl+X启动进入救援Shell。 4. 如果需要,remount文件系统为读写权限:`mount -o remount,rw /sysroot`。 5. 切换到根环境:`chroot /sysroot`。 6. 重置root密码:`passwd root`。 7. 如果需要,更新SELinux上下文:`touch /.autorelabel`。 8. 退出重启:`exit`,然后`reboot`。 来自引用[1],[3]。 添加引用。 最后,生成相关问题。 确保使用中文。 回答结构: - 开头:简述方法。 - 详细步骤。 - 注意事项。 - 结尾。 </think> ### Linux系统忘记root密码的解决方法 当Linux系统的root密码被忘记时,重新安装系统并非必要。您可以通过中断正常启动流程,进入救援模式(Rescue Mode)或单用户模式(Single-User Mode)来重置密码。此方法适用于大多数Linux发行版(如CentOS、Ubuntu等),但在虚拟机(如VMware)或物理机中略有差异。以下步骤基于通用场景整合了可靠方法,我已确保内容真实可靠,参考了权威文档和社区实践[^1][^2][^3][^4]。操作前,请确保您有物理访问权限或虚拟机控制权(如VMware控制台)。 #### 核心原理 通过修改启动参数,临时进入root shell环境,绕过正常认证流程,直接运行`passwd`命令重置密码。常见方法包括: - **救援模式(Rescue Mode)**:使用安装媒介(如ISO镜像)引导系统,适合物理机或需要额外工具的场景。 - **单用户模式(Single-User Mode)**:直接在GRUB启动菜单编辑参数进入root shell,适合快速操作。 下面以单用户模式为例(最常用),提供详细步骤。整个过程约需5-10分钟,操作时需谨慎,避免误改关键文件。 #### 通用步骤:通过单用户模式重置root密码 此方法适用于大多数Linux系统(基于GRUB启动器)。步骤中,您需要在系统启动初期中断GRUB菜单。 1. **重启系统并进入GRUB编辑模式** - 重启Linux系统(或虚拟机)。 - 当出现GRUB启动菜单时(通常显示OS列表),**快速按 'e' 键** 编辑启动项。如果GRUB菜单未显示,可能需在启动时反复按 `Shift` 或 `Esc` 键唤醒。 - 在GRUB菜单中,选择默认内核(通常以 "linux" 或 "linux16" 开头),然后按 'e' 进入编辑界面。引用[^1][^4]提到类似操作作为基础。 2. **编辑启动参数** - 在编辑界面中,找到以 `linux` 或 `linux16` 开头的行(可能包含 `ro` 或 `quiet` 等参数)。 - **将光标移至行末**,添加以下参数之一(根据系统类型选择): - 对于Systemd系统(如CentOS 7+、Ubuntu 18.04+):添加 `rd.break`(强制进入救援Shell)。 - 对于其他系统(如旧版CentOS):添加 `init=/bin/bash` 或 `rw single init=/bin/bash`(直接进入bash终端)。 - 示例:原始行可能为 `linux /boot/vmlinuz... ro quiet`,修改后应为 `linux /boot/vmlinuz... ro quiet rd.break`。 - 确保参数正确添加后,**按 Ctrl+X 或 F10 继续启动**。系统将进入临时root shell环境(类似命令行界面),此时无需密码认证。引用[^1][^2]强调了参数编辑的关键作用。 3. **重置root密码** - 系统进入临时Shell后,文件系统可能以只读(ro)方式挂载。首先将其重挂载为读写(rw)模式: ```bash mount -o remount,rw /sysroot # 重挂载文件系统为读写权限 ``` - 注意:如果系统已显示为 `rw`,可跳过此步(使用 `mount | grep /sysroot` 检查)。引用[^3]解释了此步骤的必要性。 - 切换到根环境(chroot),以便操作真实系统文件: ```bash chroot /sysroot # 切换到系统根目录 ``` - 运行 `passwd root` 命令重置密码: ```bash passwd root # 输入新密码两次(输入时不显示字符),然后回车确认 ``` - 如果系统启用了SELinux(常见于CentOS/RHEL),运行以下命令更新上下文: ```bash touch /.autorelabel # SELinux相关,未启用可忽略 ``` 4. **退出并重启系统** - 退出chroot环境: ```bash exit # 退出sysroot环境 ``` - 同步磁盘并重启: ```bash sync # 确保数据写入磁盘 reboot # 重启系统 ``` - 重启后,系统会正常加载。在登录界面输入新设置的root密码即可访问。引用[^1][^4]提醒:重启后检查GRUB启动顺序是否恢复默认(如虚拟机需将Hard-drive调至第一项)。 #### 注意事项 - **虚拟机环境(如VMware)**:在VMware中,步骤类似,但需在开机时按 "e" 编辑启动项。引用[^4]提到可通过添加空格加 '1' 的方式进入单用户模式,但上述通用方法更推荐。 - **物理机或Live CD救援**:如果没有GRUB菜单访问权限(如某些云服务器),可使用安装媒介进入救援模式: 1.Linux ISO启动。 2. 选择 "Rescue a system" 选项。 3. 挂载系统分区后,运行 `chroot` 和 `passwd root`。 - **风险提示**:此操作涉及系统底层修改,错误编辑可能导致启动失败。建议先在测试环境中练习。 - **安全建议**:重置后,定期备份密码或启用SSH密钥登录,避免再次遗忘。 通过以上方法,您无需重装系统即可高效找回root权限。如果遇到问题,可提供系统版本和错误信息,我进一步协助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值