Linux中SELinux三种模式的启动、关闭与查看

目前SELinux依据启动与否,共有三种模式,分别如下:

  • Enforcing:强制模式,代表SELinux运行中,且已经正确开始限制domain/type
  • Permissive:宽容模式,代表SELinux运行中,不过仅会有警告信息并不会实际限制domain/type的读写(这种模式可以用来作为SELinux的debuug之用)
  • Disabled:关闭模式,SELinux并没有实际运行

我们要知道,并不是所有的进程都会被SELinux管制,所以我们需要知道进程有没有受限(confined)

举例来说

我们查看一下crond和bash这两个进程是否被限制

 我们可以看到crond确实是受限的主体进程,而bash因为是本机进程,就是不受限(unconfined_t)的类型。也就是说bash是直接去判断rwx

三种模式的运行状态:

  • Disabled的模式,那么SELinux将不会运行,受限的进程也不会经过SELinux,直接去判断rwx
  • Permissive的模式,不会阻止主体进程,但是当没有通过策略规则或安全上下文判断时,此读写操作将会被记录起来(log),可作为未来检查问题的判断依据
  • Enforcing的模式,就是将受限主体进入规则比对、安全上下文比对的流程,若失败,就直接阻止主体进程的读写操作,并且将它记录下来。如果通通没问题就进入到rwx的判断

查看SELinux模式

使用getenforce查看

查看SELinux的策略

sestatus 【-vb】

选项与参数:

-v:检查列于/etc/sestatus.conf内的文件与进程的安全上下文内容

-b:将目前策略的规则布尔值列出

SELinux的启动与关闭

SELinux的配置文件为/etc/selinux/config

其中非注释的内容只有两行为:

除了强制模式与宽容模式之间相互转换之外,其他的模式变换都需要直接在配置文件中修改,并且变换模式后,都需要重新启动

让SELinux在Enforcing与Permissive之间切换

setenforce 【0/1】

选项与参数:

0:转为Permissive宽容模式

1:转为Enforcing强制模式

不过请注意,setforce无法再Disabled模式下切换模式

 

补充:

问题:在某些特殊情况下,我们从Disabled切换到Enforcing之后,有一大堆服务不能顺利启动,并且错误为/lib/xxx里面的数据没有权限读取,这是因为重新写入SELinux类型出错,使用Permissive就没有这个错误

处理:在Permissive的状态下,使用【restorecon -Rv/】重新还原所有SELinux的类型就能解决这个问题

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魏大橙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值