开启或关闭SELinux

更新时间: 2023-11-24 13:53:16

SELinux是Linux内核的安全子系统,通过严格的访问控制机制增强系统安全性。一般情况下,建议开启SELinux来限制进程的权限,防止恶意程序通过提权等方式对系统进行攻击;然而,由于SELinux的严格访问控制机制,可能会导致一些应用程序或服务无法启动,因此在特定情况下(如开发、调试等),需暂时关闭SELinux。

说明

关于SElinux的工作原理和详细说明,请参见什么是SELinux?

开启SELinux

本教程以CentOS 7.6 64位操作系统为例,介绍如何开启SELinux。

  1. 远程连接ECS实例。
    关于连接方式的介绍,请参见连接方式概述
  2. 运行以下命令,验证SELinux状态。

    sestatus

    若系统返回的参数信息SELinux status显示为 disabled,则表示SELinux已关闭。image.png

  3. 在ECS实例上运行以下命令,编辑SELinux的config文件。

    sudo vi /etc/selinux/config
  4. 找到SELINUX=disabled字段,按i进入编辑模式,通过修改该参数来开启SELinux。

    SELINUX状态

    您可以根据实际需求自行调整参数来选择启用SELinux的其中一种模式 :

    • 强制执行模式SELINUX=enforcing:表示所有违反安全策略的行为都将被禁止。

    • 宽容模式SELINUX=permissive:表示所有违反安全策略的行为不被禁止,但会在日志中做记录。

  5. 修改完成后,按下键盘Esc键,执行命令:wq,保存并退出文件。

    重要

    完成修改config文件后,需要重启ECS实例使配置生效,但直接重启实例将会出现系统无法启动的错误。因此,在重启之前需要在根目录下新建autorelabel文件,以避免出现该问题。

  6. 执行以下命令,在根目录下新建隐藏文件autorelabel

    sudo touch /.autorelabel
  7. 运行以下命令,重启ECS实例。

    说明

    实例重启后,SELinux会自动重新标记所有系统文件。

    sudo shutdown -r now

关闭SELinux

重要

关闭SELinux可能会降低系统的安全性,使系统更容易受到潜在的安全漏洞和攻击。在关闭之前,您应该仔细评估潜在的风险,并确保系统中其他安全措施的有效性。因此,在解决问题后,建议尽快重新启用SELinux,以恢复系统的安全性保护。

  1. 远程连接ECS实例。
    关于连接方式的介绍,请参见连接方式概述
  2. 运行以下命令,验证SELinux状态。

    sestatus

    若系统返回的参数信息SELinux status显示为enabled,则表示SELinux已启动。更多SELinux信息

  3. 选择临时关闭或者永久关闭SELinux。

    临时关闭SELinux

    执行以下命令,临时关闭SELinux。

    setenforce 0

    永久关闭SELinux

    1. 运行以下命令,编辑SELinux的config文件。

      sudo vi /etc/selinux/config
    2. 找到SELINUX=enforcingSELINUX=permissive字段,按i进入编辑模式,将参数SELINUX=enforcingSELINUX=permissive修改为SELINUX=disabled更改SELinux状态

    3. 修改完成后,按下键盘Esc键,执行命令:wq,保存并退出文件。

    4. 运行以下命令,重启ECS实例。

      sudo shutdown -r now
    5. 完成重启后,运行以下命令,验证SELinux状态。

      sestatus

      若系统返回的参数信息SELinux status显示为 disabled,则表明SELinux已永久关闭。

      image.png

相关文档

您可以通过已启动SELinux的ECS实例创建自定义镜像。在您需要的时候,直接通过该镜像创建已启动SELinux的ECS实例。

阿里云首页 云服务器 ECS 相关技术圈