我忘记了用户名,无法登录


16

我的朋友在我的计算机上安装了Linux Mint 17.3 Cinnamon 64位。好吧,我忘记了用户名,所以我在网上搜索了“ forgot username linux”,来到了这里。

我得到了我在GRUB的第一个项目上打“ e”的建议。建议的下一部分说,寻找以KERNAL开头的行。现在,这里变得有趣了。我没有在其中找到与KERNAL对应的行。但是,我确实找到了以LINUX开头的一行。

未编辑的完整行显示为:

linux        /vmlinuz-3.19.0-32-generic root=UUID=0c031f3a-81ae-4c33-06cc--c82a855736d1 ro  quiet splash $vt_handoff

然后建议看和编辑说splash quietsingle。现在,如果您在上面注意到,它会显示quiet splash而不是splash quiet。所以我想我将编辑quiet splashsingle

现在,它要求输入root密码。有人可以帮忙吗?我想我需要一张Live CD。


30
您需要注意阅读的内容。它永远不会读“ KERNAL”,因为这不是单词的拼写方式。(如果您确实找到了一个说“ KERNAL”的教程,那就抛弃它。)请注意,它也不会说“ KERNEL”,因此,如果您找到了一个说“ KERNAL”的教程,那么您也应该抛弃它。
吉尔(Gilles)'所以

9
在实时CD上启动,安装硬盘并找到/ etc / password。您将可以在那里看到您的用户名。
托尔比约恩Ravn的安徒生

14
@ThorbjørnRavnAndersen不是/etc/passwd吗?
恢复莫妮卡

5
@Angew通常,是的。(这就是为什么评论答案几乎被普遍认为是不良形式的原因。没有简单的方法可以解决该问题。)
CVn

3
Errrm,您问过您的朋友,谁为您安装了它?
Mawg说恢复Monica

Answers:


35

确切的说,当您替换quiet splashsplash quiet(顺序无关紧要)时,将single取决于分布。大多数发行版都要求输入root密码。

如果您忘记了root密码,或者只想以最简单的方式引导,则可以用替换quiet splash(并$vt_handoff为此)init=/bin/bash。这条线应该看起来像

linux /vmlinuz-… root=… ro init=/bin/bash

部件之间的空白量无关紧要,只要在以前有过的地方至少留出一个空格即可。我上面替换的部分确实很重要,您必须保留之前的内容。删除除前导词linux,其后的词root=…和之外的所有内容ro,然后添加init=/bin/bash

引导时,您将获得以root身份运行的bash命令行。当您具有物理访问权限时,唯一可能阻止您进入的安全性是加密。(如果系统具有全盘加密,则需要输入加密密码。)

在此命令行中,运行以下命令:

mount -o remount,rw /
mount /proc

然后,您可以查看和修改用户数据库。主用户数据库文件是/etc/passwd。它包含用户名(用于物理用户和系统帐户),但是密码在另一个文件中/etc/shadow。这两个文件在某种程度上都是人类可读的。但是,您无法恢复密码。如果您忘记了密码,则只能更改它。

以下命令列出了具有密码的帐户:

grep -v ':[*!]:' /etc/shadow

(请仔细输入,它对标点符号非常敏感。)每行的第一部分(第一个:符号之前)是用户名。

如果要更改帐户密码,请运行

passwd rob

rob用户名在哪里。

记下用户名并根据需要更改密码后,运行

mount -o remount,ro /
reboot

6
OP忘记了他们的用户名,但没有透露任何密码。对于这种用例,cat /etc/passwd可能就足够了。无需以读写方式重新挂载根文件系统,也无需运行passwd。基本上,如果OP知道他们的密码但以某种方式忘记了他们的用户名,那么从“在此命令行,运行...”开始的所有内容都可以用“运行”代替,cat /etc/passwd在第一个字段中寻找一个合理的名称,然后运行reboot并请尝试使用该名称进行登录”(有关此操作的详细说明,因为我的空白空间不足)。
CVn

同样,在某些系统上,挂载将需要-n开关。
rackandboneman

14

按着这些次序:

  1. 从现场CD引导
  2. 在现场环境中打开终端
  3. 运行command lsblk,您将获得驱动器和分区的列表。其中之一应该是安装Linux mint的根分区(sdxn,x是字母,n是数字?)。
  4. 将根分区挂载到空目录
  5. etc/passwd在安装的分区中打开文件。这应该在其中一行中包含您的用户名,您应该能够识别它。

0

http://www.microhowto.info/howto/reset_a_forgotten_root_password_using_a_live_distribution.html

那篇文章似乎很好地涵盖了它。是的,您需要现场CD。

在文章中,他为您提供了另一种选择,并且他指出了一种非常危险的方法,可以直接编辑密码文件。遵循他的建议,请勿尝试。

逐字复制他的方法是不值得的,因为它的解释性和完整性很好,并且在执行所有步骤时都非常冗长,每个步骤都有代码示例。

这并不难,只要紧紧遵循指示即可。

基本上,您在要更新的系统上启动live cd,然后在要更新的系统上挂载根文件系统,将chroot挂载到该挂载点,然后使用passwd更改密码。听起来可能令人生畏,但实际上并非如此。请注意,某些系统具有/ mnt,而其他系统具有/ media,默认情况下,仅使用创建装载目录时Live CD附带的那个介质就可以了,这根本不重要,这只是您要在以下情况下使用的路径您将chroot插入要尝试更新密码的系统。

顺便说一下,许多现场CD都会为您提供该命令的root用户(我想就是这样,已经有一段时间了,呵呵):

sudo su -

您需要是root用户才能在实时CD上执行这些操作,因此只需检查实时CD文档,了解它如何允许root用户登录实时CD上的shell。


感谢大家。我会告诉你会发生什么。还有一个问题:我是否应该启动一个新线程,还是应该使用另一个线程?
罗布·里奇

这取决于是否逐字询问相同的问题。我没有搜寻,应该搜寻。但是我想说的是,如果您进行搜索或尝试了一下却没有找到,那么附加到现有线程上可能是不合适的。Mod可以确定它是否重复。我喜欢您的问题,因为尽管我从未丢失密码,但很高兴看到如果我忘记了密码,恢复密码将是多么容易,因此,就我而言,感谢您提出问题。
Lizardx
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.