原理
linux启动顺序
- 根据引导加载内核、initramfs(临时操作系统)
因为linux的密码存放于/etc/shadow文件
只要在系统挂盘前中断加载,就可以不加载密码而进入临时OS。进而跳过密码进行挂盘,对密码文件进行修改
重启机器
在控制台或VNC界面登录机器,重启,进入内核选择界面,按e进入grub参数编辑界面


修改grub引导
在内核(vmliz xx)加载命令的结尾加一个空格并插入
rd.break console=tty0
# rd.break: 插入中断
# console=tty0: 系统回显内容打印到控制台界面

按ctrl +x,启动系统
系统启动后为临时系统

挂载磁盘,切换根目录
启动后系统盘为只读,以读写的方式重新挂载系统盘,并将根目录切换到系统盘
# 重新以读写方式挂载系统盘
mount -o remount,rw /sysroot
# 切换根目录
chroot /sysroot

修改root密码
以明文非交互形式修改密码,避免输错
以修改为Centos@123为例
echo'Centos@123' | passwd --stdin root

生成标签文件
当selinux是强制状态时,如果不手动生成标签文件,系统重启后密码文件会被恢复。修改后的密码不生效
如果不清楚系统当前selinux状态,建议不要跳过生成标签文件的步骤,按命令执行即可
touch /.autorelabel

重启机器
输入两次exit退出临时系统后,系统自动重启

验证
系统再次重启后,使用修改后的密码可以登录
