ubuntu 恢复模式下设置的 root 密码不起作用

ubuntu 恢复模式下设置的 root 密码不起作用

我使用的是从 19.04 升级而来的 19.10。操作系统是从 https://www.osboxes.org/ubuntu/ 下载的图像是 19.04,我已将其升级到 19.10。升级过程中出现了一些问题,我设法解决了。在 vmware 中从 19.04 升级到 19.10 后,ubuntu 卡在启动时 [结束内核恐慌未同步:VFS:无法在块 (0,0) 上挂载根文件系统]

默认密码是https://www.osboxes.org/faq/what-are-the-credentials-for-virtual-machine-image/ 我有一个默认管理员帐户 osboxes.org,我删除了它并创建了一个名为 debian 的新用户(这是我在从 19.04 升级到 19.10 后执行的)在升级前使用机器期间,我可能重置了我忘记的 root 密码,升级后我删除了原始用户帐户 osboxes.org。我创建了一个新的用户名:debian,我也忘记了它的密码。所以我想到了重置 root 密码,如这里所述 https://md3v.com/linux-give-root-password-for-maintenance-lost-password
一切都很顺利,我能够重置 root 密码。现在,当我尝试从 Gnome 界面以 root 身份登录时,更新后的密码不被接受,因此我被锁定了。我该如何摆脱这种情况?我也没有看到任何错误消息。我将 root 密码设置为 debian,但这不起作用。

答案1

图形化不支持 root 登录。这与一般的 root 登录不同,启用后可以正常工作,但我们通常不鼓励使用它们,因为它们sudo可以给你相同的权力并且具有一些优势(见下文)。

阻止您以 root 身份以图形方式登录的具体机制(假设您正确输入了 root 的密码)是您的显示管理器配置为不允许他们这样做。您可以尝试重新配置它以允许它(您的显示管理器可能是 GDM)。但即使您这样做,图形 root 登录也可能有效非常糟糕,甚至根本没有,因为这不是 Ubuntu 中支持或测试的用例。

还应避免使用图形根登录,因为它们涉及不必要地以 root 身份运行大量程序。即使它们运行完美,用户仍然应该在任何情况下都不要使用它们。(这就是为什么没有采取任何措施让它们在 Ubuntu 中运行。)

当您以图形方式登录时,您应该以非 root 用户身份进行登录。当--如果--您以 root 身份登录,您应该,并且,无需图形化操作。虽然您可以使用为 root 设置密码的相同方法来为其他用户设置密码,但您不必这样做。由于您已启用 root 登录,因此您可以高效地为非 root 用户设置密码,而无需重新启动:

  1. Ctrl按+ Alt+切换到基于文本的虚拟控制台F2

    (一般来说,Ctrl++切换到虚拟控制台。当你要切换Alt的虚拟控制台Fnttyn是基于文本的,您可以Ctrl从此组合键中省略,但这不是必须的。

  2. 输入用户名和您为 root 设置的密码进行登录root。这是非图形登录。根据您提供的信息,没有理由认为此操作会失败。

  3. 运行为某些非 root 用户帐户设置密码passwd useruser。 代替user使用实际的用户名。

    或者运行创建一个新用户adduser useruser。输入所需信息。真正重要的是密码,尽管大多数人也希望在姓名字段中输入一些信息。

  4. 切换回 GUI 正在运行的虚拟控制台。这通常是tty7,因此请按Ctrl+ Alt+ F7

  5. 以您设置密码的用户身份登录。

由于您已启用 root 帐户,因此您可以su在终端中运行以获取 root shell,然后以 root 身份运行命令。如果您希望将其用作初始登录 shell,请使用。您从或su -获得的 shell 可以持续任意长的时间(即,直到您在其中运行或以其他方式退出),但最好仅将其用于非 root 用户无法直接执行的管理任务。以 root 身份运行单个命令,而不是启动 shell。(当susu -exitsu -c 'some-command'some-command只是一个单词,即当没有命令行参数时,可以省略引号。)使用 时su,输入 root 的密码,就像以 root 身份登录时一样。每次运行 时都必须输入该密码su


照这样说,sudopkexec-- 而不是 root 登录和su-- 是在 Ubuntu 上执行管理操作的一般推荐方式。我建议您考虑将非 root 用户添加到sudo组(现有用户或新用户),这使该用户成为管理员。然后该用户可以使用sudo(和pkexec)以 root 身份运行命令。执行此操作的一种方法是在上述步骤 3 中运行。或者也许您现有的非 root 用户帐户已在组中;您可以运行以进行检查。usermod -a -G sudo usersudogroups user

要以 root 身份运行命令sudo,您通常会使用。即使sudo some-commandsome-command由多个单词组成,因此不需要(也不应该)用引号引起来。这是sudo比 更简单的方法之一su -c

您也不必每次都输入密码;相反,您只需要在最近几分钟sudo没有使用过的终端中使用密码即可。这样,只在需要时以 root 身份运行命令会更有效率,因为您可以将命令与其他命令交错,而不必像使用而不是 那样多次输入密码,也不必像以前获取 root shell那样以 root 身份运行输入到该终端的所有命令。sudosudosu -csudosu

如果你想要一个 root shell,您可以使用 获取一个sudo -s,它与您从 获取的非常相似su,或者sudo -i,它与您从 获取的几乎完全相同su -

当您使用时sudo,您输入你的密码,而不是 root 的密码。因此,root 不需要设置密码;root 帐户可以被“禁用”,但您仍然可以使用 以 root 身份运行命令sudo

如果你决定完全切换到这个推荐的方法——也就是说,如果你以大多数 Ubuntu 用户(以及相当一部分 Debian 用户)的方式管理系统——那么你可以重新禁用 root 登录运行sudo passwd -dl root。这将阻止您以 root 身份登录或使用 成为 root su,但您仍然可以使用 成为 root sudo,包括使用sudo -i

相关内容