Linux单用户模式重置root密码

文本关键字:Linux、系统运行级别、单用户模式、忘记root密码、修改用户密码

一、系统运行级别

1. Linux系统启动过程

要进入到单用户模式我们首先要了解一下系统的启动过程,确认我们在哪一步下手。只有理解了才是真正掌握了,告别死记硬背。
Linux单用户模式重置root密码_第1张图片

  • 接通电源:对于虚拟机来说点击运行按钮即可。
  • BIOS自检:这一步主要是进行各种扫描,确认启动的方式并进行引导,如硬盘、光盘、网络等。
  • grub引导菜单:如果硬盘上已经有一个可以正常工作的操作系统,则会进入启动菜单。这一步对于我们来说很关键,因为再下一步就会加载内核来启动init进程,随后根据指定的运行级别运行系统了,如果我们要临时改变一下系统的启动级别,进入到单用户模式,必须要在引导菜单这一步来操作。
  • 加载内核:系统读取/boot目录下的相关文件,加载系统核心内容
  • init进程:初始化进程,用于初始化系统环境
  • 确定运行级别:根据配置使系统在指定级别下运行
  • 用户登录:输入用户名密码进行登录
  • 执行登录脚本:根据用户的配置信息执行用户登录后的脚本(会在用户管理的文章中进一步介绍)

    2. 相关配置文件

  • /boot/grub/grub.conf:grub引导菜单配置文件

可以在该配置文件中修改引导菜单的倒计时读秒,对应配置项:timeout。
也可以在该文件中配置启动菜单加密,对应配置项:password。(会在单用户加密文章中介绍)

  • /etc/inittab:配置各运行级别下的行为和命令,也可用于修改系统默认运行级别

配置文件的内容格式为如下:
id:runlevels:action:process
id为自定义的名称,要求在文件内唯一,且长度不超过四个字符。
runlevels的范围与系统运行级别一致,可以同时指定多个。
action表示在指定的级别下要执行的行为,为固定值。指定系统启动后的默认运行级别的配置为:initdefault。
process部分用来指定具体需要执行的命令,当action指定为initdefault时,该部分可省略。

3. 运行级别列表

直接使用/etc/inittab中的内容来做对照
Linux单用户模式重置root密码_第2张图片

  • 0:关机
  • 1:单用户
  • 2:多用户(无NFS)
  • 3:完全的多用户模式
  • 4:暂未使用
  • 5:图形界面
  • 6:重启

    4. 默认运行级别

    如果需要修改默认的运行级别只要将配置文件中原有的一行修改为目标级别对应的数字。如:将默认运行级别由图形界面更改为完全的多用户模式,则将5修改为3。

    # 原始内容 id:5:initdefault:
    id:3:initdefault:

    二、单用户模式下重置密码

  • 在开机读秒时按任意键进入grub菜单

Linux单用户模式重置root密码_第3张图片

Linux单用户模式重置root密码_第4张图片

  • 根据提示,按e进入编辑界面

Linux单用户模式重置root密码_第5张图片

  • 选择第二项:内核,继续按e编辑

Linux单用户模式重置root密码_第6张图片

Linux单用户模式重置root密码_第7张图片

  • 结尾输入:[空格] 1[回车]

Linux单用户模式重置root密码_第8张图片

  • 回到菜单界面,按b启动

Linux单用户模式重置root密码_第9张图片

  • 启动后就会进入到单用户模式,可以使用passwd命令直接重置root用户密码

Linux单用户模式重置root密码_第10张图片
在密码输入状态,光标不会产生任何变化,是正常现象,输入完成后回车即可

  • 密码修改完成后使用reboot命令重启,系统将会重新进入之前默认的运行级别