如果您可以从另一个系统(例如 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)
重启