介绍
SELinux 是内置于 Linux 内核中的强制访问控制 (MAC) 执行器。它限制了可能对系统构成威胁的个别服务的权限。
没有 SELinux 的 CentOS 系统依赖于其所有特权软件应用程序的配置。单个错误配置可能会危及整个系统。
为什么禁用 SELinux
并非所有应用程序都支持 SELinux。因此,SELinux 可以在软件包的正常使用和安装过程中终止必要的进程。在这些情况下,我们建议你关闭此服务。
在 CentOS 上禁用 SELinux 的步骤
第 1 步:检查 SELinux 状态
SELinux 服务在 CentOS 和大多数其他基于 RHEL 的系统上默认启用。
首先使用以下命令检查系统上 SELinux 的状态:
sestatus
下面的示例输出表明SELinux 已启用。状态显示服务处于
强制执行
模式
。
SELinux 状态的输出示例
SELinux 可能会阻止应用程序的正常运行。如果出现以下情况,服务将拒绝访问:
- 文件标签错误。
- 不兼容的应用程序尝试访问被禁止的文件。
- 服务在不正确的安全策略下运行。
- 检测到入侵。
如果你发现服务未正确运行,请检查 SELinux 日志文件。日志位于
/var/log/audit/audit.log
中。最常见的日志消息标有AVC。如果找不到任何日志,请尝试查看/var/log/messages
。如果auditd守护程序未运行,系统会将日志写入该文件。
第 2 步:禁用 SELinux
1:暂时禁用 SELinux
暂时禁用 SELinux,请在终端中输入以下命令:
sudo setenforce 0
在
sudo setenforce 0
中,你可以使用permissive
而不是 0。此命令将 SELinux 模式从
target
改为permissive
。
从目标模式转变为许可模式
2:永久禁用 SELinux
要永久禁用该服务,请使用文本编辑器(例如 vim 或 nano)并按照以下说明编辑
/etc/sysconfig/selinux
文件。
- 1.打开
/etc/sysconfig/selinux
文件。我们将使用vim
。如果你不熟悉文本编辑器,请参阅我们的指导指南,了解如何保存和退出文件 vim。
代码语言:javascript复制输入以下命令打开文件:
sudo vi /etc/sysconfig/selinux
- 2.将
SELINUX=enforcing
指令更改为SELINUX=disabled
编辑 SELINUX 指令以禁用
- 3.保存编辑的文件。
重启 CentOS 以保存更改
要使更改生效,你需要使用以下命令重新启动系统:
sudo shutdown -r now
重新启动后,检查服务状态以确认 SELinux 已禁用。使用命令:
sestatus
编辑 SELINUX 指令以禁用
状态应该是
disabled
,如上图所示。系统不会加载任何 SELinux 策略或写入AVC
日志。