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


32

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

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

但是,然后我转到“ 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
请看到这个答案: askubuntu.com/questions/24006/...
cprofitt

那不起作用,它告诉我输入密码...
请删除我

这意味着这行linux /boot/vmlinuz-2.6.38 ...您是否设置了root密码?
23 93 26 35 19 57 3 89

@forestpiskie我尝试了该行,但是随后冻结了……什么也没发生。不确定是否设置了root密码;这不是我自己的计算机(帮助朋友)。
请删除我

您是否试图将自己入侵计算机?因为如果您不知道root密码和第一个用户密码,那会有点臭...
gajdipajti 2012年

Answers:


32

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

如果您已经可以使用Ubuntu系统(即使没有管理访问权限),这也是最简单的。但是,如果您做不到的话,这并不难。

  • 以我的经验,大多数最终被锁定在自己系统之外的Ubuntu用户都启用了自动登录,这就是他们忘记密码的方式(因为他们不必键入密码即可登录)。在您的情况下可能会出现这种情况,也可能不是,但是如果您可以先使用已安装的Ubuntu系统,我已经介绍了如何执行此操作,因为我认为这将对大多数阅读此文章的人有所帮助。

如果您可以以非管理用户身份使用已安装的Ubuntu系统

  1. 如果您还没有,请编写一个Ubuntu live USB闪存驱动器(在UbuntuWindowsMac OS X上),或刻录Ubuntu live CD / DVD(在UbuntuWindowsMac 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+ Alt+ T)。

  7. 运行以下命令:

    sudo mount /dev/sda1 /mnt

    替换/dev/sda1为包含Ubuntu系统的根文件系统的分区的设备名称(如果有)。

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

  8. 运行以下命令:

    sudo chroot /mnt
    

    为了能够重置密码,或者能够改变什么组用户的成员,这就是你需要做的,在chroot环境的目的。特别是,还需要安装其他文件系统一样/dev/dev/pts/sys,和/proc更复杂的 chroot程序,使您可以充分使用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或它会告诉你的是什么版本的live 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系统的根文件系统的分区的设备名称,则可以在引导实时CD之后将其找出来。有几种方法可以做到这一点。我在这里介绍我认为最容易且最不可能导致错误的那一个。(但是,您可能也对这种其他方法感兴趣。)

  1. 如果还没有,请刻录Ubuntu Live CD / DVD(在UbuntuWindowsMac OS X上)或编写Ubuntu live USB闪存驱动器(在UbuntuWindowsMac 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图标。

      在Ubuntu 17.10实时环境中,两个带有GNOME Shell的GNOME 3屏幕快照,由Videonauth贡献,并排放置,并添加了手绘标记以显示按钮在“应用程序”面板上的位置以及GParted的内容图标看起来像在“应用程序”面板中。 请注意,该图标标记为GParted,因此不必通过图标的外观来识别它。
      特别感谢Videonauth解释了如何在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向您显示了这一点。通常采用以下形式:where 是小写字母,是数字。/dev/sdXnXn

  7. 退出GParted。

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

这些帖子最初是根据我在Launchpad Answers问题中撰写的帖子#9改编而成。

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


谢谢。接受它是因为它解决了我遇到的问题(如果常规的“密码重置”选项不起作用,该怎么办)。由于我已经格式化了系统,因此不能完全确定这是否行得通,但是我相信这可以很好地工作。
请删除我

2
考虑到不同的情况,详细描述每个步骤,最重要的是解决了我在其他任何地方都找不到答案的问题,这使该答案成为迄今为止我在社区中见过的最佳答案。如果可以的话,我将投票100次!
Navid Vafaei

8

如果您需要更改root密码但不知道旧密码,则需要使用root shell。当您启动计算机时,BIOS屏幕消失(带有计算机徽标的屏幕)后,请开始点击Shift键,直到出现GRUB菜单为止;如果该选项不起作用,请点击Esc键。(如果已经配置为启动,则无需执行此步骤。)

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

它看起来应该像这样:

在此处输入图片说明

这将带您进入菜单,如下所示:

在此处输入图片说明

接下来,选择“根”选项。

等待并加载所有内容,直到进入shell。现在来了乐趣。输入以下命令:

passwd your-username

替换your-username为您的实际用户名。

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

cd /home

然后运行:

ls

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

现在,输入我上面所述的命令:。因此,如果您的用户名是简,我将输入: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命令重新启动。


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


2
问题在于,他设置了root密码,因此,除非他编写它,否则他不能进入root shell。但是他不知道。
gajdipajti 2012年

谢谢,但是提到的第一步无效。我尝试了第二个选项,但是在编辑grub并尝试启动后,屏幕仍然空白。计算机上没有关键数据,因此我选择最后对其进行格式化,这似乎是最简单的方法。
请删除我

1
现在的问题是,根文件系统需要首先安装,方法是使用重新挂载mount,或者使用网络选项
Wilf

4

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

sudo passwd -dl root

如果您得到的是普通(和sudo)密码,而根密码混淆了,这是不明显的。

您具有的重置passwd的链接通常可以正常工作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.