【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命令临时修改状态,且修改完后需要重启系统使其生效

  1. 修改配置文件vi /etc/selinux/config(或者修改软连接文件的地址/etc/sysconfig/selinux也可以)
  2. SELINUX=enforcing改为将SELINUX=disabled,保存并退出
  3. reboot重启服务器即可
  4. 此时输入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		
posted @ 2022-08-14 23:12  中国制造  阅读(2329)  评论(0编辑  收藏  举报