前提条件
在学习sudo -u -i命令时,发现sudo一直出错,然后发现切换root用户无法成功,因此,从网上查阅大量文章,后通过网上的教程解决了该问题,现将该教材搬运到我的网站上,进一步分享给大家。
环境配置
系统版本号:CentOS7 7.9.2009
硬件环境:VMware虚拟机
重置步骤
1、重启CentOS系统
在重启的过程中,按一次“Esc“键,如果一直按,可能会存在卡住的情况(我遇到过)
注意:如果展示上图,按一次“Esc“键退出来
正常来讲,是GRUB(GRand Unified Bootloader)菜单页面,这是一个常用的开源引导加载程序,用于在计算机启动时加载操作系统。它是 Linux 系统中最常见的引导加载程序之一,也可以用于多个操作系统的启动,如 Linux、Windows、macOS 等。
2、编辑引导选项
然后按“e”键来编辑引导选项
在编辑模式下,找到`linux`开头的行,然后在该行的末尾添加
rd.break
或
init=/bin/sh
`linux`开头的行通常在底部,可以按⬇️键到编辑页面的底部,然后修改下图的标识部分
添加完成后,按下`Ctrl+X`或者`F10`来启动修改后的内核。
3、进入单用户模式
在提示符中输入
mount -o remount,rw /
将已挂载的根目录改为可写。
然后使用`passwd`命令重置root用户和普通用户的密码,如果你有多个账号的话
passwd root
passwd [用户名]
接着输入下列的代码
touch /.autorelabel
exec /sbin/init
这两个命令分别是创建名为“.autorelabel”的文件,指示系统在下次启动时重建SELinux标签,和执行 exec /sbin/init,重新启动 init 进程,使系统应用新的SELinux标签。
然后,让我们等待一段时间,系统就会自动启动,并且新密码生成。
此外还有一个重要提示,如果出现上图的“SMBus Host Controller not enabled!”之后,不要进行任何操作,等系统完成修改后,系统会自动重启。如果中途退出虚拟机,会导致root修改前与修改后的密码均无法使用,且无法在开机界面中进入单用户模式。
多提一点,这里上面的报错题到了`piix4_smbus`和`uvcvideo`,可能意味着系统中存在一些主板和USB设备相关的问题,因为是在虚拟机中操作的,因此目前是忽视这些报错并等待系统重启。
4、重置密码完成
登录密码后,可能存在数秒的黑屏,然后返回到我们熟悉的Centos界面。
防止踩坑
书接上回,出现上图的“SMBus Host Controller not enabled!”之后,不要进行任何操作,等系统完成修改后,系统会自动重启。如果中途退出虚拟机,会导致root修改前与修改后的密码均无法使用,且无法在开机界面中进入单用户模式。 如果中途退出虚拟机,那么我们需要在编辑引导选项时,把ro改成rw,以及还是在末尾添加init=/bin/sh,请见下图。
修改 rw 的跟后面进入单用户的 `mount -o remount,rw /`命令是一个意思,作用是重新挂载文件系统,并将其从只读模式(read-only)改为读写模式(read-write),
然后,我们书归正传,继续操作后续的步骤。