Root shell 无法帮助恢复对我丢失密码的管理员帐户的访问权限

san*_*rsh 6 grub2 password login

我丢失了管理密码。

我已经尝试过- 我知道进入 GRUB 菜单并进入 root(进入 root shell 提示符)并在那里设置密码的常规方法。在这里有很好的描述。更具体地说,我知道这种方法,并且在我丢失密码之前已经多次设置过密码。

我的问题- 现在我的问题是这个方法不起作用。当我下拉到 root shell 时,它会再次要求输入 root 密码,否则它将无法进行。我没有这个密码!那还有什么选择呢?

270*_*974 3

如果您可以从另一个系统(例如 Live CD)访问根分区,您可以root从那里进行编辑/etc/shadow;首先你必须chmod u+w shadow。找到 的条目root,它可能是第一个,看起来像这样:

root:$6$asdG0[..etc...]ae/:15666:0:99999:7:::
Run Code Online (Sandbox Code Playgroud)

删除前两个冒号之间的所有内容,最终得到:

root::15666:0:99999:7:::
Run Code Online (Sandbox Code Playgroud)

然后chmod u-w shadow。您现在可以重新启动系统并且root没有密码。您只需root在登录提示符处键入即可,它不会要求您输入。然后您可以使用passwd来设置一个。

编辑1

启动至实时媒体。打开终端。找出主磁盘的设备名称。sudo fdisk-l将列出所有分区。例如 /dev/sda1 将其安装在某处,以便我们可以使用它:

sudo mount /dev/sda1 /mnt
Run Code Online (Sandbox Code Playgroud)

然后更改目录

sudo cd /mnt/etc
Run Code Online (Sandbox Code Playgroud)

改变特权

sudo chmod u+w shadow
Run Code Online (Sandbox Code Playgroud)

像我写的那样编辑文件

root:$6$asdG0[..etc...]ae/:15666:0:99999:7:::
Run Code Online (Sandbox Code Playgroud)

root::15666:0:99999:7:::
Run Code Online (Sandbox Code Playgroud)

然后

u-w shadow
Run Code Online (Sandbox Code Playgroud)

重启