SElinux 1 背景,框架

本文深入探讨了SELinux的权限管理机制,对比了DAC与MAC的区别,并详细解释了SELinux的安全模型,包括用户概念、安全策略文件的重要性及SELinux Policy语言等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里是因为 我这里需要做的一个bug有接触的selinux, 所以就寻找了很多资料去学习。
整了我半个多月的问题,终于解决了, 所以特此来记录一下,也学习一下。这里我就把 最近查询总结的一些资料总结一下

然后就整理了很多资料,很多是从网上转载整理的, 有些自己添加的,以备以后备用,也供大家学习哈。

这里这个背景,我先放些 链接, 毕竟这个可以慢慢理解和看,以后在整理

一 、 SELinux背景知识

http://blog.youkuaiyun.com/syhost/article/details/41496701

  1. DAC和MAC
    SELinux出现之前,Linux上的安全模型叫DAC,全称是Discretionary Access Control,翻译为自主访问控制。DAC的核心思想很简单,就是:
    进程理论上所拥有的权限与执行它的用户的权限相同。比如,以root用户启动Browser,那么Browser就有root用户的权限,在Linux系统上能干任何事情。
    显然,DAC太过宽松了,所以各路高手想方设法都要在Android系统上搞到root权限。那么SELinux如何解决这个问题呢?原来,它在DAC之外,设计了一个新的安全模型,叫MAC(Mandatory Access Control),
    翻译为强制访问控制。MAC的处世哲学非常简单:即任何进程想在SELinux系统中干任何事情,都必须先在安全策略配置文件中赋予权限。凡是没有出现在安全策略配置文件中的权限,进程就没有该权限。来看一个SEAndroid中设置权限的例子:
/*
  from external/sepolicy/netd.te
 下面这条SELinux语句表示 允许(allow )netd域(domain)中的进程  ”写(write)“ 
 类型为proc的文件
 注意,SELinux中安全策略文件有自己的一套语法格式,下文我们将详细介绍它
*/
allow netd proc:file write

如果没有在netd.te中使用上例中的权限配置allow语句,则netd就无法往/proc目录下得任何文件中写数据,即使netd具有root权限。
显然,MAC比DAC在权限管理这一块要复杂,要严格,要细致得多。
那么,关于DAC和MAC,此处笔者总结了几个知识点:
Linux系统先做DAC检查。如果没有通过DAC权限检查,则操作直接失败。通过DAC检查之后,再做MAC权限检查。
SELinux中也有用户的概念,但它和Linux中原有的user概念不是同一个东西。什么意思呢?比如,Linux中的超级用户root在SELinux中可能就是一个没权限,没地位,打打酱油的”路人甲“。当然,这一切都由SELinux安全策略的制定者来决定。
通过上述内容,读者应该能感觉到,在SELinux中,安全策略文件是最重要的。确实如此。事实上,对本文的读者而言,学习SELinux的终极目标应该是:
看懂现有的安全策略文件。
编写符合特定需求的安全策略文件。
前面也曾提到,SELinux有自己的一套规则来编写安全策略文件,这套规则被称之为SELinux Policy语言。它是掌握SELinux的重点。

二、框架

后面整理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

李磊LL

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

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

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

打赏作者

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

抵扣说明:

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

余额充值