当我们在 Red Hat Enterprise Linux 中重置 root 密码时,“touch /.autorelabel”会做什么?

Nig*_*oon 7 rhel

在 RHEL 中,在我们执行 rd.break 和所有程序并执行 a 之后touch /.autorelabel,/.autorelabel 会做什么?

Hax*_*iel 15

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 并开始使用系统。