CentOS或RHEL 4、5、6版本

您可以从单用户模式或救援模式更改root密码。引导进入单用户模式的方法取决于您的引导加载程序

GRUB-无密码保护

使用GRUB引导进入单用户模式可以通过编辑引导加载程序配置菜单中的kernel所在行来完成

如果你的GRUB引导菜单没有使用密码保护或者你知道引导菜单的密码,就可以通过编辑引导加载程序配置菜单中的kernel所在行来完成。

重启系统,当您看到GRUB倒计时画面,默认是5秒。按Esc来中断倒计时并进入Grub菜单。然后按照下面的操作

centos系统更改root密码(CentOS重置ROOT密码)(1)

按 e键开始编辑

centos系统更改root密码(CentOS重置ROOT密码)(2)

用方向键选择到 kernel 所在的行。此行告诉Grub用哪个kernel引导

再次按 e 键编辑此行

centos系统更改root密码(CentOS重置ROOT密码)(3)

用方向键将光标移动到行尾,在空格后添加数字 1 或者添加 single

centos系统更改root密码(CentOS重置ROOT密码)(4)

完成修改后,按 Enter 键接受修改

按 b 键启动系统,系统进入运行级别1(单用户模式)

centos系统更改root密码(CentOS重置ROOT密码)(5)

使用passwd命令直接修改root密码即可

centos系统更改root密码(CentOS重置ROOT密码)(6)

注意:此修改不是永久的。在下一次系统启动时,还会以默认模式启动;除非修改/etc/inittab文件

GRUB-有密码保护

如果GRUB的引导菜单被密码保护又不知道密码,则必须使用救援光盘-同样版本RHEL的启动光盘来引导系统。

选择 Rescube installed system

centos系统更改root密码(CentOS重置ROOT密码)(7)

设置语言

centos系统更改root密码(CentOS重置ROOT密码)(8)

设置键盘

centos系统更改root密码(CentOS重置ROOT密码)(9)

是否需要启用网络

centos系统更改root密码(CentOS重置ROOT密码)(10)

选择 Continue 继续

centos系统更改root密码(CentOS重置ROOT密码)(11)

centos系统更改root密码(CentOS重置ROOT密码)(12)

选择 shell Start shell

centos系统更改root密码(CentOS重置ROOT密码)(13)

执行chroot /mnt/sysimage/ 命令并使用passwd命令重新设置root密码

centos系统更改root密码(CentOS重置ROOT密码)(14)

经过以上步骤,已经重置了root密码,但是引导需要grub密码,所以还需要下面的步骤去掉grub密码

编辑/boot/grub/grub.conf文件

centos系统更改root密码(CentOS重置ROOT密码)(15)

依次输入 exit 命令 和 reboot 命令 重启系统

CentOS7和RHEL7

从Red Hat Enterprise Linux 7 Beta开始,用户有两种方法可以更改忘记的root密码:

  1. 使用救援模式,需要启动盘
  2. 不使用救援模式,仅适用于GRUB2没有设置密码的情况

使用救援模式

从系统盘启动,选择Troubleshooting Rescue a CentOS system

centos系统更改root密码(CentOS重置ROOT密码)(16)

centos系统更改root密码(CentOS重置ROOT密码)(17)

按Enter键继续

centos系统更改root密码(CentOS重置ROOT密码)(18)

输入 1 进入非只读模式,接着按 Enter 键,进入shell环境

centos系统更改root密码(CentOS重置ROOT密码)(19)

执行 chroot /mnt/sysimage 命令

centos系统更改root密码(CentOS重置ROOT密码)(20)

使用 passwd 命令修改root密码

centos系统更改root密码(CentOS重置ROOT密码)(21)

输入两次 exit 命令重启系统

注意:

通过上面的操作,虽然修改了root用户密码,但是如果用户设置了开机引导时就需要GRUB2账户密码,在不知道GRUB2账户密码的情况下,还是无法进入系统

如要需要重新设置GRUB2账号密码还需要进行如下设置:

  1. 执行gru2-setpassword重新设置密码
  2. 编辑/boot/grub2/grub.cfg文件以设置账号

不使用救援模式

使用 init=/bin/bash 参数启动

系统启动时,您将看到GRUB 2倒计时,默认情况下设置为5秒。按Esc,然后进入GRUB 2菜单

按 e 开始编辑。

向下滚动到 linux16 ... 或 linuxefi ... 行。该行告诉GRUB 2要引导哪个内核。

移到行尾。在空格后面添加字符串 init=/bin/bash

如果要在启动时显示输出信息,则还必须删除该行的 rhgb quiet 部分(可选但建议)

完成更改后,按 Ctrl x 使用该内核参数启动到运行级别1(单用户模式)

Linux内核将运行/bin/bash shell而不是系统init守护程序。因此,某些功能可能受限或缺失。

运行load_policy加载SELinux策略(可选)

/usr/sbin/load_policy -i

以读写模式重新挂载根文件系统:

mount -o remount,rw /

设置新密码:

passwd root

重启系统

exec /sbin/init 3

说明:

,