问题:在win7的vmware中部署了一套Ubuntu18,长时间没有启用,忘记了用户的开机密码,请问应该如何修改密码或者找回密码?
备注
- 此解决方案针对虚拟机,针对物理机的解决方案应当是类似的。
- 此解决方案针对的虚拟机平台为vmvare,但是针对virtualbox或者其他虚拟机平台,应该是基本相同的。
- 此解决方案针对Ubuntu 18,使用Grub启动。Grub提供了recovery mode,其他使用Grub进行引导的Linux distribution,解决方案应该是类似的。
- 参考博客:https://blog.csdn.net/foroverontheroad/article/details/85259609 这篇博客完成于2018年,但是整体解决方案是十分有效的。我的文章也很难在解决方案上有更多的更新,仅仅是做一些技术细节的补充。我参考了多篇博客,有的文章写的比较复杂,但是其中描述的情况在我的issue中并没有出现。如果您使用本方案无法有效解决面临的问题,可以根据遇到的问题、报错、提示进行更进一步的检索。
solution
1. 准备开机。由于系统安装在虚拟机中,开机前确保鼠标定位是在虚拟机内:点击虚拟机界面,鼠标定位在虚拟机系统;点击ctrl+alt,鼠标脱离虚拟机系统。在开机界面按住shift
,会加载grub的启动界面,找到advaced options for Ubuntu
选项。长按shift
的目的是为了加载grub的启动界面,有的Linux distribu在配置bootload的时候,不会跳过这个界面,或者在这个界面会停留一段时间,那么直接进入advaced options就好。
-
进入
把ro改成rwadvaced options for Ubuntu
,会发现很多选项后面带有recovery mode
。可能是一个,也可能是多个,随便进入一个recovery mode
即可。Ubuntu会滚动rooling更新Linux内核,如果在使用系统的过程中更新了Linux内核,那么在这里就会看到多个Linux内核的启动入口和recovery mode
的入口entry。我在使用过程中多次更新Linux内核,这里能看到5.4.0-70,71,72三个版本的内核和对应recovery mode
的入口,任选一个即可。这里的提示信息很关键,即便有保姆级的教程做指引,也不应该忽视在这片原始简陋的屏幕上提供的信息:按e
进入编辑模式,按c
进入grub提供的命令行。
-
选中一个带有recovery mode的option,不要点击
image.pngenter
!首先按e
进入编辑模式,编辑启动选项。启动文件内容很多,不用理会,找到ro
改成rw
。ro
means read-only andrw
means read-wirte。这是Linux系统中的文件属性标识方法,改成rw
后我们才能对系统文件进行修改。只需要做这一个字母的修改,按ctrl+x
orF10
启动系统。我是如何知道要按这些快捷键的呢?看界面下方的提示文字。
-
启动!点击
image.pngroot
,drop to root shell prompt。drop to
,下降,从绚丽的图形界面渗透到更底层的命令行。Ubuntu的理念是给用户提供一个易用的图形界面Linux系统,如果您不需要命令行,您完全可以在图形界面解决所有问题;但是今天我们需要深入外表的底层,drop to the prompt。Ubuntu默认不开启root用户,这也是方便用户的一种保护机制;安装Ubuntu的时候,您可能会发现并不需要像安装RedHat,ArchLinux等发行版时设置root用户密码的情况。如果您之前没有设置用户密码,这里可以直接免密码进入root的命令行,通过passwd username
指定用户密码。前面设置rw
也是为了这里允许通过命令行修改/etc/shadow
文件。
假如您修改了root密码,即初始化了root账户,情况就会有所不同,这里需要您提供root密码。Give root password for maintenance
,如果您也忘记了root密码,回到step 3,仅仅修改ro
为rw
就不够了。解决方法参考:https://linuxhint.com/reset-root-password-on-ubuntu-20-04/
这里提供的解决方法针对Ubuntu 20.04,但是对于Ubuntu 18也一样适用。回到step 3,将ro xxx直到这一行的最后
这一系列参数改为rw init=/bin/bash
,pressctrl+x
to reboot,这时我们将得到一个root@none
,在这个凭空的root账户里,我们可以修改root密码或者用户密码。上面这一系列操作告诉我们,只要能近距离接触一台Ubuntu设备,我们可以在无任何先验知识的情况下修改root密码,获取这台设备的最高控制权。
网友评论