Linux光盘拯救模式清空root密码

文本关键字:Linux、光盘拯救模式、忘记root密码、清空root密码
光盘拯救模式主要在系统损坏时使用,可以用于系统手动修复或者拷贝关键数据。但是由于在该模式下可以使用root权限进行有限的操作(因为并未加载系统,所以大部分命令无法使用),我们也可以在忘记密码的情况下来清空root用户的密码。光盘拯救模式主要适用于物理机,并且进入单用户模式被加密又忘了密码的情况(好吧,也是够惨的)。

一、Linux用户信息文件

1. 配置文件路径

  • /etc/passwd

在配置文件中记录的用户的相关信息,在用户创建成功时会被写入,后续的修改也会被记录在文件中,默认情况下只有root用户有权修改。
Linux光盘拯救模式清空root密码_第1张图片

2. 各列含义:使用冒号隔开

  • 第一列:用户名称
  • 第二列:密码占位符,x表示需要密码验证后使用,为空时不需要密码
  • 第三列:用户ID(普通用户从500开始)
  • 第四列:主用户组ID
  • 第五列:用户附加信息
  • 第六列:用户家目录位置
  • 第七列:用户登录后执行的shell

3. 确定入手位置

了解了配置文件的位置后,我们需要做的就是想办法清空掉root用户的密码。也就是进入拯救模式的shell后,编辑用户信息文件,删除掉第二列的x占位符。保存退出后重启系统,再次使用root用户登录时已不需要密码。

二、光盘拯救模式

对于已经安装了操作系统的磁盘,如果系统能够正常的进行引导,那么我们需要在BIOS设置中修改一下启动的顺序,才能够保证从光盘启动,进入光盘选单。

1. 光盘镜像挂载

  • 相关文件:Linux镜像文件

如果是虚拟机,直接将镜像文件挂载即可。如果是物理真机,可将镜像文件烧录至U盘。

  • 由于我们需要进入主板(BIOS)来设置,所需需要先将虚拟机关机
  • 与刚安装时相同,进入虚拟机配置界面,进行光盘的挂载

Linux光盘拯救模式清空root密码_第2张图片

  • 保证勾选启动时连接,选择使用IOS映像文件,正确选择IOS镜像文件路径

Linux光盘拯救模式清空root密码_第3张图片

  • 选中虚拟机后,依次点击:虚拟机 -> 电源 -> 打开电源时进入固件

Linux光盘拯救模式清空root密码_第4张图片

  • 切换至Boot选项卡

Linux光盘拯救模式清空root密码_第5张图片

  • 将光盘启动(CD-ROM Drive)调整至第一项:用加减号操作

Linux光盘拯救模式清空root密码_第6张图片

  • 按F10保存重启,即可进入光盘启动界面,第三项为拯救模式

Linux光盘拯救模式清空root密码_第7张图片

2. 进入救援模式

  • 选择语言和键盘(虽然有中文的选项,但是貌似还是不支持)

Linux光盘拯救模式清空root密码_第8张图片
Linux光盘拯救模式清空root密码_第9张图片

  • 选择语言后出现网络选择界面,如果不需要网络可选择:No

Linux光盘拯救模式清空root密码_第10张图片

3. 挂载磁盘目录

  • 选择continue,如果只希望查看,可选择Read-Only

Linux光盘拯救模式清空root密码_第11张图片

  • 根据提示信息,磁盘中的文件已经被挂载至/mnt/sysimage目录,可以通过chroot密令修改根目录位置,否则在操作文件时需要添加/mnt/sysimage路径作为前缀。

Linux光盘拯救模式清空root密码_第12张图片

  • 打开一个shell环境,继续进行下一步操作

Linux光盘拯救模式清空root密码_第13张图片

三、清空root密码

1. 修改密码文件

在光盘拯救模式下直接可以使用bash环境,并且权限标识符是令人激动的井号,没错,超级权限!但是还是有区别的,此时,我们并没有进入到之前的Linux系统,所以不要使用passwd命令直接修改密码,也是不允许的,要通过修改用户配置文件的方式来实现。

vi /mnt/sysimage/etc/passwd
  • 去掉第一行root用户的第二列密码占位符

Linux光盘拯救模式清空root密码_第14张图片

  • 保存退出后关机
  • 如果想进入系统需要再次进入BIOS修改启动顺序
poweroff
  • 启动到固件后调整CD-ROM Drive至原位

Linux光盘拯救模式清空root密码_第15张图片

  • 按F10保存退出后即可正常进入系统,第一次启动会花较长的时间,耐心等待

2. 解决不可写入

如果在修改文件时提示只读,不可写入,那么首先确认一下在挂载时选择的是Continue,而不是Read-Only。如果依然有问题,那我们重新挂载一下就可以解决问题了。

mount -o remount,rw /mnt/sysimage/