跳转至

重置遗忘的用户密码

Important

此方法仅适用于你忘记了当前用户密码的情况!更改当前密码应通过桌面环境完成。

Warning

请自行斟酌是否按本指南操作,因为任何此类尝试都可能损坏你的系统。

编辑最新启动项的命令|690x351

  1. 重启设备。
  2. 在键盘上按 Esc 进入 GRUB 启动菜单。 a. 如果 Esc 按得太多,可能会进入 grub> 提示符。 b. 输入 exit 并按 Enter 可返回启动菜单。
  3. 在键盘上按 E 编辑最近的部署。

以 init=/bin/bash 启动|689x359

编辑 GRUB 提示,并在以 linux 开头的行末尾追加 init=/bin/bash。

重启|689x359

按 Ctrl+X 继续启动过程

进入 GRUB 命令行后:

  1. 临时挂载 SELinux

mount -t selinuxfs selinuxfs /sys/fs/selinux

  1. 加载 SELinux 策略

/sbin/load_policy

  1. 输入新密码(例如 passwd bazzite)

passwd [在此填入用户名]

  1. 同步

sync

  1. 重启

/sbin/reboot -ff

命令|690x334

你的用户密码现在应该已重置。

感谢 Colin Walters 提供的解决方案。

不起作用?

许多用户因旧习惯而忘记与 SELinux 相关的步骤。如果你完成了上述除 SELinux 步骤之外的所有操作,那么 /etc/shadow 文件将无法被任何进程读取或访问。

检查 /etc/shadow 的 SELinux 配置是否出问题的好方法是执行以下命令:

ls -Z /etc/shadow

ls -Z /etc/shadow|690x334

你应该也会看到 unlabeled_t。 现在你需要使用以下命令修复 /etc/shadow 的标签:

restorecon -v /etc/shadow

然后再次用 ls -Z /etc/shadow 检查结果,应显示为:

system_u:object_r:shadow_t:s0 /etc/shadow

现在系统已就绪,你可以使用 /sbin/reboot -ff 重启。