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