SELinux是Linux系统内置的安全增强模块,默认开启状态下会对进程、文件访问等操作做严格的权限校验,部分场景下会影响服务正常运行,很多用户需要临时或永久关闭该模块。关闭SELinux的操作分为临时关闭和永久关闭两种,不同方式适用不同的使用需求,操作前需要先确认当前SELinux的运行状态,避免误操作影响系统安全。

一、确认当前SELinux运行状态
在关闭SELinux之前,首先需要通过命令查看当前的运行状态,避免重复操作或者误判状态。常用的状态查看命令是getenforce,执行后返回的结果有三种:Enforcing表示SELinux处于强制开启状态,Permissive表示SELinux处于宽容模式(仅记录违规不拦截),Disabled表示SELinux已经被关闭。
也可以通过sestatus命令查看更详细的状态信息,执行后会显示SELinux是否开启、当前模式、配置文件路径等内容。示例命令如下:
# 查看SELinux运行模式 getenforce # 查看SELinux详细状态 sestatus
二、临时关闭SELinux
临时关闭SELinux不需要修改配置文件,重启系统后会自动恢复开启状态,适合临时调试服务、排查权限问题的场景。临时关闭需要使用setenforce命令,该命令需要root权限执行。
临时关闭的命令是将SELinux切换到Permissive模式,执行以下命令即可:
# 临时关闭SELinux,切换到宽容模式 sudo setenforce 0 # 确认状态已经切换 getenforce
如果需要临时开启SELinux,可以执行setenforce 1命令切换回Enforcing模式。需要注意的是,临时关闭仅对当前系统运行周期有效,重启后配置会失效。
三、永久关闭SELinux
永久关闭SELinux需要修改SELinux的配置文件,修改后需要重启系统才能生效,适合确定长期不需要SELinux防护的场景。SELinux的配置文件默认路径是/etc/selinux/config,部分系统可能是/etc/sysconfig/selinux,后者通常是前者的软链接。
修改配置文件前建议先备份原文件,避免修改错误后无法恢复。备份和修改的步骤如下:
# 备份原配置文件 sudo cp /etc/selinux/config /etc/selinux/config.bak # 编辑配置文件,将SELINUX的值改为disabled sudo vi /etc/selinux/config
打开配置文件后,找到SELINUX=开头的行,默认值是enforcing,将其修改为disabled即可。配置文件中相关参数的含义如下:
- SELINUX=enforcing:强制开启,拦截违规操作
- SELINUX=permissive:宽容模式,仅记录不拦截
- SELINUX=disabled:完全关闭SELinux
修改后的配置文件内容示例如下:
# 修改前 SELINUX=enforcing SELINUXTYPE=targeted # 修改后 SELINUX=disabled SELINUXTYPE=targeted
修改完成后保存退出,执行reboot命令重启系统,重启后再次执行getenforce命令,返回Disabled就表示永久关闭成功。
四、关闭SELinux的注意事项
关闭SELinux会降低系统的安全防护能力,尤其是暴露在公网环境的服务器,不建议直接永久关闭。如果是因为服务权限问题需要关闭,优先尝试调整SELinux的策略规则,而不是直接关闭模块。
如果已经永久关闭了SELinux,后续需要重新开启的话,只需要把配置文件中的SELINUX=disabled改回SELINUX=enforcing,重启系统即可恢复。另外部分系统在关闭SELinux后,之前被拦截的服务可能需要重新配置权限才能正常运行。
SELinuxLinuxsetenforceselinux_configgetenforce修改时间:2026-07-06 02:09:18