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