Linux忘记root密码

启用root用户的情况

启用了root用户时即可通过 grub 启动时的选项来进入拯救模式来进行修改密码

要重置忘记的 root 密码,你需要使用每个系统的不同方法。以下是 Arch、CentOS、Debian 和 Ubuntu 的步骤:

Arch Linux

  1. 引导到单用户模式:

    • 重启系统,在启动菜单中选择 Arch Linux 的启动项。
    • e 进入编辑模式。
    • 找到以 linux 开头的行,添加 singleinit=/bin/bash 到行末。
    • Ctrl + XF10 启动。
  2. 重置密码:

    • 进入终端后,使用命令 passwd 设置新密码。
    • 输入新密码并确认。
  3. 重启系统:

    • 输入 rebootexec /sbin/init 重启系统。

CentOS

  1. 引导到救援模式:

    • 重启系统,在 GRUB 菜单中选择启动项,按 e 编辑。
    • 找到以 linux16linux 开头的行,添加 rd.break
    • Ctrl + X 启动。
  2. 挂载根文件系统:

    • 输入 mount -o remount,rw /sysroot
    • 进入系统根目录 chroot /sysroot
  3. 重置密码:

    • 使用 passwd root 设置新密码。
  4. 更新 SELinux 标签:

    • 执行 touch /.autorelabel
  5. 重启系统:

    • 输入 exit 两次,然后 reboot

Debian 和 Ubuntu

  1. 引导到恢复模式:

    • 重启系统,在 GRUB 菜单中选择恢复模式(recovery mode)。
    • 进入到“Root Drop to Shell”选项。
  2. 挂载根文件系统为可写:

    • 输入 mount -o remount,rw /
  3. 重置密码:

    • 使用 passwd root 设置新密码。
  4. 重启系统:

    • 输入 reboot 重启系统。

未启用root用户的情况

未启用root用户时是无法进入维护模式的,会提示root用户已被锁定。这时只能借助于 Live CD 或引导另一个Linux系统来进行修改

修改后登录系统会提示密钥环不匹配

当通过拯救模式修改密码后,登录系统是会提示密码环不匹配,通过删除旧的密码环即可

rm -rf ~/.local/share/keyrings/login.keyring