linux忘记root账号密码情况下,采用单用户模式重置密码
之前自己的虚拟机不小心把账号锁住了,想利用root账号解锁,但是root账号密码忘记了,这就尴尬了,虽然不是生产环境,但是那是自己整个的开发测试环境!所以查了一些资料这里做个总结。
一般的,我们修改密码,都是用passwd命令,但是这个前提是我们已经登录了系统,并且具备root权限,但是如果我们没有登录系统,忘了root账号密码,怎么重置呢?
我们可以利用单用户模式来重置密码。(我这里是Ubuntu20.04,其他linux发行版都差不多)
1. 开机或者重启,在开机出现品牌 Logo 或黑屏时,立即长按 Shift 键(传统 BIOS)或频繁按 Esc 键(UEFI 启动),直到出现 GRUB 引导菜单。(查一下或者多试几遍就好了,我这里是一直按住Shift键)

2. 使用方向键选中第一项 “Ubuntu”(不要选 Advanced options),不要按Enter,要按e键进入编辑模式。

3. 找到以linux开头的行,在行末添加single或init=/bin/bash

4. 按 Ctrl + X 或 F10 启动系统。 系统将引导进入救援模式(单用户模式),最终你会获得一个 root 权限的 shell 提示符。

5. 这就相当于我们登录了root账号,可以做任何你想做的事了,比如修改密码,解锁用户等
# 修改密码
passwd test
# 解锁用户
passwd -u test
# 其他操作...
注意,执行这些操作的时候可能会失败,我们执行一遍这个命令就好了:mount -o remount,rw /

另外,修改完成之后可以用sync命令同步一下,将缓冲区数据刷进磁盘(我这里修改密码和解锁用户貌似不刷也可以)。
6. 退出单用户模式
# 关机
shutdown -r now
# 重启
reboot
# 强制重启
echo 1 > /proc/sys/kernel/sysrq
echo b > /proc/sysrq-trigger
上面命令从上到下都试一下,有可能执行不了,比如我这里

注:如果后续开机后还是进入单用户模式,可以从上面第3步添加的添加single或init=/bin/bash在不在,在的话就删除,然后重启
总结
单用户模式是一个强大的工具,主要用于重置密码、修复文件系统或排查启动故障,所以这里只是一个简单的解锁用户修改密码的操作,如果你有需求,可以用来处理很多问题。

浙公网安备 33010602011771号