centos服务器,如何开启或关闭selinux?
发布于 作者:苏南大叔 来源:程序如此灵动~
SELinux是「Security-Enhanced Linux」的简称,是美国国家安全局「NSA=The National Security Agency」 和SCC(Secure Computing Corporation)开发的 Linux的一个扩张强制访问控制安全模块。原先是在Fluke上开发的,2000年以 GNU GPL 发布。大多数情况下,资深运维都会关闭selinux功能。所以,请认真想一想,自己是否真的需要这个selinux功能。强烈建议大家不要开启selinux功能。

本文的测试环境使centos7.5,苏南大叔在本篇文章中,将要实践的内容是:如何开启或关闭selinux服务。开启selinux功能,往往会带来很多未知的问题和麻烦。
总体概述
selinux状态,有些不太好理解。首先,要明白的是:selinux的状态可以是enabled,还可以是disabled的。而当enabled的时候,还分为enforcing和permissive两个状态。
通常大家所说的开启selinux,指的是enabled状态里面的enforcing状态。

判断sellinux状态
查看SELinux状态,看一下是否处于开启状态。
sestatus -v
当SELinux关闭的时候,返回值为:
SELinux status: disabled当SELinux开启的时候,返回值是大段的文字。需要使用grep才能看到想看的信息。如果SELinux status显示为enabled即为开启状态。
sestatus -v | grep "SELinux status"
通过getenforce语句查看selinux的状态:
getenforce 可能的取值为Disabled,enforcing,permissive。
永久关闭SELinux:
本操作,修改配置文件需要重启机器:
修改/etc/selinux/config 文件,
开启selinux:
SELINUX=enforcing关闭selinux:
SELINUX=disabled重启服务器即可生效。

临时开启或关闭SELinux:
如果上一步/etc/selinux/config中的SELINUX是disabled的话,本临时方案是永远不生效的。会一直得到下面的类似提示信息:
setenforce: SELinux is disabled和网上流传的教程不同的是:经过苏南大叔的实践经验,这部分更正确的说法,应该是:在SELINUX不为disabled的前提下:使用setenforce 1,切换模式为enforcing,setenforce 0为permissive。
设置SELinux成为enforcing模式,重启服务器后失效。
setenforce 1设置SELinux成为permissive模式,重启服务器后失效。
setenforce 0 注意事项:
当SELINUX=enforcing时,请谨慎操作重启,如果你的ssh端口不是22的话,会导致你不能使用ssh进入远程服务器!解除的办法,就是利用第三方途径操作服务器(例如宝塔面板):
- 想办法修改
SELINUX=permissive或者disabled,然后重启服务器。 - 临时执行
setenforce 0命令,即可再次使用非22端口ssh进入服务器。
总结
是否需要开启selinux功能,大家请自行决定。再一次强烈建议您不要开启selinux!