如何在 RHEL系列操作系统中禁用 SELinux?
[scode type="blue"]
Security Enhanced Linux(SELinux)实现强制访问控制(MAC)。每个进程和系统资源都有一个特殊的安全性标签,称为 SELinux 上下文(context)。SELinux 上下文有时被称为 SELinux 标签,它是一个提取系统级别细节并专注于实体的安全属性的标识符。这不仅提供了在 SELinux 策略中引用对象的一个一致方法,而且消除了在其他身份识别系统中可能存在的模糊性。例如,某个文件可以在使用绑定挂载的系统中有多个有效的路径名称。
SELinux 策略在一系列规则中使用这些上下文,它们定义进程如何相互交互以及与各种系统资源进行交互。默认情况下,策略不允许任何交互,除非规则明确授予了相应的权限。
但是在特点情况下,一些老旧的应用程序或第三方软件可能与SELinux的策略不兼容。这些应用程序可能无法正常运行,或者会出现权限问题。例如,某些数据库软件或Web服务器软件在SELinux强制模式下可能会因为权限不足而无法启动或访问必要的资源
[/scode]
禁用 SELinux
查看当前SELinux状态
首先在操作之前我们需要先看一下 SELinux的状态,使用getenforce命令查看
SELinux有三种模式
Enforcing 模式:SELinux 处于强制模式,Enforcing 模式也是 SELinux 的默认模式,也是最严格的安全模式,在这种模式下,SELinux 会强制执行其安全策略,限制进程和用户的行为。
Permissive 模式:不强制执行安全策略,仅记录违规行为,适用于测试和调试阶段。
Disabled 模式: 禁用模式,关闭 SELinux功能,不记录也不会拦截。
修改启动配置以禁用SELinux
使用 grubby 禁用 SELinux(推荐)
先决条件:已安装 grubby 软件包
grubby 是一个用于管理 Linux 系统引导加载程序(Bootloader)配置的CLI工具,主要用于更新和查看 GRUB、GRUB2、ZIPL 等引导程序的配置文件,直接修改配置文件虽然灵活性更高,但风险也更高,这里推荐大家用 grubby 进行操作。
grubby --update-kernel=ALL --args="selinux=0"这个命令会将selinux=0参数添加到所有内核的启动参数中(
重启后生效
)
修改 配置文件以禁用 SELinux(已弃用)
这个是最经典的办法,修改/etc/selinux/config 配置文件以禁用 SELinux,如下图所示,将其修改为 Disable 重启即可。

官方弃用说明(来自 Red Hat 官方文档):
在 RHEL 8 中,您仍然可以使用 已弃用 的方法,通过使用 /etc/selinux/config 文件中的 SELINUX=disabled 选项来禁用 SELinux。这会导致内核启用 SELinux,并在稍后的引导过程中切换到禁用模式。因此,可能会出现内存泄漏和竞争条件,从而导致内核 panic。
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
共有 0 条评论