Red Hat Training

A Red Hat training course is available for RHEL 8

2.6. 在引导时更改 SELinux 模式

在引导时,您可以设置几个内核参数来更改 SELinux 的运行方式:

enforcing=0

设置此参数可让系统以 permissive 模式启动,这在进行故障排除时非常有用。如果您的文件系统被破坏,使用 permissive 模式可能是唯一的选择。在 permissive 模式中,系统将继续正确创建标签。在这个模式中产生的 AVC 信息可能与 enforcing 模式不同。

在 permissive 模式中,只报告来自于同一拒绝的一系列操作的第一个拒绝信息。然而,在 enforcing 模式中,您可能会得到一个与读取目录相关的拒绝信息,应用程序将停止。在 permissive 模式中,您会得到相同的 AVC 信息,但应用程序将继续读取目录中的文件,并为因为每个拒绝额外获得一个 AVC。

selinux=0

这个参数会导致内核不载入 SELinux 构架的任意部分。初始化脚本会注意到系统使用 selinux=0 参数引导,并涉及 /.autorelabel 文件。这会导致系统在下次使用 SELinux enabled 模式引导时自动重新标记。

重要

红帽不推荐使用 selinux=0 参数。要调试您的系统,首选使用 permissive 模式。

autorelabel=1

这个参数强制系统使用类似以下命令的重新标记:

# touch /.autorelabel
# reboot

如果文件系统中包含大量错误标记的对象,以 permissive 模式启动系统,使 autorelabel 进程成功。

其他资源

  • 有关 SELinux 的其他内核引导参数,如 checkreqprot,请查看由 kernel-doc 软件包安装的 /usr/share/doc/kernel-doc- <KERNEL_VER>/Documentation/admin-guide/kernel-parameters.txt 文件。使用安装的内核的版本号替换 <KERNEL_VER> 字符串,例如:

    # yum install kernel-doc
    $ less /usr/share/doc/kernel-doc-4.18.0/Documentation/admin-guide/kernel-parameters.txt