当前位置: 首页 > news >正文

SELinux零知识学习二十二、SELinux策略语言之类型强制(7)

接前一篇文章:SELinux零知识学习二十一、SELinux策略语言之类型强制(6)

二、SELinux策略语言之类型强制

3. 访问向量规则

AV规则就是按照对客体类别的访问许可指定具体含义的规则,SELinux策略语言目前支持四类AV规则:

  • allow:表示允许主体对客体执行允许的操作。
  • neverallow:表示不允许主体对客体执行指定的操作。
  • auditallow:表示允许操作并记录访问决策信息。
  • dontaudit:表示不记录违反规则的决策信息,且违反规则不影响运行。

(1)通用AV规则语法

虽然这些规则的用途不一样,但它们的基本语法是一样的,每个规则都包含了下面5个元素:

  • 规则名称

allow,dontaudit,auditallow和neverallow。

  • 源类型

授予访问的类型,通常是进程尝试访问的域类型。

  • 目标类型

客体的类型,其被授权可以访问源类型。

  • 客体类别

客体的类别。

  • 许可

表示主体对客体访问时允许的操作类型(也叫做访问向量)。

3)使用AV规则中的多类型和属性

在AV规则中的源和目标区域,都没有限制类型和属性的数量,相反,可以在源和目标字段处列出多个类型和属性。如果有多个类型或属性时,它们之间是用空格进行分隔,并使用大括号将它们括起来,如:

allow user_t { bin_t sbin_t } : file execute;

在这个规则中,目标是bin_t和sbin_t,在源和目标区域有多个类型或属性时,展开方法同单个属性一样。在前面的例子中,内核包括两个密钥,每个目标类型都有一个。

还可以在源或目标区域混合类型的属性,也可以在这两个位置都使用混合的形式。如:

allow {user_t domain} {bin_t file_type sbin_t} : file execute;

如果明确地列出了类型以及类型具有的属性,这是可以的。既然这样,我们实际上列出了两次类型,内核会自动处理这个冗余,只会处理一个实例规则。

4)特殊类型self

策略语言保留了一个关键字self,其用于AV规则中的目标区域,可以当做一个类型使用。如下面这两条规则是等价的:

# 这两条规则是相等的
allow user_t user_t : process signal;
allow user_t self : process signal;

关键字self说明目标类型使用源类型自身,即目标类型等于源类型。前面的例子中,第二条规则只是用关键字创建了一条规则,表明源类型和目标类型都是user_t。

下面来看一个稍微复杂一点的例子:

allow { user_t staff_t } self : process signal;

在这个例子中,实际上创建了两条规则,每条规则的源类型和目标类型都是相同的,完全等同于下面这两条规则:

allow user_t user_t : process signal;
allow staff_t staff_t : process signal;

注意在使用self时,每个类型都创建了等同的规则。需要指出的是user_t不能访问staff_t,反之亦然。

注意:你可能只会在AV规则的目标区域使用特殊类型self,特别要注意的是不能在AV规则的源区域使用self类型。另外,也不能声明一个类型或属性标识符叫做self

当AV规则的源类型为属性或一大串类型时,self作为目标类型显得非常有用。例如:假设我们想让每一个域都可以向自己发送信号,那么可以编写如下规则:

allow domain domain : process signal; # 这不是我们真正想要的

尽管这条规则实现了预期的目标(每个域都可以向它自己发送信号),但也将允许每个域类型向其它域类型发送信号,这个非预期的结果可能成为一个安全灾难。通过self关键字,可以确保每个域类型都只能访问它自身,如:

allow domain self : process signal; # 这才是我们真正想要的

相关文章:

SELinux零知识学习二十二、SELinux策略语言之类型强制(7)

接前一篇文章:SELinux零知识学习二十一、SELinux策略语言之类型强制(6) 二、SELinux策略语言之类型强制 3. 访问向量规则 AV规则就是按照对客体类别的访问许可指定具体含义的规则,SELinux策略语言目前支持四类AV规则&#xff1a…...

cadence layout lvs时出现error

Error:Schematic export failed or was cancelled.Please consult the transcript in the viewer window. 解决办法同下: cadence layout lvs时出现error-CSDN博客...

python练习题(markdown中的60道题)

1.Demo01 摄氏温度转化为华氏温度 celsius float(input(输入摄氏温度:)) fahrenheit (9/5)*celsius 32 print(%0.1f 摄氏温度转为华氏温度为 %0.1f % (celsius, fahrenheit))结果: 2.Demo02 计算圆柱体的体积 h, r map(float, input().split())# …...

【JavaSE】-4-单层循环结构

回顾 运算符: 算术 --、逻辑 && & || |、比较 、三元 、赋值 int i 1; i; j i; //j2 i3 syso(--j"-----"i) //1 3 选择结构 if(){} if(){}else{} if(){}else if(){}else if(){}else{}//支持byte、short、int //支持char //支持枚举…...

12、人工智能、机器学习、深度学习的关系

很多年前听一个机器学习的公开课,在Q&A环节,一个同学问了老师一个问题“机器学习和深度学习是什么关系”? 老师先没回答,而是反问了在场的同学,结果问了2-3个,没有人可以回答的很到位,我当时也是初学一脸懵,会场准备的小礼品也没有拿到。 后来老师解释“机器学习和…...

webpack external 详解

作用:打包时将依赖独立出来,在运行时(runtime)再从外部获取这些扩展依赖,目的时解决打包文件过大的问题。 使用方法: 附上代码块 config.set(externals, {vue: Vue,vue-router: VueRouter,axios: axios,an…...

代码混淆不再愁:一篇掌握核心技巧

​ 1. 概述 代码混淆是将计算机程序的代码转换成一种功能上等价,但是难以阅读和理解的形式。 对于软件开发者来说,代码混淆可以在一定程度上保护程序免被逆向。 对于逆向工程师来说,学习代码混淆可以帮助我们研究反混淆技术。 2. 常见混淆…...

华为云IoT与OpenHarmony深度协同,加速设备上鸿即上云【云驻共创】

本次专题论坛探讨了华为云IoT与Open Harmony的深度协同、边缘屏蔽硬件差异、实现智慧隧道全方位智能化管理,以及华为云与Open Harmony生态的合作。同时也介绍了华为云物联网卡平台、HTTP2协议以及华为物联网在交通领域的应用。 一.华为云IoT与Open Harm…...

深入浅出 Linux 中的 ARM IOMMU SMMU I

Linux 系统下的 SMMU 介绍 在计算机系统架构中,与传统的用于 CPU 访问内存的管理的 MMU 类似,IOMMU (Input Output Memory Management Unit) 将来自系统 I/O 设备的 DMA 请求传递到系统互连之前,它会先转换请求的地址,并对系统 I…...

关于sqlModel 实现查询表单入参空值和模糊匹配一次性查询

在处理表单提交后,后端 SQL 查询部分空值和部分模糊值时,可以使用 SQLModel 构建动态查询。你可以根据表单数据动态构建 SQL 查询,并且只添加那些非空的、有值的条件。 以下是一个示例,假设你有一个模型 Item: from …...

数据仓库架构之详解Kappa和Lambda

目录 一、前言 二、架构详解 1 Lambda 架构 1.1 Lambda 架构组成 1.2 Lambda 特点 1.3 Lambda 架构的优点 1.4 Lambda 架构的不足 2 Kappa 架构 2.1 Kappa 架构的核心组件 2.2 Kappa 架构优点 2.3 Kappa 架构的注意事项 三、区别对比 四、选择时考虑因素 一、前言 …...

Banana Pi BPI-R3 Mini 开源路由器,也能拍出艺术美感

香蕉派BPI-R3 Mini路由器板开发板采用联发科MT7986A(Filogic 830)四核ARM A53芯片设计,板载2G DDR 内存,8G eMMC和128MB SPI NAND存储,是一款非常高性能的开源路由器开发板,支持Wi-Fi6 2.4G/5G(MT7976C)&am…...

Django高级之-分页器

目录 一、引入 二、分页推导 三、数据总页面获取 四、内置方法之divmod 五、终极大法 六、自定义分页器使用 【1】后端 【2】前端 一、引入 针对上一小节批量插入的数据 我们在前端展示的时候发现一个很严重的问题一页展示了所有的数据,数据量太大&#xf…...

Vue-报错No “exports“ main defined in xx

vue报错:No "exports" main defined in F:\wjh\vue#Practice\EasyQuestionnaire-web-master\EasyQuestionnaire-web-master\node_modules\babel\helper-compilation-targets\package.json 1.在文件中找到该路径的package.json文件, 2.按照提示…...

EL-input添加双击或者单击事件

#El-lement UI # 这个框架确实给我们带来了很多好处,最近一直忙于项目,没时间来写文章,最近有个问题困扰我很久,最终却很简单的解决了,记下来希望能帮助更多的人。 大家都知道el-input是无法直接添加click或者dblcli…...

OpenCV快速入门:绘制图形、图像金字塔和感兴趣区域

文章目录 前言一、绘制图形1. 绘制直线2. 绘制圆3. 绘制矩形4. 绘制椭圆5. 绘制多边形6. 绘制文字7. 可选参数8. 手工绘制OpenCV的logo 二、图像金字塔1. 高斯金字塔2. 拉普拉斯金字塔 三、感兴趣区域(ROI)数组切片方式OpenCV截取方式 总结 前言 OpenCV…...

Three.js相机模拟

有没有想过如何在 3D Web 应用程序中模拟物理相机? 在这篇博文中,我将向你展示如何使用 Three.js和 OpenCV 来完成此操作。 我们将从模拟针孔相机模型开始,然后添加真实的镜头畸变。 具体来说,我们将仔细研究 OpenCV 的两个失真模型,并使用后处理着色器复制它们。 拥有逼…...

Verilog基础:仿真时x信号的产生和x信号对于各运算符的特性

相关阅读 Verilog基础https://blog.csdn.net/weixin_45791458/category_12263729.html?spm1001.2014.3001.5482 信号爆x也许是所有IC人的噩梦,满屏的红色波形常让人头疼不已,但x信号的产生原因却常常只有几种,只要遵循一定的代码规范&#…...

穿越数据的迷宫-数据管理知识介绍

一、权威书籍介绍 《穿越数据的迷宫》 本书分12章重点阐述了数据管理的重要性,数据管理的挑战,DAMA的数据管理原则,数据伦理,数据治理,数据生命周期管理的规划和设计,数据赋能和数据维护,使用…...

3

目录 【任务 3】私有云运维开发[10 分] 【题目 1】Ansible 服务部署:部署 MariaDB 集群[2 分] 【题目 2】Ansible 服务部署:部署ELK 集群服务[2 分] 【题目 3】Python 运维开发:基于OpenStack Restful API 实现镜像上传[1 分] 【题目 4】Pyth…...

Leetcode 3577. Count the Number of Computer Unlocking Permutations

Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...

uniapp微信小程序视频实时流+pc端预览方案

方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度​WebSocket图片帧​定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐​RTMP推流​TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...

SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)

上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...

在Ubuntu24上采用Wine打开SourceInsight

1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...

【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)

前言: 双亲委派机制对于面试这块来说非常重要,在实际开发中也是经常遇见需要打破双亲委派的需求,今天我们一起来探索一下什么是双亲委派机制,在此之前我们先介绍一下类的加载器。 目录 ​编辑 前言: 类加载器 1. …...

毫米波雷达基础理论(3D+4D)

3D、4D毫米波雷达基础知识及厂商选型 PreView : https://mp.weixin.qq.com/s/bQkju4r6med7I3TBGJI_bQ 1. FMCW毫米波雷达基础知识 主要参考博文: 一文入门汽车毫米波雷达基本原理 :https://mp.weixin.qq.com/s/_EN7A5lKcz2Eh8dLnjE19w 毫米波雷达基础…...

【Kafka】Kafka从入门到实战:构建高吞吐量分布式消息系统

Kafka从入门到实战:构建高吞吐量分布式消息系统 一、Kafka概述 Apache Kafka是一个分布式流处理平台,最初由LinkedIn开发,后成为Apache顶级项目。它被设计用于高吞吐量、低延迟的消息处理,能够处理来自多个生产者的海量数据,并将这些数据实时传递给消费者。 Kafka核心特…...

​​企业大模型服务合规指南:深度解析备案与登记制度​​

伴随AI技术的爆炸式发展,尤其是大模型(LLM)在各行各业的深度应用和整合,企业利用AI技术提升效率、创新服务的步伐不断加快。无论是像DeepSeek这样的前沿技术提供者,还是积极拥抱AI转型的传统企业,在面向公众…...

MeshGPT 笔记

[2311.15475] MeshGPT: Generating Triangle Meshes with Decoder-Only Transformers https://library.scholarcy.com/try 真正意义上的AI生成三维模型MESHGPT来袭!_哔哩哔哩_bilibili GitHub - lucidrains/meshgpt-pytorch: Implementation of MeshGPT, SOTA Me…...