跳转到内容

重置 root 密码

来自 Arch Linux 中文维基
(重定向自Reset lost root password

本指南介绍了在遗忘 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. 重启并输入你的新密码。

参阅[编辑 | 编辑源代码]