更改 SELinux 状态和模式

I. 临时禁用 SELinux

1.1 显示当前 SELinux 模式

1
getenforce

SELinux 状态以及正在使用的 SELinux 策略:

1
sestatus

1.2 临时禁用 SELinux

使用 setenforce 实用程序在 enforcing 模式和 permissive 模式之间切换。使用 setenforce 所做的更改在重新引导后不会保留。要更改为 permissive 模式,请输入 setenforce 0 命令。

1
setenforce 0

要更改为 enforcing 模式,请以 Linux root 用户身份输入 setenforce 1 命令。

1
setenforce 1

使用 getenforce 实用程序查看当前的 SELinux 模式:

1
getenforce

II. 切换到 permissive 模式

^28e792

使用以下步骤将 SELinux 模式永久改为 permissive。当 SELinux 是以 permissive 模式运行时,不会强制 SELinux 策略。系统可保持正常操作,SELinux 不会拒绝任何操作,而只是记录 AVC 信息,它们可用于故障排除、调试和 SELinux 策略改进。每个 AVC 在这个示例中仅记录一次。

2.1 先决条件

  • selinux-policy-targetedlibselinux-utilspolicycoreutils 软件包已安装在您的系统中。
  • 未使用 selinux=0enforcing=0 内核参数。

2.2 步骤

1、在您选择的文本编辑器中打开 /etc/selinux/config 文件,例如:

1
vi /etc/selinux/config

2、配置 SELINUX=permissive 选项:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# 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=permissive
# SELINUXTYPE= can take one of these two values:
#       targeted - Targeted processes are protected,
#       mls - Multi Level Security protection.
SELINUXTYPE=targeted

配置 SELINUX 值为👇

1
permissive

3、确保在下次 SELinux 重启时重新标记文件

1
fixfiles -F onboot

4、重启系统

1
reboot

2.3 验证

系统重启后,确认 getenforce 命令返回 Permissive

1
getenforce

III. 永久禁用 SELinux

⚠️ 警告:
禁用 SELinux 会降低您的系统安全性。避免使用 /etc/selinux/config 文件中的 SELINUX=disabled 选项来禁用 SELinux,因为这可能导致内存泄漏和竞争条件导致内核 panic。反之,应通过在内核命令行中添加 selinux=0 参数来禁用 SELinux。

禁用 SELinux 时,SELinux 策略不被加载 ; 它不会被强制执行,也不会记录 AVC 信息。

⚠️ 重要:
红帽强烈建议您使用 permissive 模式,而不是永久禁用 SELinux。如需有关 permissive 模式的更多信息,请参阅 切换为 permissive 模式

3.1 先决条件

已安装 grubby 软件包:

1
rpm -q grubby

3.2 步骤

  1. 将您的引导装载程序配置为在内核命令行中添加 selinux=0
1
sudo grubby --update-kernel ALL --args selinux=0
  1. 重启您的系统:
1
reboot

3.3 验证

重新引导后,确认 getenforce 命令返回 Disabled :

1
getenforce

IV. 参考文档

Red Hat Enterprise Linux 9: 使用 SELinux