有些博客上面说的是 setenforce 0 表示临时关闭,但是我发现我这边 0 表示 Permissive , 并不是 disable。本文来记录下正确的操作。已经有很多博客对 SElinux 有很深的说明了,在下面的文章中就只是对 SELinux 操作的详细说明,对于 SELinux 简介就概述下。
SELinux 简介
SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统。NSA是在Linux社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。SELinux 默认安装在 Fedora 和 Red Hat Enterprise Linux 上,也可以作为其他发行版上容易安装的包得到。
SELinux 模式
- enforcing:强制模式;代表SELinux运作中,违反 SELinux 规则的行为将被阻止并记录到日志中。用 “1” 表示。
- permissive:宽容模式(也有人说是警告模式);代表SELinux运作中,当违反SELiunx的行为规则时,会发出警告并记录到日志中,但是不会被阻止,一般都是调试用。用“0”表示。
- disabled:关闭模式。
SELinux 命令
切换状态使用 setenforce 命令,下图中可以看到 Enforcing 值为 1, Permissive 值为 0
## 查看对应的值
setenforce
## 设置为 强制模式
setenforce 1
查看当前的 SELinux 状态
getenforce
SELinux 配置文件
当我们需要永久关闭 SELinux 的时候,需要修改配置文件,将 SELINUX 设置为 disable,然后重启 linux 系统,配置如下图:
vi /etc/selinux/config
特别说明
如果由 enforcing 或 permissive 改成 disabled ,或由 disabled 改成其他两个,也必须要重新启动。这是因为 SELinux 是整合到核心里面去的, 你只可以在 SELinux 运作下切换成为强制 (enforcing) 或宽容 (permissive) 模式,不能够直接关闭 SELinux 的!
同时,由 SELinux 关闭 (disable) 的状态到开启的状态(enforcing )也需要重新开机!所以,如果刚刚你发现 getenforce 出现 disabled 时, 请到上述文件修改成为 enforcing 吧!