news 2026/4/3 4:42:26

Selinux Context上下文

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Selinux Context上下文

Selinux Context上下文

前面有提到主体,客体,te文件 等等。

也就是说某个进程(主体)对(客体)资源会有(哪些)权限(动作)

这里需要搞明白:
谁是主体,谁能成为主体,我怎么知道某个东西是主体,同理,客体以及权限动作也是如此。
在android系统中,这个问题是通过label标签来解决。我们称这个标签为Selinux Context上下文。
简称为scontext.
换句话说,安卓系统中的每一个主体和客体对象,都会有一个scontext上下文件,它是一个label字符串,安卓系统中需要有对此有一个规定:

主体的scontext是u:r:xxx:s0, (看到类似这个scontext就知道它是属于主体的标签), 一般 这个xxx就是模块名称,如init, adbd, vold等

客体的scontext是u:object_r:xxx:s0, (看到类似这个scontext就知道它是属于客体的标签), 这个xxx一般指的就是MAC模型中的客体类型资源文件, 如/dev/light0

配合te文件的规定策略:比如:进程init对存放在/dev/light0的这个文件有open和read的权限
有可能进程init对存放在/dev/light0的这个资源,就没有有写入的权限(如果te文件没有规定的话)

换个角度思考,如果想在一个te文件中描述主体对客体的行为动作,主体如何描述,客体又如何描述,所以肯定是需要一些字符串去标识和定义它们,这就是需要打标签的原因。

关于context_file
前面已经讲了scontext,了解了什么样的标签是主体以及客体,那现在又出现一个问题,我们在哪里定义这个标签?就是我们这节要讲的context_file,上下文文件。

注意:系统上的所有的文件,全部都需要打上上下文标签,每个文件都需要有标签定义。

那么问题来了,现在所有的标签都已经准备好了,有file_contexts, genfs_contexts,service_contexts,seapp_contexts,property_contexts,也清楚 我们需要对每个客体所需要的标签是在对应的context_file文件中进行标签的定义,但这只是定义性的。我们还需要知识一点,对这个客体来说,肯定是需要有一个角色(是谁)来给这个客体赋予context_file文件中定义的标签label

在安卓系统中,一般是通过一些SecurityServer进程,如init进程(但不仅仅只有它), 它可以将上下文标签中的定义,给对应的文件打上标签(上图中也包含了打标签的过程)。

(知识扩展:这里针对的是客体,但对主体的上下文标签又是在哪里呢?主体在运行之前也是一个文件,所以也需要拥有上下文里的某一个标签)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/3 3:17:16

基于springboot的数码商城系统

博主介绍:java高级开发,从事互联网行业六年,熟悉各种主流语言,精通java、python、php、爬虫、web开发,已经做了多年的设计程序开发,开发过上千套设计程序,没有什么华丽的语言,只有实…

作者头像 李华
网站建设 2026/3/14 12:25:32

基于springboot的档案数字化管理系统

博主介绍:java高级开发,从事互联网行业六年,熟悉各种主流语言,精通java、python、php、爬虫、web开发,已经做了多年的设计程序开发,开发过上千套设计程序,没有什么华丽的语言,只有实…

作者头像 李华
网站建设 2026/3/28 23:57:47

PINN静电场问题建模求解---平行金属板间电场

PINN静电场问题建模求解—平行金属板间电场 PINN 基础理论与最简示例(含Python代码)中介绍了最基础的微分方程的求解,下面我们聚焦电磁场问题实际求解一下看看。 这个问题已经在Maxwell和C中求解过了,可以看我之前的博客&#x…

作者头像 李华
网站建设 2026/3/25 12:16:44

东芝与Quantum Corridor实现量子安全网络通信重大突破

网络技术公司Quantum Corridor与东芝成功完成了量子安全通信的实际演示,这一重大进展将使企业能够传输具有量子安全保护的数据。两家公司合作在从伊利诺伊州到印第安纳州的商业光纤基础设施上使用量子密钥分发技术,该技术是一种量子安全加密方法&#xf…

作者头像 李华
网站建设 2026/4/2 15:49:35

如何批量下载tgz依赖包并使用?

在内网环境中开发项目,无法直接通过npm install下载安装依赖包,我们可以先在外网中下载依赖包的tgz文件,然后将所有的依赖包tgz文件传输到内网中,再通过安装tgz依赖,就可以成功的将依赖包node_modules安装至项目,条件允许的化,可以将tgz发布至内网服务器,然后执行npm i…

作者头像 李华
网站建设 2026/4/2 10:34:19

TinyMCE实现word公式粘贴转MathType

重庆某集团企业项目需求分析及技术实现方案(第一人称视角) 作为重庆某集团企业的项目负责人,针对当前项目中企业网站后台管理系统文章发布模块的升级需求,我将从技术选型、信创兼容性、成本控制及商务合规性四个维度进行系统性规…

作者头像 李华