重置 root 密码 - Arch Linux 中文维基

跳转到内容

# 重置 root 密码

来自 Arch Linux 中文维基
翻译状态：

- 本文（或部分内容）译自 Reset lost root password，最近一次同步于 2025-01-09，若英文版本有所更改，则您可以帮助同步与翻译更改的内容。
- 您可以在 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 创建新的管理员密码。
4. 通过 `reboot -f` 重启，不要再次忘记你的密码。

注意：使用此法时有的键盘不能被初始系统正确加载，可能无法在 bash 提示符后进行输入。如果出现这种情况，你只能使用其他方法。

## 使用 LiveCD

通过 LiveCD 可以使用好几种方法：chroot 并使用 `passwd` 命令，或者编辑密码文件直接删掉密码项。除使用 chroot 时架构必须与已安装的系统匹配外，可以使用任何 Linux 的 LiveCD。这里仅介绍 chroot 方式，因为这个方法更不容易出错。

### Change Root

1. 启动 LiveCD, 挂载主系统的根文件系统。
2. 然后通过下列命令重置密码（不会出现要求输入旧密码的提示）：

    passwd --root 根文件系统挂载点 用户名

1. 卸载根文件系统。
2. 重启并输入你的新密码。

## 参阅

- 如何用 Knoppix 重置忘记的密码
- 启动早期 Debug Shell

分类：​

- 系统恢复
- 安全

重置 root 密码
添加话题