亲身经历:当我在凌晨3点忘记Linux root密码时…
上周部署服务器到凌晨,第二天睡醒发现root密码怎么输都不对——这可能是每个运维人都经历过的噩梦。今天我就把几种实测有效的解决方案分享给大家,记得收藏备用!
方法一:单用户模式修改(物理机适用)
这是我第一次遇到这种情况时用的方法,需要物理接触服务器:
- 重启机器,在GRUB界面按e进入编辑模式
- 找到
linux
开头的行,在行尾添加init=/bin/bash
- 按Ctrl+X启动,会直接进入root shell
- 执行
mount -o remount,rw /
挂载文件系统为可写 - 用
passwd
修改密码后记得sync
同步
# 完整命令示例
mount -o remount,rw /
passwd root
sync
exec /sbin/init
⚠️ 注意:某些发行版可能需要额外挂载/boot
分区,我第一次就栽在这个坑里。
方法二:使用Live CD救援(云服务器慎用)
对于没有物理接触权限的机器(比如某些云主机),我推荐:
- 使用发行版ISO进入救援模式
- 挂载原系统分区到
/mnt
- 通过
chroot
切换环境后修改密码
# Ubuntu/Debian示例
mount /dev/sda1 /mnt
chroot /mnt
passwd root
有次给客户处理问题,发现他们的系统用了LVM,这时候需要先vgchange -ay
激活卷组,这个细节很容易被忽略。
方法三:妙用sudo权限(如果有普通用户)
如果你还记得某个有sudo权限的普通用户密码,可以这样曲线救国:
sudo su -
passwd root
我习惯在部署新服务器时,专门创建一个备用管理员账号,就是预防这种情况。
预防胜于治疗:我的密码管理心得
经历过几次深夜救火后,我总结了几条经验:
- 使用
pwgen
生成复杂密码并加密保存 - 重要服务器配置SSH密钥登录+二次验证
- 定期测试备用恢复方案是否有效
- 考虑部署像FreeIPA这样的集中认证系统
最后提醒:修改密码后建议更新所有自动化脚本和Ansible Playbook中的凭据,别问我怎么知道的😅
太有用了!上周我也遇到同样的问题,搞到凌晨四点才解决😭