Ubuntu 忘记登录密码解锁教程
Tips:
1、本教程直针对实体机,不针对虚拟机。
2、最近使用Ubuntu 22.04.1 系统,由于忘记密码一直进不去,通过搜索网上教程,大多都是通过修改 GRUP引导,然后通过单用户模式进行修改,或者进入Recovery mode。但是在实际操作过程中发现,由于我的系统内核被升级过,/etc/default/grub 文件的 GRUB_TIMEOUT_STYLE默认值等于hidden,GRUB_TIMEOUT默认值等于0,导致无法进入启动选项,也无法通过网上的教程 按住 Shift+Esc进入,无奈探索一个新方法。
PS:最近通过各种搜索终于知道如何在GRUB_TIMEOUT_STYLE默认值等于hidden,GRUB_TIMEOUT默认值等于0情况下进入启动选项了,参考链接:Ubuntu启动时无法进入menu菜单选项解决方案。
3、此方法只针对那些想保留系统文件的用户,如果想直接重装系统的用户,直接重装系统即可,不必往下阅读。
4、此方法应该适用不同版本的Ubuntu系统,其他的Linux 操作系统本人暂未验证过,可以自行尝试【毕竟不同的Linux 系统的密码存储文件可能不太一样】,但是理论上大致方法应该相同。
破解教程
1、首先准备一个U盘、Ubuntu 22.04.1 版本的系统ISO镜像,通过UltraISO工具制作一个Ubuntu系统的启动盘。
Tips:
① 这个步骤主要目的就是通过启动盘的 Try Ubuntu 功能进入原来的系统盘,并读取和编辑原来被锁的系统盘内 etc 目录下 shadow 和 shadow~文件,如果有其他方式将原来的系统盘进行挂载并读取相关文件进行修改也是可行的。
②制作教程此处不再赘述,网上有很多教程,自行搜索。
2、当步骤 1 的准备工作完成之后,我们通过U盘启动盘进入系统,在启动界面选择 Try or Install Ubuntu 选项,如图
3、等待进入系统主界面,并选择 Try Ubuntu,并等待系统启动,如图:
4、将你原来的系统盘挂载到当前系统上,默认应该能在系统磁盘列表里面读取到,并查看到磁盘挂载的位置。
5、在你挂载的目录下,进入根目录下的 etc 目录,并使用管理员权限编辑 etc 目录下的 shadow 文件,如图:
**Tips:**这里的目录不是系统目录,而是你原来忘记密码的磁盘内根目录【把你原来系统盘当成磁盘或存储盘来看就行了】
cd etc/
sudo gedit shadow
打开 shadow 文件内容,每个人的内容信息可能有所差别,如下:
root:$y$j9T$Wi6q.fj7oZT5xde91j/YX0$XITZGHUSW4cYIgYkEy.vJGsEY3p7M0jdl6w7pgDf1q4:19703:0:99999:7:::
daemon:*:19213:0:99999:7:::
bin:*:19213:0:99999:7:::
sys:*:19213:0:99999:7:::
sync:*:19213:0:99999:7:::
games:*:19213:0:99999:7:::
man:*:19213:0:99999:7:::
lp:*:19213:0:99999:7:::
mail:*:19213:0:99999:7:::
news:*:19213:0:99999:7:::
uucp:*:19213:0:99999:7:::
proxy:*:19213:0:99999:7:::
www-data:*:19213:0:99999:7:::
backup:*:19213:0:99999:7:::
list:*:19213:0:99999:7:::
irc:*:19213:0:99999:7:::
gnats:*:19213:0:99999:7:::
nobody:*:19213:0:99999:7:::
systemd-network:*:19213:0:99999:7:::
systemd-resolve:*:19213:0:99999:7:::
messagebus:*:19213:0:99999:7:::
systemd-timesync:*:19213:0:99999:7:::
syslog:*:19213:0:99999:7:::
_apt:*:19213:0:99999:7:::
tss:*:19213:0:99999:7:::
uuidd:*:19213:0:99999:7:::
systemd-oom:*:19213:0:99999:7:::
tcpdump:*:19213:0:99999:7:::
avahi-autoipd:*:19213:0:99999:7:::
usbmux:*:19213:0:99999:7:::
dnsmasq:*:19213:0:99999:7:::
kernoops:*:19213:0:99999:7:::
avahi:*:19213:0:99999:7:::
cups-pk-helper:*:19213:0:99999:7:::
rtkit:*:19213:0:99999:7:::
whoopsie:*:19213:0:99999:7:::
sssd:*:19213:0:99999:7:::
speech-dispatcher:!:19213:0:99999:7:::
nm-openvpn:*:19213:0:99999:7:::
saned:*:19213:0:99999:7:::
colord:*:19213:0:99999:7:::
geoclue:*:19213:0:99999:7:::
pulse:*:19213:0:99999:7:::
gnome-initial-setup:*:19213:0:99999:7:::
hplip:*:19213:0:99999:7:::
gdm:*:19213:0:99999:7:::
ccore:$y$j9T$t3skzgnkJD0uTcZGXllcq.$aQzoidFNMLMawOk/coYuBWEvq0quKcj0u8.P0knKOR.:19703:0:99999:7:::
sshd:*:19724:0:99999:7:::
git:$y$j9T$VqsVum/Vd4XN/kG9ewrw31$Vco5XTSJZibXXS2vzEU/MVVVCDMu/xa7iu.R9bi6MF2:19810:0:99999:7:::
shadow 存储了 root 用户和其他用户的用户名,以及经过加密后的密码,我把root用户和我本地用户的用户名和密码信息单独拿出来,只需要将需要修改的用户的密码的加密信息给删除了,就可以将此用户密码设为空,多个用户操作相同,root 用户密码系统默认给的是任意值,将信息修改成 * 即可,修改完成后不要忘记保存,如下:
**Tips:**只需要删除或修改 用户名后面的两个冒号 “ : ” 中间的内容,其他的保持不变。
原来的root用户和加密后的密码信息
root:$y$j9T$Wi6q.fj7oZT5xde91j/YX0$XITZGHUSW4cYIgYkEy.vJGsEY3p7M0jdl6w7pgDf1q4:19703:0:99999:7:::
修改后:
root:*:19703:0:99999:7:::
原来的ccore用户和加密后的密码信息
ccore:$y$j9T$t3skzgnkJD0uTcZGXllcq.$aQzoidFNMLMawOk/coYuBWEvq0quKcj0u8.P0knKOR.:19703:0:99999:7:::
修改后:
ccore::19703:0:99999:7:::
6、因为系统会自动将 shadow 文件备份一个 名称为 shadow~ 文件【一般叫做影子文件】,所以我们还要将备份文件给替换掉,命令如下:
sudo cp shadow shadow~
7、完成上述操作后,重启你原来忘记密码的Ubuntu 系统,此时你的默认普通的账户的密码为空,root 用户密码是随机的,只需要在进入系统后重新设置 用户密码和 root 用户密码即可,如下:
设置普通用户密码:
sudo passwd 用户名
回车,输入新密码,并再次回车确认一次新密码
设置root 用户密码:
sudo passwd root
回车,输入新密码,并再次回车确认一次新密码