重置 root 密码
外观
本指南介绍了在遗忘 root 密码后,重置密码的几种方法。
警告: 攻击者可以使用以下部分方法攻入系统。除非使用静态数据加密,否则无论系统和密码有多安全可靠,只要攻击者可以物理接触设备,就能启动到其它系统并导出数据。
使用 sudo[编辑 | 编辑源代码]
如果你安装了 sudo,并对 wheel
用户组或其它你记得密码的用户授予了权限,那可以使用 sudo passwd root
命令修改 root 密码。
使用 debug shell[编辑 | 编辑源代码]
- 将
systemd.debug_shell
附加到内核参数。 - 系统将会正常启动,但同时会启动
debug-shell.service
服务,并在tty9
开启一个 root shell(/bin/sh
),按下Ctrl+Alt+F9
可以进行访问。 - 使用 passwd 命令为 root 用户创建新密码。
- 完成后,停止
debug-shell.service
。
用 Bash 作为 Init[编辑 | 编辑源代码]
- 将
init=/bin/bash
内核参数附加到启动加载器的启动项。 - 根文件系统应该是只读挂载,需要以可读写模式重新挂载:
mount -n -o remount,rw /
- 用 passwd 创建新的管理员密码。
- 通过
reboot -f
重启,不要再次忘记你的密码。
注意: 使用此法时有的键盘不能被初始系统正确加载,可能无法在 bash 提示符后进行输入。如果出现这种情况,你只能使用其他方法。
使用 LiveCD[编辑 | 编辑源代码]
通过 LiveCD 可以使用好几种方法:chroot 并使用 passwd
命令,或者编辑密码文件直接删掉密码项。除使用 chroot 时架构必须与已安装的系统匹配外,可以使用任何 Linux 的 LiveCD。这里仅介绍 chroot 方式,因为这个方法更不容易出错。
Change Root[编辑 | 编辑源代码]
- 启动 LiveCD, 挂载主系统的根文件系统。
- 然后通过下列命令重置密码(不会出现要求输入旧密码的提示):
passwd --root 根文件系统挂载点 用户名
- 卸载根文件系统。
- 重启并输入你的新密码。