如何在CentOS 7上禁用或关闭SELinux?


介绍

在Linux世界中,安全性是系统管理员最关心的问题之一。增强Linux系统安全性的方法之一是使用安全增强型Linux (SELinux)。

SELinux是一个强制访问控制(MAC)系统,它为您的CentOS 7服务器提供了额外的保护层。它提供细粒度的访问控制和策略,使系统管理员能够限制用户的操作并保护敏感数据。

检查SELinux的当前状态

SELinux(安全增强型Linux)是一种安全机制,它通过限制进程和用户对某些资源的访问来为您的系统提供额外的保护层。CentOS 7默认情况下启用SELinux。在某些情况下,您可能需要在进行任何配置更改之前检查它是否正在运行。

使用getenforce命令

检查SELinux当前状态最简单的方法是使用getenforce命令。此命令显示SELinux当前在您的CentOS 7系统上是强制执行、许可模式还是已禁用。要使用此命令,请打开终端窗口并输入:

getenforce

如果SELinux当前在您的系统上强制执行,则此命令将返回“Enforcing”。如果它在许可模式(也称为“记录”模式)下运行,它将返回“Permissive”。

如果SELinux完全禁用,“Disabled”将被返回。需要注意的是,在较新的CentOS 7版本(例如,CentOS 7.6)上,如果实际上并没有完全禁用,getenforce的输出可能会显示“disabled”,这是因为其他功能(如系统安全服务守护程序(SSSD)和auditd)即使在您已在/etc/sysconfig/selinux文件中设置SELINUX=disabled时,也可能仍在强制模式下运行。

使用getenforce命令可以帮助您确定SELinux当前是否在您的CentOS 7系统上处于活动状态及其当前状态。这在排查安全问题或确定是否需要进一步配置更改时非常有用。

临时禁用SELinux

有时,您可能需要临时禁用SELinux来解决CentOS 7中的特定问题。这可以使用setenforce命令完成,该命令用于更改当前的SELinux模式。setenforce命令有两种模式:强制执行和许可模式。

强制执行模式是SELinux的默认模式,它强制执行SELinux定义的所有安全策略。另一方面,许可模式只记录策略违规而不会强制执行它们。在许可模式下,SELinux不会阻止任何操作,而是会记录它们。

要使用setenforce命令临时禁用CentOS 7中的SELinux,请按照以下步骤操作:

以root权限登录您的CentOS 7系统。

打开一个终端窗口。

输入以下命令以检查SELinux的当前状态:

$ getenforce

输出将显示“Enforcing”或“Permissive”。如果显示“Enforcing”,则需要运行以下命令:

$ setenforce 0

这将SELinux状态设置为许可模式,这意味着它不会阻止任何操作,而是会记录它们。您可以通过输入以下命令来确认它已更改:

$ getenforce

输出现在应该显示“Permissive”。

请注意,此更改是临时的,重启后不会保留。如果您想永久禁用或关闭CentOS 7系统上的SELinux,请继续下一节。

永久关闭SELinux

有时,您可能希望永久关闭SELinux。这可以通过编辑/etc/selinux/config文件来完成。此文件用于在系统启动期间设置默认的SELinux模式。

编辑/etc/selinux/config文件

要编辑/etc/selinux/config文件,您必须拥有服务器的root访问权限。在您的CentOS 7机器上打开终端并输入:

$ sudo nano /etc/selinux/config

这将在Nano编辑器中打开配置文件。查找以“SELINUX=”开头的行。此行的值指示SELinux是启用还是禁用:

# 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”更改为“disabled”:

# 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=disabled 

完成此更改后,按Ctrl+X,然后按Y,最后按Enter保存并关闭/etc/selinux/config。请注意,对/etc/selinux/config的更改需要重新启动系统才能生效。重新启动CentOS 7服务器后,运行getenforce命令以确保SELinux现在已禁用:

$ getenforce

输出应为“Disabled”。您的CentOS 7服务器现在在没有SELinux的情况下运行。

验证SELinux是否已禁用或关闭

在CentOS 7上禁用或关闭SELinux后,务必验证更改是否已正确应用。本节将指导您完成验证此问题的几种方法。

方法1:使用getenforce命令

检查SELinux当前是否已临时禁用或关闭的最简单方法是使用getenforce命令。此命令显示系统上SELinux的当前状态。

要检查SELinux的当前状态,请打开您的终端并输入:

$ getenforce 

如果此命令返回“Disabled”或“Permissive”,则您已成功临时禁用或关闭SELinux。但是,如果它返回“Enforcing”,则SELinux仍在启用并强制执行策略。

方法2:检查文件/etc/selinux/config

您还可以通过检查位于/etc/selinux/config的配置文件来验证SELinux是否已永久禁用。如果您已正确执行所有步骤以永久禁用SELinux,则此文件应包含类似于以下内容的行:

SELINUX=disabled 

如果显示“SELINUX=enforcing”,则需要确保在重新启动系统之前已正确编辑和保存此文件。

方法3:使用sestatus命令

您还可以使用sestatus,这是一个用于管理和查询SELinux状态的强大工具。

$ sudo sestatus 

此命令显示SELinux的当前状态,并提供其他信息,例如已启用的策略和布尔值。如果SELinux已永久禁用或关闭,则此命令应显示以下内容:

SELinux status: disabled  

如果它返回“SELinux status: enabled”,则需要确保在重新启动系统之前已正确执行所有步骤以永久禁用SELinux。

结论

虽然禁用或关闭SELinux可能会暂时解决CentOS 7机器上的某些问题,但务必记住它是一个重要的安全功能。SELinux通过限制授予进程的访问权限和许可权来为您的系统增加额外的保护层。

更新于:2023年7月11日

浏览量:244

开启您的职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.