Selinux安全策略文件

news2024/11/27 14:45:04

在Selinux框架中,安全策略都是写在te文件中,以adb.te 文件为例

allow adbd shell_data_file:dir create_dir_perms;

策略的基本格式是:

rule_name source_type target_type :object_class perm_set

rule_name
规则名。常见的规则名有allow,neverallow,dontaudit,auditallow等

rule_name说明
allow允许权限操作,必须显示说明,否则代表没有权限
neverallow这里不能理解为不允许,neverallow是对allow语句进行检查。一旦neverallow了某项权限,如果再写allow该权限的话,编译报错
dontaudit对权限检查失败的操作不做记录
auditallow允许记录,重点是记录, 允许权限规则必须使用allow,此处允许记录是指允许对权限检查成功和失败的结果进行记录

source_type
源类型,主要作用是用来填写一个域(domain),一般都是一个进程, 一般也叫做scotonext。如上面示例中的adbd就属于domain域

type adbd, domain;

domain的定义在system\sepolicy\public\attributes文件中

attribute dev_type;

# All types used for processes.
attribute domain;

# All types used for filesystems.
# On change, update CHECK_FC_ASSERT_ATTRS
# definition in tools/checkfc.c.
attribute fs_type;

target_type
目标的类型,一般都是客体的上下文标签,当然进程也是可以做为客体,比如一个进程给另外一个进
程发送信号,获取另外一个进程pid 等

上面示例中的shell_data_file 在file.te中定义

type shell_data_file, file_type, data_file_type, core_data_file_type, mlstrustedobject;

而 file_type,data_file_type等也需要在system\sepolicy\public\attributes文件中定义

attribute file_type;
attribute data_file_type;

object_class

类别,目标(客体)是哪种类别,主要有file,dir,socket, process, SEAndroid 还有binder 等,在这些基础上又细分出设备字符类型(chr_file),链接文件(lnk_file)等
object_class 需要在security_classes中定义

# file-related classes
class filesystem
class file
class dir
class fd
class lnk_file
class chr_file
class blk_file
class sock_file
class fifo_file

而class所涉及的具体权限是在access_vectors文件中声明的,比如 filesystem所能申请的权限如下:

class filesystem
{
        mount
        remount
        unmount
        getattr
        relabelfrom
        relabelto
        associate
        quotamod
        quotaget
        watch
}

perm_set

权限集合。如:read,write。注意所能填写的是access_vectors文件对每个object_class 定义的权限。

总结
1,策略语句中的每部分都不是随便写的,都需要在相关文件中定义,如下:

在这里插入图片描述
2,perm_set集合可以填写什么,需要看access_vectors文件对前面的object_class 的规定。如:object_class 是file_system,则perm_set可以填写mout、remount、unmount等
3,用type来定义一个新的类型

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1562857.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

无问芯穹 MaaS AI 平台公测免费试用笔记:一

本篇文章聊聊正在公开测试的平台,无问芯穹的 MaaS 服务,包含了平台使用体验和一些小技巧。 因为测试给的免费卡时比较少,估计想完成完整测试或许需要一些时间,额外用一些账号进行。就先记录下常规折腾过程吧,让再次“…

element-ui message 组件源码分享

今日简单分享 message 组件的源码,主要从以下四个方面来分享: 1、message 组件的页面结构 2、message 组件的 options 配置 3、mesage 组件的方法 4、个人总结 一、message 组件的页面结构 二、message 组件的 options 配置 前置说明:m…

Centos7 安装 Oracle19c

下载oracle预安装包 wget http://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm 下载19c安装包 https://www.oracle.com/cn/database/technologies/oracle-database-software-downloads.html#19c 选择…

OpenLayers6实战,OpenLayers实现鼠标拖拽绘制三角形,OpenLayers自定义绘制特殊图形

专栏目录: OpenLayers实战进阶专栏目录 前言 本章讲解使用OpenLayers如何绘制三角形。 OpenLayers本身是可以通过多边形绘制来绘制自行绘制三角形的,但是这种绘制方式是通过鼠标点击每个点来实现线条链接的,不支持固定的三角形这种特殊图形绘制的。 因此本章我们通过自定义…

Express.js项目实战(1)—— 我的藏书馆

首先新建文件夹——myLibrary 在vscode中点击文件>点击 Duplicate Workspace(以工作区的方式打开文件夹myLibrary) 点击duplicate Workspace(打开工作区) 之后,会出现以下界面 点击打开文件夹,选择新建的文件夹,会出…

服务器托管让服务器管理更轻松高效

在信息化飞速发展的今天,服务器作为企业数据处理和信息存储的核心设备,其管理的重要性日益凸显。服务器托管,作为一种高效、专业的服务器管理方式,正逐渐成为众多企业的首选。那么,服务器托管究竟是如何让服务器管理更…

GEE:基于光谱距离方法的变化检测(以滑坡为例)

作者:CSDN @ _养乐多_ 本文将介绍在 Google Earth Engine(GEE)平台上,使用光谱向量距离度量方法进行变化检测的代码。代码中使用哨兵数据的光谱向量,并以检测滑坡为例进行演示。 结果如下图所示, 文章目录 一、参考内容1.1 光谱距离1.2 点积二、代码链接三、完整代码一…

Linux中查看文件内容的命令

文章目录 一、七类常见的Linux的文件二、显示命令三、分页显示四、显示文件前后内容五、压缩、解压缩六、补充 一、七类常见的Linux的文件 字符文件类型-普通文件,包括纯文本文件、二进制文件、各种压缩文件等。在find命令中,type 选项中用 f来表示d目录…

GoogleNet神经网络介绍

一、简介 GoogleNet,也称为GoogLeNet,是谷歌工程师设计的一种深度神经网络结构,它在2014年的ImageNet图像识别挑战赛中取得了冠军。该神经网络的设计特点主要体现在其深度和宽度上,通过引入名为Inception的核心子网络结构&#x…

【Jmeter+Influxdb+Grafana性能监控平台安装与部署】

JmeterInfluxdbGrafana性能监控平台安装与部署 前言Influxdb安装与连接Jmeternfluxdb下载(winodws)Grafana安装与配置 前言 我们在性能测试过程中,在需要较大并发时,为了尽量避免使用GUI界面来节省资源,通常使用命令行…

SAP-怎么查一个帐号访问事务代码的记录或者一个事务代码的被访问记录

起因 上周六,查了某用户对某事务代码的访问记录。今天又要查类似的信息。我发现我居然忘了该怎么查了。于是在处理完事情之后,整理了查询的过程,形成了这篇文章。 经过 热心网友告诉了我一个事务代码:ST03N - 工作负载和性能统…

[Python学习篇] Python解释器

解释器的作用 Python解释器(Interpreter)的作用,通俗理解,就是起到一个翻译的作用,把程序员所编写的代码翻译为计算机能读懂执行的代码。简单地说,Python解释器对输入的Python代码进行解释和执行。Python解…

强!10.6K star,一款开源HTTP测试工具,适合新手,简单、容易上手!

大家好,我是狂师! 今天给大家推荐一款开源的HTTP测试工具:Hurl,相比curl、wget功能更强大,且更容易上手、很适用新手使用。 1、项目介绍 Hurl是一个使用Rust语言开发的命令行工具,它允许用户运行以简单纯…

EasyExcel 复杂表头的导出(动态表头和静态表头)

问题:如图,1部分的表头是动态的根据日期变化,2部分是数据库对应的字段,静态不变的; 解决方案:如果不看1的部分,2部分内容可以根据实体类注解的方式导出,那么我们是不是可以先将动态表…

linux内核网络分析-通用字段“每日读书”

这一节讨论sk_buff的主要字段,而这些字段都与特定的内核功能无关。 struct timeval stamp; 通常只对一个已经接收的封包才有意义,这是一个时间戳,用于避哦啊是封包何时被接收,或者有时候用于表示封包预定传输的时间,此…

护眼台灯哪个牌子最好,护眼台灯五大品牌墙裂分享

近视在儿童中愈发普遍,许多家长开始认识到,除了学业成绩之外,孩子的视力健康同样重要。毕竟,学业的落后可以逐渐弥补,而一旦孩子近视,眼镜便可能成为长期伴随。因此,专业的护眼台灯对于每个家庭…

钉钉服务端API报错 43008 参数需要multipart类型

钉钉服务端API报错 43008 参数需要multipart类型 problem 使用媒体文件上传接口,按照文档输入参数,结果返回报错 # 参数 {"access_token": "xxx""type": "image","media": "/Users/xxx/xxx/s…

上位机图像处理和嵌入式模块部署(qmacvisual之n点标定)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 工业场景中,很多时候图像是用来做测量的。虽然我们很希望载台是平的,摄像头是正对着拍摄物体的,但是运行时间长…

String类教程:如何在Java中使用字符串操作

咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE相关知识点了,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好…

【洛谷】P9240 [蓝桥杯 2023 省 B] 冶炼金属

题目链接 P9240 [蓝桥杯 2023 省 B] 冶炼金属 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 思路 这道题可以用数学的方法去做,但是我想不到😇有兴趣的可以去看看数学的题解 比较简单的思路就是二分查找,轻松简单不费脑,带你…