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规则:…...
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】前端 一、引入 针对上一小节批量插入的数据 我们在前端展示的时候发现一个很严重的问题一页展示了所有的数据,数据量太大…...
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…...
OfficeAI插件深度评测:用自然语言驱动Word与Excel,提升办公效率
1. 项目概述:当AI助手嵌入你的Office工具栏如果你和我一样,每天的工作都离不开Word和Excel,那一定对重复性的文档撰写、数据整理和格式调整感到疲惫。手动编写复杂的Excel公式、反复调整文档格式、或者为了一个合适的表达而绞尽脑汁ÿ…...
ESP32无人机开发指南:从硬件到飞控系统解析
1. SkyByte Mini无人机项目概述SkyByte Mini是一款基于ESP32-WROOM-32模块的微型WiFi/蓝牙控制无人机,采用开源ESP32-Drone固件,专为爱好者和教育用途设计。这款无人机的核心特点在于其"all-in-one"的PCB设计,无需3D打印部件即可完…...
【W10】Spring Boot 参数验证详解:从问题引入到源码分析
本次为W10作业,本文基于若依(RuoYi)框架,深入讲解 Spring Boot 中参数验证的完整流程,包括如何触发验证、前后端交互、源码分析以及生产环境的日志排查一、问题引入 场景描述 假如要在程序里对接口的函数参数进行限制,大家有哪些解…...
构建命令行记忆系统:从原理到实践,打造个人终端知识库
1. 项目概述:一个为命令行注入记忆的“外挂”如果你经常在终端里工作,肯定遇到过这样的场景:上周你刚用一条复杂的ffmpeg命令处理了视频,今天想再用,却怎么也想不起具体的参数组合了;或者,你花了…...
麒麟KYLINOS V10 SP1忘记密码别慌!手把手教你用恢复模式重置(含root密码设置)
麒麟KYLINOS V10 SP1密码重置全攻略:从紧急救援到Root权限配置 那天下午三点,技术支持的铃声突然响起。电话那头是市场部的小李,声音里透着明显的焦虑:"我试了所有能想到的密码组合,系统就是不让进..." 这种…...
揭秘礼物推送算法模型:如何理解用户偏好并精准匹配礼物
在数字时代的浪潮中,礼物推送服务已悄然成为人们表达情感、维系关系的重要方式。无论是节日庆典、生日祝福,还是日常的惊喜时刻,精准的礼物推荐都能让心意传递得更加温暖和贴心。然而,实现这一目标的背后,是一套复杂而…...
类脑计算融合物理机理,镜像视界实现孪生高效落地
类脑计算融合物理机理,镜像视界实现孪生高效落地——镜像视界新一代高效可信镜像孪生技术白皮书前言当前数字孪生与视频孪生行业,深陷落地成本高、建模周期长、算法不可信、规模化无望的深层困境,传统技术路线始终无法突破数据驱动黑盒、重型…...
设计:从需求洞察到创新落地的全流程精要
在设计领域,从模糊诉求到可执行方案,往往横跨认知解码与系统推演。需求洞察并非表层倾听,而是深入挖掘潜在痛点与行为动因,要求设计者既保持对人的细腻体察,又能辨识数据背后的深层真相。创新落地并非依赖灵光一现&…...
想在Win10任务栏显示秒数?试试用StartAllBack配合注册表修改(附详细步骤)
在Windows 10任务栏精准显示秒数的完整方案 每次盯着任务栏的时间区域,总觉得少了点什么?对于需要精确计时的工作场景——比如直播倒计时、程序调试或是单纯的时间强迫症患者来说,系统默认隐藏秒数的设计确实不够友好。虽然微软在Windows 10…...
千问 LeetCode 2127.参加会议的最多员工数 public int maximumInvitations(int[] favorite)
这道题是图论中的经典问题,考察的是基环树的处理。🧠 题目分析1. 建模:将员工看作图的节点,favorite[i] 表示从节点 i 指向节点 favorite[i] 的一条有向边。 2. 图的结构:由于每个节点出度为 1,这个图由若…...
