Linux(入门基础):97---SELinux三种模式的启动、关闭、查看(getenforce、setenforce、sestatus、restorecon)

时间:2024-03-21 09:54:44

一、SELinux三种模式简介

  • Enforcing:强制模式。代表SELinux在运行中,且已经开始限制domain/type之间的验证关系
  • Permissive:宽容模式。代表SELinux在运行中,不过不会限制domain/type之间的验证关系,即使验证不正确,进程仍可以对文件进行操作。不过如果验证不正确会发出警告
  • Disabled:关闭模式。SELinux并没有实际运行

二、getenforce命令

  • 功能:查看当前SELinux的运行模式

Linux(入门基础):97---SELinux三种模式的启动、关闭、查看(getenforce、setenforce、sestatus、restorecon)

四、sestatus命令

1.功能

  • 查看当前系统上面SELinux的策略,运行模式等信息

2.命令格式

  • sestatus  [-vb]

相关参数与选项

  • -v:检查列于/etc/sestatus.conf内的文件御锦城的安全上下文
  • -b:将目前策略的规则布尔值列出,亦即某些规则是否要启动(0/1)之意

3.演示案例

  • 可以看到当前的策略为targeted。模式为enforcing

Linux(入门基础):97---SELinux三种模式的启动、关闭、查看(getenforce、setenforce、sestatus、restorecon)

五、SELinux的配置文件(/etc/selinux/config)

  • SELINUX=enforcing:当前SELinux的模式
  • SELINUXTYPE=targeted:当前SELinux的策略

如果想要修改策略和模式,就更改这个文件里面的内容即可

Linux(入门基础):97---SELinux三种模式的启动、关闭、查看(getenforce、setenforce、sestatus、restorecon)

六、SELinux模式的更改(setenforce命令)

1.SELinux模式的更改规则

  • ①不论是从Enforcing或Permissive改为Disabled,还是由Disabled改为Enforcing或Permissive,系统都需要重新启动。因为SELinux是整合到内核中的
  • ②在SELinux已经运行的模式下:只能够在Enforcing和Permissive两种模式之间进行切换,而不能直接关闭SELinux(Disabled),如果你使用getenforce发现当前SELinux模式为Disabled时,请立即到/etc/selinux/config文件中将SELinux改为Enforcing,然后重新启动系统
  • ③如果你从Disable转到启动SELinux的模式时,系统必须针对文件写入安全上下文的信息,因此启动过程会花费不少时间等待重新写入SELinux安全上下文(有时成为SELinux Label),而且在写完之后还要再重新启动一次
  • ④如果你在Enforcing模式,但是可能由于一些设置的问题导致SELinux让某些服务无法正常地运行,此时可以将Enforcing的模式改为宽容(Permissive)的模式,让SELinux只会警告而,而不会直接阻止主体进程的读取权限

2.setenforce命令格式

  • setenforce  0:转换为Permissive宽容模式
  • setenforce  1:转换为Enforcing强制模式

注意事项

  • setenforce无法设置SELinux为Disabled模式

3.演示案例

Linux(入门基础):97---SELinux三种模式的启动、关闭、查看(getenforce、setenforce、sestatus、restorecon)

七、restorecon -Rv 命令

介绍

  • 当你从Disabled切换为Enforcing模式时,会有一堆服务无法顺利启动,会跟你说/lib/xxx里面的数据没有权限读取,所以启动失败。原因:大多是重新写入SELinux类型时出错的缘故
  • 解决办法:切换为Permissive宽容模式,然后使用restorecon  -Rv  /  重新还原所有SELinux的类型,就能解决这个问题