【Linux】SELinux 临时关闭,永久关闭
前言
SELinux或增强安全性的Linux是提供访问控制安全策略的机制或安全模块。 简而言之,它是一项功能或服务,用于将用户限制为系统管理员设置的某些策略和规则。
是Linux操作系统的一个额外的强制性的安全访问规则。
用于确定哪个进程可以访问哪些文件、目录和端口的一组安全规则。保护的对象是服务、服务对应的文件/目录、服务对应的端口;
其中,服务的实例(实际运行当中的一个例子)就是进程,所以进程也受selinux的保护。
可以被看作是与标准权限系统并行的权限系统,如果selinux开启,以root身份运行进程,访问文件不光要受用户对文件访问权限的限定,还要受进程对文件selinux上下文类型的限定,否则,就算是
root
用户运行的进程,也不一定能访问某个文件。
首先,查看selinux状态
使用
sestatus
命令检查selinux运行状态[root@localdomain1 ~]# sestatus SELinux status: enabled SELinuxfs mount: /sys/fs/selinux SELinux root directory: /etc/selinux Loaded policy name: targeted Current mode: enforcing # 主要看这行参数 Mode from config file: enforcing Policy MLS status: enabled Policy deny_unknown status: allowed Max kernel policy version: 31
selinux 的三种模式(状态)
- enforcing -> 强制模式 -> 表示强制启动SELinux,拒绝非法访问并录入日志
- permissive -> 许可模式(警告模式) -> 表示临时不强制起作用,暂时允许非法访问,但会生成警告信息并录入日志(debug模式,一般是在测试时临时关闭selinux)
- disabled -> 禁用模式 -> 完全关闭SELinux,允许非法访问且不录入日志
第一种:临时关闭或开启 SELinux
setenforce 0
: 临时关闭selinux策略,selinux模式会从enforcing变为permissive
setenforce 1
: 临时开启selinux策略,selinux模式会从permissive变为enforcing# 可以使用`getenforce`或者`sestatus`命令查看当前selinux状态 [root@localdomain1 ~]# setenforce 0 [root@localdomain1 ~]# sestatus SELinux status: enabled SELinuxfs mount: /sys/fs/selinux SELinux root directory: /etc/selinux Loaded policy name: targeted Current mode: permissive # 可以看到,此处的Current mode值已经发生变化 Mode from config file: disabled Policy MLS status: enabled Policy deny_unknown status: allowed Max kernel policy version: 31 [root@localdomain1 ~]# getenforce Permissive # 这里显示的是sestatus命令里Current mode的值,表明selinux已经被临时关闭
第二种:永久关闭SELinux
注意:永久关闭后,无法使用
setenforce命令
临时修改状态,且修改完后需要重启系统使其生效
- 修改配置文件
vi /etc/selinux/config
(或者修改软连接文件的地址/etc/sysconfig/selinux
也可以)- 将
SELINUX=enforcing
改为将SELINUX=disabled
,保存并退出reboot
重启服务器即可- 此时输入
sestatus
或者getenforce
查看selinux状态,可以看到已经被永久关闭了[root@localdomain1 ~]# vi /etc/selinux/config [root@localdomain1 ~]# reboot session closed 重新连接 [root@localdomain1 ~]# sestatus SELinux status: disabled # 已被关闭 # selinux被永久关闭后,临时开启命令将无法使用 [root@localdomain1 ~]# setenforce 1 setenforce: SELinux is disabled