如何重置丢失的密码(使用恢复模式需要我输入密码)?

如何重置丢失的密码(使用恢复模式需要我输入密码)?

我需要重置密码。我已按照以下步骤操作:

如何重置丢失的管理密码?

但是,当我转到“root”或“netroot”恢复选项时,它告诉我:

Give root password for maintenance (or type Control-D to continue)

显然,我不知道 root 密码。如果我输入CTRL+ D,我会返回到选项列表。从这一页我读:

在“另一种方式”一章下:

4. Highlight the line that begins kernel and press 'e' to edit`

但是在 grub 配置文件中我没有以 开头的行kernel。只有:

setparams 'Ubuntu...'
recordfail
set gxfpayload...
insmod part_msdos
insmod ext2
set root=...
search --no-floppy...
linux /boot/vmlinuz-2.6.38...
initrd /boot/initrd.img-2.6....

这些都是我的 GRUB 中的行。我应该编辑哪一行?或者还有其他方法可以重置我的密码?

答案1

由于您无法访问恢复模式,你必须通过以下方式更改密码从实时 CD/DVD 或实时 USB 系统访问已安装的 Ubuntu 系统。下面是有关如何执行此操作的详细演练。

如果您已经可以使用 Ubuntu 系统(即使没有管理员权限),那么这是最简单的。但是如果您不能使用,也不会太难。

  • 根据我的经验,大多数最终被锁定在自己的系统之外的 Ubuntu 用户都启用了自动登录,这就是他们忘记密码的原因(因为他们不必输入密码即可登录)。 在您的情况下,情况可能如此,也可能并非如此,但我已经介绍了如果您首先使用已安装的 Ubuntu 系统,因为我认为这将对阅读这篇文章的大多数人有所帮助。

如果你能够以非管理员用户身份使用已安装的 Ubuntu 系统

  1. 如果你还没有,可以写入一个 Ubuntu live USB 闪存驱动器(在Ubuntu视窗, 或者Mac OS X),或者刻录 Ubuntu Live CD/DVD(Ubuntu视窗, 或者Mac OS X)。

  2. 如果你知道包含 Ubuntu 系统根文件系统的分区的设备名称,请直接跳至步骤 5

  3. 在您的 Ubuntu 系统(不是实时 CD/DVD/USB 系统)中,在终端中运行此命令:

    mount | grep ' on / '
    

    on您应该在 之前和 之后添加空格/

  4. 该命令会产生类似于/dev/sda1 on / type ext4 (rw,errors=remount-ro,commit=0)输出的内容。前面的文本on(不包括空格)是包含 Ubuntu 系统根文件系统的分区的设备名称。记住它(或写下来)。

  5. 从实时 CD/DVD/USB 启动计算机并选择无需安装即可试用 Ubuntu(不是安装 Ubuntu)。

  6. 打开一个终端窗口(Ctrl++ AltT

  7. 运行此命令:

    sudo mount /dev/sda1 /mnt

    代替/dev/sda1如果不同,则将其替换为包含 Ubuntu 系统根文件系统的分区的设备名称。

    如果您收到有关设备或分区不存在或“未知文件系统类型”的错误消息,则您可能使用了错误的设备名称或分区号。如上所述,您的系统的根分区可能不存在/dev/sda1

  8. 运行此命令:

    sudo chroot /mnt
    

    为了能够重置密码,或者能够更改用户所属的组,这就是你在 chroot 中需要做的所有事情。特别是,你做不是还需要挂载其他文件系统例如/dev,,,和。/dev/pts/sys/proc更加精致chrooting 程序允许您充分利用被 chroot 到的系统(例如,在其中更新和安装软件)——确实需要这样做,以及进入 chroot 后的其他步骤,但这并不需要。

    如果您运行sudo chroot /mnt并且看到此消息,则几乎总是意味着您安装了错误的分区 - 请/mnt记住,它实际上并不存在/dev/sda1于所有系统上 - 尽管如果您删除以下内容也会发生这种情况/bin/bash

    chroot: failed to run command ‘/bin/bash’: No such file or directory
    

    如果确实发生这种情况,那么您可以卸载它sudo umount /mnt,然后继续安装正确的分区。

  9. 执行这些任务之一,以获取/恢复对安装 Ubuntu 系统的访问权限。

    • 如果您想重置用户密码:

      passwd username

      代替username使用您的用户名。(这是安装在硬盘上的系统的用户名,而不是“ubuntu”,后者是 Ubuntu 桌面安装 CD 上的默认用户的用户名。)

      输入该用户的密码。

      • 如果您不知道您的用户名,您可以通过运行以下命令获取系统上的用户列表:

        ls /home
        

        这是有效的,因为/home包含所有用户的主目录,并且用户的主目录名称与用户的名称相同。

    • 或者,如果您想设置/重置密码root

      由于您在rootshell 中,因此您可以使用passwd不带参数的命令来重置root密码:

      passwd
      

      但请看看这一页,这解释了为什么root不建议在 Ubuntu 中启用该帐户。

    • 或者,如果您想让用户成为管理员(这样他们就可以执行管理操作,包括运行命令rootsudo

      在 Ubuntu 12.04 及更高版本中(你可以运行lsb_release -r来查看你的 Ubuntu 版本,只要确保你运行它或者它chroot会告诉你什么版本的现场 CD有),运行:

      usermod -a -G sudo username

      在 Ubuntu 11.10 及更低版本中,管理能力由组成员身份授予,admin而不是由sudo组授予。因此,您需要运行:

      usermod -a -G admin username

      在这两种情况下,更换username使用您想要授予管理员权限的用户帐户的名称。

  10. 运行以下三个命令:

    exit
    sudo umount /mnt
    exit
    

    最后一个命令退出终端窗口。

  11. 单击屏幕右上角的电源图标并单击以重新启动系统关闭(然后点击重新开始在出现的对话框中。)请确保在系统再次启动之前移除 CD/DVD 或 USB 闪存驱动器,以便您可以进入硬盘上的 Ubuntu 系统。

    • 如果你运行的是较旧的 Ubuntu Live CD,其中有一个重新开始电源菜单中的选项,你应该点击它,而不是关闭

如果你根本无法使用已安装的 Ubuntu 系统

如果您无法登录以获取包含 Ubuntu 系统根文件系统的分区的设备名称,您可以在启动 Live CD 后找出答案。有几种方法可以做到这一点。我在这里介绍一种我认为最简单且最不容易出错的方法。(但是,您可能还对另一种方法

  1. 如果你还没有,请刻录 Ubuntu Live CD/DVD(Ubuntu视窗, 或者Mac OS X)或写入 Ubuntu Live USB 闪存驱动器(在Ubuntu视窗, 或者Mac OS X)。

  2. 从实时 CD/DVD/USB 启动计算机并选择无需安装即可试用 Ubuntu(不是安装 Ubuntu)。

  3. 打开 GParted。

    • 在 Unity 中执行此操作,这是大多数 Ubuntu 版本中的默认桌面环境,点击主页按钮(即屏幕左上角带有 Ubuntu 徽标的按钮)或按Super,也称为 Windows 键。然后输入gparted。GParted 将出现,您可以单击它。

    • Ubuntu 17.10 及更高版本使用 GNOME 3使用 GNOME Shell 而不是 Unity。要打开 GParted,请单击屏幕左下角出现的九点网格以打开应用程序面板。然后单击 GParted 图标。

      两张 GNOME 3 和 GNOME Shell 在 Ubuntu 17.10 实时环境中的屏幕截图(由 Videonauth 提供)并排放置,并添加了手绘标记以显示“应用程序面板”按钮的位置,以及 GParted 图标在应用程序面板中的样子。请注意,此图标标记为 GParted,因此无需通过图标的外观来识别它。
      特别感谢视频直播解释如何在 GNOME 3 中打开 GParted,以及提供这些截图。1

    • 非常旧的版本对于使用 GNOME 2 而不是 Unity 或 Unity 2D 界面的 Ubuntu,请点击顶部菜单打开 GParted系统行政GParted 分区编辑器

    • 其他 Ubuntu 版本与 Ubuntu MATE、Xubuntu 和 Lubuntu 一样,它们都有类似的嵌套菜单系统,您可以通过该系统在从实时 USB 或实时 CD/DVD 运行它们时访问 GParted。

  4. 现在,您可以以图形方式查看所有分区。如果您有多个驱动器,则可能需要在 GParted 右上角的下拉菜单中选择包含 Ubuntu 系统的驱动器。

  5. 包含 Ubuntu 系统根文件系统的分区很可能是 类型的大分区ext4(对于非常旧的 Ubuntu 系统,ext3)。通常只有一个ext4(或ext3)分区,或者只有一个大分区。否则,一个可能是 分区/(包含根文件系统,这是您想要的),另一个可能是 分区/home。因此,如果有两个大ext4ext3分区,您可以假设第一个(最左边显示)可能是包含系统根文件系统的分区。

    这可能是错误的,但不会造成任何损害这些说明如果你是。在其他一些情况下,除了本文中描述的操作之外,做出这种假设不一定是安全的。

  6. 记住或写下可能包含根文件系统的分区的设备名称。GParted 会向您显示此信息。它通常采用以下形式:/dev/sdXnX是小写字母,并且n是一个数字。

  7. 退出 GParted。

  8. 按照上面的说明进行操作(“如果您可以以非管理员用户身份登录“), 从...开始第 6 步

这些帖子最初改编自我在此 Launchpad 解答问题

1 功劳归于视频直播向我解释如何在 Ubuntu 17.10 实时环境中启动 GParted。我没有 GNOME 3,否则无法提供这些说明。他还提供了两个屏幕截图。(我只添加了丑陋的手绘箭头和圆圈。)

答案2

如果您需要更改 root 密码但不知道旧密码,则需要进入 root shell。启动计算机时,一旦 BIOS 屏幕消失(屏幕上显示计算机徽标),就开始按 键Shift直到出现 GRUB 菜单,如果此选项不起作用,则按 键Esc。(如果已配置为出现,则此步骤不是必需的。)

当您看到菜单时,选择最新内核(或您通常使用的内核)选项,然后选择下面的“恢复模式”选项。

它看起来应该是这样的:

在此处输入图片描述

这会将你带到如下所示的菜单:

在此处输入图片描述

接下来选择 Root 选项。

等待一切加载,直到进入 shell。现在开始好玩了。输入以下命令:

passwd your-username

代替your-username使用您的实际用户名。

如果您不确定您的用户名,您可以通过以下方式查看主文件夹中文件的名称:

cd /home

然后运行:

ls

这将显示您计算机上的用户的姓名。

现在输入我上面所述的命令:。因此,如果您的用户名是 jane,我会输入:passwd your-username

passwd jane

接下来,您将看到一个选项,让您输入新的 unix 密码。这是您输入密码的地方。它会要求您重新输入命令,然后在两次成功输入密码后,密码已更改。现在通过以下方式重新登录您的系统

reboot

如果在输入新密码时要求您输入 root 密码,这通常会有所帮助:

替代方法

如果在进入单用户模式时系统要求您输入 root 密码,请使用init=/bin/bash内核附加行,该行应将计算机引导到 bash 控制台,您可以在其中获得对/etc/shadow文件的读/写访问权限。然后,您可以passwd直接运行或编辑影子文件以输入一个空字符串。这允许您将计算机重新启动到其正常环境并以 root 身份登录,密码为空,然后运行程序passwd以设置 root 密码。这实际上只应在计算机与任何网络断开连接时执行。

(引自 Shawn Lee 在一篇文章下面列出。)

init=/bin/bash按照建议启动,请在启动时访问 GRUB 菜单,然后按e进入编辑器。将光标移动到以 开头的行linux,然后将光标移动到该行的末尾。输入文本

init=/bin/bash

然后F10按 启动。您应该进入纯文本模式的 root shell。文件系统将以只读方式挂载。要使文件系统可写,请输入命令

mount -o remount,rw /

然后你可以运行

passwd username

在哪里username是要设置其密码的用户名。完成后,您可以使用该reboot命令重新启动。


如果您需要更多信息,这些链接可以提供帮助:

答案3

如果设置了 root 密码而您忘记了它,但可以正常启动并可以使用 sudo,请从终端尝试此操作

sudo passwd -dl root

如果您混淆了普通密码(和 sudo)和 root 密码,则并不明显。

您提供的用于重置密码的链接应该可以正常工作。

相关内容