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

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

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

3. 访问向量规则

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

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

(1)通用AV规则语法

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

  • 规则名称

allow,dontaudit,auditallow和neverallow。

  • 源类型

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

  • 目标类型

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

  • 客体类别

客体的类别。

  • 许可

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

一个简单的AV规则有一个源类型、目标类型、客体类别和许可。在前文的allow规则中可以看到许多AV规则,如:

allow user_t bin_t : file execute;

这个allow规则的源类型为user_t、目标类型为bin_t、客体类别为file、许可为execute,这个规则可以解读为:允许user_t执行类型为bin_t的文件。

这4个AV规则语法都一样,只是关键字(规则名称)不同。例如,可以将上面这个例子替换成auditallow规则,只需要替换掉规则名称即可:

auditallow user_t bin_t : file execute

1)AV规则的密钥

在Linux内核中,所有的AV规则都是通过一个组源类型、目标类型和许可进行唯一性标识的这个三重组成为一个密钥,当作哈希表使用,缓存在策略数据结构中。当一个进程产生了一个访问请求时,SELinux LSM模块被要求允许基于这个密钥进行访问。

那么,如果不止一个规则使用同一密钥(即相同的源类型、目标类型和许可)时,会发生什么状况呢?如下面的规则:

allow user_t bin_t : file execute;
allow user_t bin_t : file read;

类型为user_t的进程对类型为bin_t的文件是可读还是可执行?答案是两者皆可。所有有相同密钥的规则通过checkpolicy进行组合,编译后的策略将只有一条规则,同时具有read和execute许可,它们都会被安全服务器接受。所有的AV都按照这种方式进行累加。

警告:策略中的每个子级AV规则与其上级AV规则具有相同的密钥,并将许可adds进最高级规则编译策略中,不存在removing授予其它角色的许可的概念。因此要当心,尽管你在策略中的某部分编写了良好的规则,但可能在策略的其它地方会授予额外的许可。

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

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

相关文章

centos7中安装Nginx和使用Nginx详细操作

环境: 准备了三台centos7虚拟机:192.168.213.4、192.168.213.5、192.168.213.6。 一、安装 三台虚拟机都安装下面的步骤执行,安装Nginx,为后面的使用演示使用。 1、安装必备组件: sudo yum install yum-utils2、配置yum源 在下面的文件目录…

Linux系统下安装RabbitMQ超简单教程(非详细)(Centos8)

文章目录 一、下载所需安装包二、安装三、启动rabbitmq四、添加远程用户五、图形化访问六、修改rabbitmq的启动端口和管理端口(没有这个需求就不用看了)七、需要注意版本问题可能遇到的错误和解决方式version GLIBC_2.34 类型错误undefined function rab…

云原生微服务-理论篇

文章目录 分布式应用的需求分布式架构治理模式演进ESB 是什么?微服务架构 MSA微服务实践细节微服务治理框架sidercar 什么是service mesh?康威定律微服务的扩展性什么是MSA 架构?中台战略和微服务微服务总体架构组件微服务网关服务发现与路由…

硬盘无法格式化怎么办?

许多用户在尝试格式化硬盘、SD卡、USB闪存驱动器时可能会遇到无法格式化硬盘的问题,并且还会伴随着Windows无法完成格式化或格式化未成功完成之类的错误消息弹窗。那么,硬盘无法格式化原因是什么呢?硬盘无法格式化怎么办呢?下面我…

MIB 6.1810实验Xv6 and Unix utilities(5)find

难度:moderate Write a simple version of the UNIX find program for xv6: find all the files in a directory tree with a specific name. Your solution should be in the file user/find.c. 题目要求:实现find ,即在某个路径中,找出某…

解决 uniapp 开发微信小程序 不能使用本地图片作为背景图 问题

参考博文:uniapp微信小程序无法使用本地静态资源图片(背景图在真机不显示)的解决方法_javascript技巧_脚本之家 问题:uniapp 开发微信小程序,当使用本地图片作为 background-image 时,真机无法显示 解决: 方法一&am…

计算机毕业设计选题推荐-个人博客微信小程序/安卓APP-项目实战

✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

HTML5-原生History

更多内容,访问: history hash 单页面应用和多页面应用 React-Router源码分析-History库 History库源码分析-Action 动作类型 History库源码分析-createLocation History库源码分析-createPath History库源码分析-parsePath history 浏览器历史记录对象 属性: le…

来聊聊阿里1688 /拼多多API接口接入| 让需求回到产品端

昨儿办公室讨论起了1688。 对,就是阿里搞批发的那个网站。 在上面,你可以买到各种各样价格低廉的产品,比如,办公用具、女孩子的皮筋、小孩子的玩具等等。 在小批量上,它和拼多多定价类似,但二者的赛道却不同…

PHP 中传值与传引用的区别,什么时候传值什么时候传引用?

传值:当使用传值的方式时,函数或方法会创建原始变量的一个副本,并将该副本传递给函数或方法。在函数或方法内部,对副本的任何修改都不会影响到原始变量。当函数或方法执行完毕后,副本被销毁,不再使用。 传引…

Unity--互动组件(Toggle Group)||Unity--互动组件(Slider)

Toggle Group 属于同一组的切换开关受到限制,因此一次只能打开其中一个开关,按下其中一个开关时,其他的开关将会自动关闭; Allow Switch Off:(允许关闭) 如果禁用此设置,则按下当前…

开发《星球大战》小游戏的意义

开发《星球大战》小游戏的意义有以下几点: 学习和掌握游戏开发的基本技能:通过开发《星球大战》小游戏,可以学习和掌握游戏开发的基本技能,包括游戏策划、游戏设计、游戏编程和游戏测试等方面的技能。加深对游戏行业的了解&…

大数据HCIE成神之路之数学(2)——线性代数

线性代数 1.1 线性代数内容介绍1.1.1 线性代数介绍1.1.2 代码实现介绍 1.2 线性代数实现1.2.1 reshape运算1.2.2 转置实现1.2.3 矩阵乘法实现1.2.4 矩阵对应运算1.2.5 逆矩阵实现1.2.6 特征值与特征向量1.2.7 求行列式1.2.8 奇异值分解实现1.2.9 线性方程组求解 1.1 线性代数内…

GO 抽象工厂模式设计

既然工厂模式每个产品都需要实现对应的工厂类去生成相关实例,提取产品的共性,提高代码的内聚性, 就是抽象工厂模式要干的。在抽象工厂中,依然是不同产品对应不同的工厂类,但可以尽可能将具有相同共性的产品类别合在一起…

什么是虚拟DOM(Virtual DOM),说说工作原理

虚拟DOM(Virtual DOM)是一种将页面的状态抽象为JavaScript对象表示的概念,用于提高Web应用程序的性能和渲染效率。 虚拟DOM的工作原理如下: 1: 初始渲染:首先,通过JavaScript对象(…

Revive开发商加入VR开源标准OpenXR

导读作为一款能让HTC Vive用户玩到Oculus平台游戏的软件,它的开发商CrossVR今日宣布即将加盟为VR和AR应用程序开源组织,即OpenXR。 由Khronos Group引领的OpenXR旨在创建一个标准化且免版税的应用程序编程接口(API),该…

概念解析 | 光电神经网络:optoelectronic neural network

注1:本文系“概念解析”系列之一,致力于简洁清晰地解释、辨析复杂而专业的概念。本次辨析的概念是:光电神经网络。 概念解析 | 光电神经网络的原理、挑战与未来 1. 背景介绍 在过去的十年中,深度学习和神经网络在许多领域取得了显著的成就,如图像识别、自然语言处理、医疗…

c++ call_once 使用详解

c call_once 使用详解 std::call_once 头文件 #include <mutex>。 函数原型&#xff1a; template<class Callable, class... Args> void call_once(std::once_flag& flag, Callable&& f, Args&&... args);flag&#xff1a;标志对象&#xf…

【算法专题】双指针

双指针 双指针1. 移动零2. 复写零3. 快乐数4. 盛水最多的容器5. 有效三角形的个数6. 和为s的两个数字7. 三数之和8. 四数之和 双指针 常见的双指针有两种形式&#xff0c;⼀种是对撞指针&#xff0c;⼀种是左右指针。 对撞指针&#xff1a;⼀般用于顺序结构中&#xff0c;也称…

【深度学习实验】网络优化与正则化(七):超参数优化方法——网格搜索、随机搜索、贝叶斯优化、动态资源分配、神经架构搜索

文章目录 一、实验介绍二、实验环境1. 配置虚拟环境2. 库版本介绍 三、优化算法0. 导入必要的库1. 随机梯度下降SGD算法a. PyTorch中的SGD优化器b. 使用SGD优化器的前馈神经网络 2.随机梯度下降的改进方法a. 学习率调整b. 梯度估计修正 3. 梯度估计修正&#xff1a;动量法Momen…