忘记了root密码其实分集几种情况:

忘记root密码但是还记得拥有sudo权限的用户的密码

我们sudo命令实际上是改变了用户的权限,使用户可以使用root用户的身份来执行命令,权限可以见我这篇文章:linux文件和目录权限 我们简单看看sudo这个文件的权限:

subprocess sudo 密码 sudo密码忘记_运维


我们可以看见它的权限是- - - s - - x - - x.,也就是说它只有可执行权限,但是要注意s这个权限,这里代表的SUID权限,即每个用户运行它的时候(这个用户)都会被当作是root用户来处理,所以要重置root用户的密码,如果我们可以借助可以记得密码而且具有sudo权限的用户在命令行中修改root用户的密码,如下图所示:

subprocess sudo 密码 sudo密码忘记_重启_02


我们可以看到,输入当前用户的密码,我们就可以修改root用户的密码了。

忘记root用户的密码且系统中没有拥有sudo权限的用户

我们进入电脑的grub程序,也就是下面这个界面(启动电脑的时候我们就可以看见这个界面):

subprocess sudo 密码 sudo密码忘记_linux_03


(图片来自网络)

然后我们按下“e”键就可以编辑grub.cfg文件了,我们按下“e”键,然后我们会进入一个紧急救援模式,如下图所示:

subprocess sudo 密码 sudo密码忘记_root用户_04

(图片来自网络)

我们在上方也就是画红线的rw后加一个“ rd.break”(注意空格)。

然后按ctrl+x键启动。

我们进入新的界面之后,输入以下命令:

1.挂载系统目录:

mount -o remount,rw /sysroot

2.chroot改变指定目录,指定之后,系统的目录结构将以指定的位置作为根目录的位置。
3.修改密码。直接使用passwd命令即可
4.输入命令 touch /.autorelable,在根目录下创建一个.autorelabel文件,有这个文件存在,系统在重启的时候就会对整个文件系统进行relabeling。
5.退出系统。输入exit命令
6.重启系统,输入reboot命令。
至此,密码重置完成。

关于如何改变我命令行中的前缀(也就是带颜色那个,我也不知道专业术语是不是这么叫,但是我看网上都这么叫)