Linux开机重置密码时做了什么?
在将控件传递给内核之前,rd.break参数会中断引导进程。此时,当您运行passwd命令执行密码重置时,关联的影子文件(/etc/shadow)将被修改为不正确的SELinux上下文。touch /.autorelabel命令在根目录下创建一个名为.autorelabel的隐藏文件。在下一次引导时,SELinux子系统将检测该文件,然后用正确的SELinux上下文重新标记该系统上的所有文件。在大型磁盘上,这一过程可能需要很长时间。
在文档中也提到了完全再标记方法的一个替代方案。首先,在编辑GRUB条目时使用参数rd.break enforcing=0。这将导致系统最终启动,SELinux设置为允许模式(警告,但不要阻止)。然后,继续以与前面相同的方式更改密码。继续启动过程,并允许系统出现。一旦出现,运行restorecon /etc/shadow将正确的SELinux上下文还原到/etc/shadow文件。然后,运行setenforce 1重新启用SELinux并开始使用系统.
