重置丢失的 root 密码

来自 ArchWiki

本指南将向您展示如何重置遗忘的 root 密码。列出了几种方法来帮助您完成此操作。

警告: 攻击者可能会使用下面提到的一些方法来入侵您的系统。无论操作系统多么安全,密码多么强大,物理访问都相当于加载备用操作系统并暴露您的数据,除非您使用静态数据加密

使用 sudo

如果您已安装 sudo 并为 wheel 组或您记得密码的用户配置了权限,则可以通过运行 sudo passwd root 来更改 root 密码。

使用 debug shell

  1. systemd.debug_shell 附加到内核参数
  2. 这将执行正常启动,但启动 debug-shell.service,它在 tty9 上运行 root shell (/bin/sh)。按 Ctrl+Alt+F9 访问它。
  3. 使用 passwd 命令为 root 用户创建新密码。
  4. 完成后,停止 debug-shell.service

使用 bash 作为 init

  1. init=/bin/bash 内核参数 附加到您的引导加载程序的启动条目。
  2. 您的 root 文件系统现在以只读方式挂载,因此将其重新挂载为读写:mount -n -o remount,rw /
  3. 使用 passwd 命令为 root 用户创建新密码。
  4. 通过键入 reboot -f 重新启动,并且不要再次丢失您的密码!
注意: 某些键盘可能无法通过此方法的 init 系统正确加载,您将无法在 bash 提示符下输入任何内容。如果发生这种情况,您将不得不使用另一种方法。

使用 LiveCD

使用 LiveCD 有几种方法可用:切换 root 并使用 passwd 命令,或通过直接编辑密码文件来擦除密码字段条目。可以使用任何具有 Linux 功能的 LiveCD,尽管要切换 root,它必须与您安装的架构类型匹配。这里我们仅描述如何使用 chroot 重置密码,因为手动编辑密码文件风险明显更高。

切换 root

  1. 启动 LiveCD 并挂载主系统的 root 分区。
  2. 使用 passwd --root MOUNT_POINT USER_NAME 命令设置新密码(不会提示您输入旧密码)。
  3. 卸载 root 分区。
  4. 重新启动,并输入您的新密码。

参见