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

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

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

3. 访问向量规则

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

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

(1)通用AV规则语法

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

  • 规则名称

allow,dontaudit,auditallow和neverallow。

  • 源类型

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

  • 目标类型

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

  • 客体类别

客体的类别。

  • 许可

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

2)使用AV规则中的属性

虽然到目前为止看到的AV规则都很简单,但语法支持多种方法列出类型、客体类别和许可,使我们可以灵活地利用,并使规则语句更简单。

在前面的简单样式的规则示例中,直接引用了源类型(user_t)和目标类型(bin_t),这样在源类型或目标类型中要引用多个类型也是很方便的,其中一个方法就是使用属性在AV规则中能使用类型的地方都可以使用属性

例如,假设定义了一个属性(exec_type),我们打算将其与所有的普通用户程序(通过域类型user_t标记)都可以执行的文件类型关联,那么我们可以将上面的例子改为引用属性exec_type,而不用再明确地指定类型bin_t了,如:

allow user_t exec_type : file execute;

与前面的例子有点不同,这里的规则没有反映出什么将被内核执行,包括属性的规则将在内核中进行扩展,与属性关联的每个类型都有一个独立的密钥,如果有20个文件类型与exec_type属性关联,内核AVC可能在20个密钥结束,每个都授予对类型为user_t的file客体类别execute访问权。

我们也可以在AV的源类型位置处使用属性,或者干脆在源类型和目标类型处都使用属性。例如:假设我们创建了一个属性(domain),并将所有的域类型(包括user_t)都与其关联,我们想要所有的域类型都可以执行属性为file_type的文件类型,使用一条规则就实现这个目标:

allow domain exec_type : file execute;

为了更好地解释规则扩展的原理,假设我们的策略关联了类型为user_t和staff_t的属性domain,以及文件类型为bin_t、local_bin_t和sbin_t的属性exec_type,那么上面规则的效果就等同于如下这些规则:

allow user_t bin_t : file execute;
allow user_t local_bin_t : file execute;
allow user_t sbin_t : file execute;allow staff_t bin_t : file execute;
allow staff_t local_bin_t : file execute;
allow staff_t sbin_t : file execute;

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

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

相关文章

Linux 启动停止重启jar包shell脚本

#!/bin/bash# 设置JAR包的路径 JAR_PATH"/deploy/simple/simple.jar"# 设置Java虚拟机参数 JAVA_OPTS"-Xmx512m -Xms256m"start() {# 日志文件存放位置LOG_PATH"/deploy/simple/simple.log"echo "Starting the application..."nohup j…

鸿蒙常用三方库地址一览

记录下三方库列表,以后需要的时候方便查找: tpc_resource: 三方组件资源汇总

竞赛选题 目标检测-行人车辆检测流量计数

文章目录 前言1\. 目标检测概况1.1 什么是目标检测?1.2 发展阶段 2\. 行人检测2.1 行人检测简介2.2 行人检测技术难点2.3 行人检测实现效果2.4 关键代码-训练过程 最后 前言 🔥 优质竞赛项目系列,今天要分享的是 行人车辆目标检测计数系统 …

Android13 adb 无法连接?

Android13 adb 无法连接? 文章目录 Android13 adb 无法连接?一、前言二、替换adbGoogle 官网对adb的介绍:Google 提供的adb tools的下载: 三、总结1、adb connect 连接后显示offline2、输入adb devices 报错:版本不匹配导致3、adb常用命令4…

JAVA小游戏 “拼图”

第一步是创建项目 项目名自拟 第二部创建个包名 来规范class 然后是创建类 创建一个代码类 和一个运行类 代码如下: package heima;import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import jav…

各种类型的API接口,应有尽有

企业工商三要素核验 API:通过输入企业名称、法人、注册号 /组织机构代码 /统一社会信用代码,验证三者是否匹配一致。企业工商四要素核验:传入企业名称、社会统一信用代码、法人名称、法人身份证,校验此四项是否一致。全国快递物流…

企业微信机器人定时发送图文信息,后续无需人工操作

企业微信群机器人是企业微信的内置功能,可以理解为是一个群提醒通知工具,接收数据并自动发送信息到企业微信群中。 数环通实现打通定时器和企业微信机器人的对接,定时执行自动化流程,无需人工干预,实现工作流程自动化&…

【EI会议征稿】2024年电气技术与自动化工程国际学术会议 (ETAE 2024)

2024年电气技术与自动化工程国际学术会议 (ETAE 2024) 2024 International Conference on Electrical Technology and Automation Engineering 2024年电气技术与自动化工程国际学术会议 (ETAE 2024) 将于2024年3月8-10日在中国杭州召开。电气工程及其自动化和人们的日常生活…

电磁场与电磁波part5--均匀平面波在无界空间的传播

目录 1、相位速度 2、波阻抗 3、理想介质中均匀平面波的传播特点 4、色散现象 5、导电媒质中均匀平面波的传播特点 6、趋肤效应 7、电磁波的极化 1、相位速度 电磁波的等相位面在空间中的移动速度(相速) 在自由空间(自由空间的光速&a…

运营之光-读书笔记1

第一章 运营是什么 运营,其实是一种需要通过较为多样的手段和技能来更好地实现“用户获取&用户付费”以及“更好地实现已有用户的维系”这样两个目的的智能。通过一系列行为为一款产品增添了更多的价值,并令其可以面向用户良性运转起来。 一、经典…

SpringBoot——入门及原理

SpringBoot用来简化Spring应用开发,约定大于配置,去繁从简,是由Pivotal团队提供的全新框架。其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置(有特殊需求可以添加自己的配置覆盖默认配…

OpenAI Completions API 、Chat Completions API的核心参数

OpenAI Completions API 的核心参数包括以下几个: 1、prompt(提示):这是你希望模型开始生成文本的初始字符串。模型会在这个字符串的基础上生成剩余的文本。 2、max_tokens(最大令牌数):这是模…

linux上交叉编译qt库

linux上交叉编译qt库 Qt程序从X86平台Linux移植到ARM平台Linux需要做什么 1.在ubuntu上使用qt的源码交叉编译出Qt库 2.将编译好的库拷贝到开发板上并设置相应的环境变量(库路径啥的) 前两步一劳永逸,做一次就行 3.X86上写好程序代码&…

浅谈多回路电表在荷兰光伏系统配电项目中的应用

1.背景信息 Background: 随着全球化石能源(石油,煤炭)越来越接近枯竭,污染日趋严重,气候日益变暖等问题,全球多个国家和地区相继出台了法规政策,推动了光伏产业的发展。但是现有的光…

UE5 - ArchvizExplorer - 数字孪生城市模板 - 功能修改

数字孪生项目,大多是双屏互动,而非下方菜单点击,所以要做一番改造 参考:https://blog.csdn.net/qq_17523181/article/details/133853099 1. 去掉提示框 打开BP_MasterMenu_Widget,进入EventGraph,断开Open…

给折腿的罗技G512键盘换键帽

文章目录 1\. 引言2\. 操作2.1. 用打火机烤2.2. 用钳子拔出来2.2.1. 拔出成功2.2.2. 放大细看2.3. 更换键帽 1. 引言 G512的轴采用的是塑料连接,特别容易腿折在里面,换着的时候,得先把这个卡在里面的塑料腿拿出来才行 放大效果图 2. 操作 可…

网站被CC攻击了怎么办?

随着互联网的普及和发展,越来越多的用户开始依赖各类网站进行信息获取、社交互动等活动。然而,随着互联网的发展,网络安全环境也日益严峻,网站的运行经常会受到各种攻击的威胁,其中常见的攻击类型就是CC攻击了。当用户…

08-流媒体-RTMP拉流

整体方案: 采集端:摄像头采集(YUV)->编码(YUV转H264)->写封装(H264转FLV)->RTMP推流 客户端:RTMP拉流->解封装(FLV转H264&#xff09…

前端 webpack 面试题

文章目录 webpack打包流程webpack声明周期自开发 webpack 插件loader和plugin的区别Loader(加载器):Plugin(插件):总结区别:webpack如何热启动及原理HMR(热更新实现的原理)websocketfs.watch说说一些常用的loader和plugin常用Loader:常用Plugin:webpack和vite的区别1. *…

Spring Boot中使用Redis进行大数据缓存

Spring Boot中使用Redis进行大数据缓存 在Spring Boot中使用Redis进行大数据缓存是一种常见的做法,因为Redis是一种高性能的内存数据库,适用于缓存大量数据。以下是说明和示例代码,演示如何在Spring Boot项目中使用Redis进行大数据缓存。 步…