Android系统10 RK3399 init进程启动(二十一) DAC和MAC介绍

配套系列教学视频链接:

      安卓系列教程之ROM系统开发-百问100ask

说明

系统:Android10.0

设备: FireFly RK3399 (ROC-RK3399-PC-PLUS)

前言

本章节介绍DAC和MAC相关概念


一, DAC权限控制概念

selinux之前, linux采用的是DAC (Discretionary Access Control,自主访问控制系统)基本概念就是系统只提供基本的验证,完整的访问控制由开发者自己控制(直接chmod/chmod就可以修改权限),DAC采用了一种非常简单的策略(policy),存在资源访问者,资源,资源的访问权限:

  1. 资源访问者分别:Owner, Group,Other,访问者包含各种用户(uid/gid),各种进程;
  2. 资源一般都是文件;
  3. 资源的访问权限分成read、 write、 execute;

二, MAC权限控制概念

在DAC中, 每个用户都有uid/gid, 进程理论上所拥有的权限与执行它的用户的权限相同,如果进程是由root超级用户启动,该进程就会拥有root权限, 该进程就可以在系统上干任何事情,其实是比较危险的。所以就出现了MAC(Mandatory Access control强制性访问控制),即要求系统对每一项访问都进行严格的限制和验证,具体的限制和验证策略(policy)由开发者给出, 即需要明确的指明某个进程可以访问哪些资源(文件、网络端口,属性等)。

MAC可以明显弥补DAC的缺陷。如可限制Root权限,即使你有root权限(将军),如果无法通过MAC验证(圣旨授权),那么一样的无法真正执行相关的操作。另外MAC对每一项权限进行了更加完整的细化,可限制用户对资源的访问行为。在Linux Kernel,所有的MAC机制都是搭建在Linux Security Modules(LSM)基础上,目前SELinux已经成了事实上的行业标准。

注意: Linux系统先做DAC检查。如果没有通过DAC权限检查,则操作直接失败。通过DAC检查之后,再做MAC权限检查。

三, SEAndroid和Selinux的关系

     SELinux(Security Enhanced Linux)就是linux系统中对MAC的实现。由于Android系统有着独特的用户空间运行时,因此SELinux不能完全适用于Android系统。为此,NSA(美国国家安全局)同Google一起针对Android系统,在SELinux基础上开发了SEAndroid(Security Enhancements (SE) for Android), Android 从5.0开始普遍使用SEAndroid。
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

旗浩QH

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

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

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

打赏作者

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

抵扣说明:

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

余额充值