我们知道,SELinux 是预先配置的,可以在不进行任何手动配置的情况下使用 SELinux 功能。然而,一般来说,预先配置的 SELinux 设置很难满足所有的 Linux 系统安全需求。

SELinux 配置只能有 root 用户进行设置和修改。配置和策略文件位于 /etc/selinux 目录中,主配置文件位 /etc/selinux/config 文件,该文件中的内容如下:

[root@localhost ~]# vim /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=enforcing
#指定SELinux的运行模式。有enforcing(强制模式)、permissive(宽容模式)、disabled(不生效)三种模式
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
#指定SELinux的默认策略。有 targeted(针对性保护策略,是默认策略)和 mls(多级安全保护策略)两种策略

主配置文件中,除去以‘#’符号开头的注释行,有效配置参数仅有 2 行。其中,SELinux=enforcing 为 SELinux 默认的工作模式,有效值还可以是 permissive 和 disabled;SELINUXTYPE=targeted 用于指定 SELinux 的默认策略。

有关 SELinux 3中工作默认的介绍,可以阅读《SELinux的工作模式》一节;有关 SELinux 策略,可阅读《SELinux Targeted、MLS和Minimum策略》一节。

这里需要注意,如果从强制模式(enforcing)、宽容模式(permissive)切换到关闭模式(disabled),或者从关闭模式切换到其他两种模式,则必须重启 Linux 系统才能生效,但是强制模式和宽容模式这两种模式互相切换不用重启 Linux 系统就可以生效。这是因为 SELinux 是整合到 Linux 内核中的,所以必须重启才能正确关闭和启动。而且,如果从关闭模式切换到启动模式,那么重启 Linux 系统的速度会比较慢,那是因为需要重新写入安全上下文信息。