Linux重置root密码
本教程来自“十四五”职业教育国家规划教材——Linux网络操作系统项目教程
进入紧急救援模式
首先先重启一下,使用物理按键或者reboot
,在引导页面按e进入内核编辑界面。
在最后添加:
1
rw rd.break
CTRL+X退出后进入紧急救援模式,依次进行下面操作:
1
2
3
4
5
6
chroot /sysroot
passwd
输入两次密码,注意无提示,直接输入即可
touch /.autorelabel
exit
reboot
重启就可以使用新的密码登录了,妥了!
附录:在重置Red Hat Enterprise Linux的root密码时,“touch /.autorelabel”命令是做什么的?
1
2
3
`rd.break`参数在控制权传递给内核之前中断引导过程。此时,当你运行`passwd`命令进行密码重置时,相关的影子文件(/etc/shadow)会被修改为错误的SELinux上下文。`touch /.autorelabel`命令在根目录下创建一个名为`.autorelabel`的隐藏文件。在下次启动时,SELinux子系统会检测到这个文件,然后重新标记系统中所有文件的正确SELinux上下文。在大型磁盘上,这个过程可能需要相当长的时间。
文档中还提到了一种替代完全重新标记的方法。首先,在编辑GRUB条目时使用参数`rd.break enforcing=0`。这将导致系统最终以SELinux设置为宽容模式(警告但不阻止)启动。然后,按照之前相同的方式更改密码。继续引导过程并允许系统启动。一旦系统启动,运行`restorecon /etc/shadow`以恢复`/etc/shadow`文件的正确SELinux上下文。然后,运行`setenforce 1`以重新启用SELinux并开始使用系统。
本文由作者按照
CC BY 4.0
进行授权