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 模式而不是禁用 SELinux。- 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> 字符串,例如:# dnf install kernel-doc $ less /usr/share/doc/kernel-doc-4.18.0/Documentation/admin-guide/kernel-parameters.txt