Android SELinux开发入门指南之SELinux基础知识

本文详细介绍SELinux在Android系统中的应用,包括SEAndroid的三种模式、状态查看、权限分配原则及策略构建方法,旨在帮助开发者掌握Android系统安全控制的核心技术。

   Android SELinux开发入门指南之SELinux基础知识


Android SELinux开发多场景实战指南目录:

Android SELinux开发入门指南之SELinux基础知识
Android SEAndroid权限问题指南
Android SELinux开发入门指南之如何增加Java Binder Service权限
Android SELinux开发入门指南之权限解决万能规则
Android SELinux开发入门指南之如何增加Native Binder Service权限
Android SELinux开发入门指南之正确姿势解决访问data目录权限问题
正确姿势临时和永久关闭Android的SELinux



引言

   SEAndroid是在Android系统中基于SELinux推出的强制访问控制模型,其被设计的主要意图就是用来来完善自主访问模型中只要取得root权限就可以为所欲为的情况。那么SELinux究竟是何方神圣呢,老规矩认识一个事物我们通常会从它是什么,怎么使用它,最后深入它的三个步骤来进行,我们这里对SELinux也是如此,秉承三部曲的节奏来进行!

我们先对SELinux来一个整体的概述那就是SELinux是一种基于域-类型(domain-type)模型的强制访问控制(MAC)安全系统,其原则是任何进程想在SELinux系统中干任何事,都必须先在安全策略的配置文件中赋予权限。凡是没有在安全策略中配置的权限,进程就没有该项操作的权限。在SELinux出现之前,Linux的安全模型是DAC(DiscretionaryAccess Control),译为自主访问控制。其核心思想是进程理论上所拥有的权限与运行它的用户权限相同。比如,以root用户启动shell,那么shell就有root用户的权限,在Linux系统上能干任何事。这种管理显然比较松散。在SELinux中,如果需要访问资源,系统会先进行DAC检查,不通过则访问失败,然后再进行MAC权限检查。




一. SELinux基础知识

SELinux涉及的基本知识比较多,下面让我们来一一细说。

1.1 SELinux的三种模式

SELinux分为三种模式,下面我们看看究竟是那三种模式:

  • Disable模式
    此种模式关闭SELinux检测,不进行任何SELinux权限检查,畅通无阻。

  • Permissive模式
    宽容模式,当权限检查不通过时,不决绝资源访问,只打印avc log日志。

  • Enforceing模式
    强制模式,此种模式下权限检查不通过时,拒绝资源访问,并打出avc log,这个是最恨模式。


1.2 查看SELiux状态和关闭SELinux

查看SElinux的状态:
查看SELinux状态比较简单,可以通过命令行查看SELinux状态:

adb  shell getenforce

还有一种就是通过avc log来确认SELinux的状态:
如果是avc log结尾有permissive=1/0的标识,如果permissive=1说明是Permissive模式模式,如果permissive=0则说明是Enforce模式。

关闭SELinux:
关于怎么关闭SELinux可以参考如下的博文

评论 10
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值