美文网首页
2022-02-04 忘记虚拟机中Ubuntu用户密码怎么办

2022-02-04 忘记虚拟机中Ubuntu用户密码怎么办

作者: 数亩荒园 | 来源:发表于2022-02-04 15:03 被阅读0次

    问题:在win7的vmware中部署了一套Ubuntu18,长时间没有启用,忘记了用户的开机密码,请问应该如何修改密码或者找回密码?
    备注

    1. 此解决方案针对虚拟机,针对物理机的解决方案应当是类似的。
    2. 此解决方案针对的虚拟机平台为vmvare,但是针对virtualbox或者其他虚拟机平台,应该是基本相同的。
    3. 此解决方案针对Ubuntu 18,使用Grub启动。Grub提供了recovery mode,其他使用Grub进行引导的Linux distribution,解决方案应该是类似的。
    4. 参考博客: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就好。

    1. 进入advaced 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提供的命令行。

      把ro改成rw
    2. 选中一个带有recovery mode的option,不要点击enter!首先按e进入编辑模式,编辑启动选项。启动文件内容很多,不用理会,找到ro改成rwro means read-only and rw means read-wirte。这是Linux系统中的文件属性标识方法,改成rw后我们才能对系统文件进行修改。只需要做这一个字母的修改,按ctrl+x or F10启动系统。我是如何知道要按这些快捷键的呢?看界面下方的提示文字。

      image.png
    3. 启动!点击root,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,仅仅修改rorw就不够了。解决方法参考:https://linuxhint.com/reset-root-password-on-ubuntu-20-04/
      这里提供的解决方法针对Ubuntu 20.04,但是对于Ubuntu 18也一样适用。回到step 3,将ro xxx直到这一行的最后这一系列参数改为rw init=/bin/bash,press ctrl+xto reboot,这时我们将得到一个root@none,在这个凭空的root账户里,我们可以修改root密码或者用户密码。上面这一系列操作告诉我们,只要能近距离接触一台Ubuntu设备,我们可以在无任何先验知识的情况下修改root密码,获取这台设备的最高控制权。

      image.png

    相关文章

      网友评论

          本文标题:2022-02-04 忘记虚拟机中Ubuntu用户密码怎么办

          本文链接:https://www.haomeiwen.com/subject/ebqskrtx.html