重置丢失的 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
内核参数 附加到您的引导加载程序的启动条目。 - 您的 root 文件系统现在以只读方式挂载,因此将其重新挂载为读写:
mount -n -o remount,rw /
。 - 使用 passwd 命令为 root 用户创建新密码。
- 通过键入
reboot -f
重新启动,并且不要再次丢失您的密码!
注意: 某些键盘可能无法通过此方法的 init 系统正确加载,您将无法在 bash 提示符下输入任何内容。如果发生这种情况,您将不得不使用另一种方法。
使用 LiveCD
使用 LiveCD 有几种方法可用:切换 root 并使用 passwd
命令,或通过直接编辑密码文件来擦除密码字段条目。可以使用任何具有 Linux 功能的 LiveCD,尽管要切换 root,它必须与您安装的架构类型匹配。这里我们仅描述如何使用 chroot 重置密码,因为手动编辑密码文件风险明显更高。
切换 root
- 启动 LiveCD 并挂载主系统的 root 分区。
- 使用
passwd --root MOUNT_POINT USER_NAME
命令设置新密码(不会提示您输入旧密码)。 - 卸载 root 分区。
- 重新启动,并输入您的新密码。