重置 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. 您的根文件系统现在以只读方式挂载,因此将其重新挂载为读/写:mount -n -o remount,rw /
  3. 使用 passwd 命令为 root 用户创建新密码。
  4. 输入 reboot -f 重启,不要再忘记您的密码!
注意: 某些键盘可能无法被使用此方法的 init 系统正确加载,您将无法在 bash 提示符下输入任何内容。 如果是这种情况,您将不得不使用另一种方法。

使用 LiveCD

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

Change root

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

参见