在CentOS7上禁用或关闭selinux的方法
selinux是一个内置于Linux内核中的强制访问控制执行器。其作用是对某些服务的权限进行限制,从而在一定程度上保证系统的运行安全。假如没有selinux,系统就只能依赖其特权应用程序的配置。当配置不正确的时候,就会导致系统出现问题。
此时就产生了一个问题。既然selinux如此重要,我们为什幺要禁用它呢?
其根本原因在于,并非所有的应用程序都支持selinux,因此为了能够正常安装和使用这些特殊的应用程序,我们不得不将selinux进行临时关闭或永久关闭(生产环境不建议这幺做,风险太大)。
在介绍如何关闭selinux之前,先简单说一下selinux的状态模式。
selinux的状态模式
查看selinux状态模式的命令有两个,分别是sestatus和getenforce。
- sestatus
对于sestatus命令来说,可以查看selinux的所有状态。执行后如下所示:
- getenforce
对于getenforce命令来说,则只能查看状态模式,执行后如下所示:
对于selinux的状态模式而言,共有三种状态,分别是:enforcing、permissive和disabled。其中,enforcing是默认状态,表示强制启用;permissive表示大部分规则放行;disabled则表示不设置任何规则。
selinux的关闭
- 临时关闭
对于临时关闭selinux来说,使用到的命令如下所示:
sudo setenforce 0
需要说明一点的是,该命令所能使用的可选值只有0和1。其中,0表示permissive,1表示enforcing。对于disabled而言,无法通过这种方式进行修改。
执行完毕后使用sestatus命令查看selinux的状态如下所示:
从上面的结果可知,此时的selinux已经变成了permissive模式。当然,这种方式只是临时关闭了selinux,当服务器进行重启后就会失效。
我们执行reroot命令来重启服务器,当服务器重启之后再次使用sestatus查看selinux的状态,如下所示:
- 永久关闭
如果需要永久关闭selinux,就需要通过修改对应的设置文件来实现。该配置文件的位置是:/etc/selinux/config。我们执行如下的命令来对该配置文件进行编辑:
vi /etc/selinux/config
执行后,找到SELINUX参数,将其值修改为disabled或permissive,我这里修改为了disabled,如下所示:
接着重启服务器之后再次使用sestatus查看selinux的状态,查看结果如下所示:
从上面结果可知,selinux已经被成功关闭。