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
!
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。