Linux强制访问控制机制模块分析之mls_type.h
2.4.2 mls_type.h
2.4.2.1文件描述
对于mls_type.h文件,其完整文件名为security/selinux/ss/mls_types.h,该文件定义了MLS策略使用的类型。
2.4.2.2主要变量定义
该文件定义了三个宏,分别为:mls_level_incomp()、mls_evel_between()及mls_range_contains(),其作用如表2-2所示:
表2-2 mls_type.h中定义的宏的说明
宏名
宏的作用
mls_level_incomp()
判断两个安全级别是否不可比
mls_level_between()
判断一个安全级别是否位于另外两个安全级别之间
mls_level_contains()
判断两个安全级别之间的包含关系
2.4.2.3结构体定义
对于该文件中定义的结构体mls_level及mls_range等详见“Linux多安全策略和动态安全策略框架机制模块代码分析报告”一文,这里不再赘述。
2.4.2.4外部函数
对于该文件涉及的外部函数功能,参见“Linux多安全策略和动态安全策略框架机制模块代码分析报告”一文,这里不再赘述。
2.4.2.5内部函数
对于该文件中定义的各内部函数,详细解释参见2.3小节。
2.4.2.6核心代码注释
该文件中只定义了mls_level_isvalid()和mls_context_to_sid()两个函数,它们用来表示安全级别间的关系,下面主要对这两个函数进行详细解释。
static inline int mls_level_eq(struct mls_level *l1, struct mls_level *l2)
{
/*
* www.qixoo.qixoo.com如果安全级别l1的敏感属性等于安全级别l2的敏感属性并且l1的类别集* 合等于l2的类别集合,则返回真。
*/
return ((l1->sens == l2->sens) &&ebitmap_cmp(&l1->cat, &l2->cat));
}
static inline int mls_level_dom(struct mls_level *l1, struct mls_level *l2)
{
/*
* 如果安全级别l1的敏感属性大于等于安全级别l2的敏感属性并且l1的类* 别集合包含l2的类别集合,则返回真。
*/
return ((l1->sens >= l2->sens) &&ebitmap_contains(&l1->cat, &l2->cat));
}
Linux强制访问控制机制模块分析之mls_type.h的更多相关文章
- FreeBSD 5.0中强制访问控制机制的使用与源代码分析【转】
本文主要讲述FreeBSD 5.0操作系统中新增的重要安全机制,即强制访问控制机制(MAC)的使用与源代码分析,主要包括强制访问控制框架及多级安全(MLS)策略两部分内容.这一部分讲述要将MAC框架与 ...
- 【原创】Linux select/poll机制原理分析
前言 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 1. 概述 Linux系统 ...
- [置顶] 强制访问控制内核模块Smack
Smack(Simplified Mandatory Access Control Kernel)是Casey Schaufler[15]于2007年在LSM基础上实现的Linux强制访问控制安全模块 ...
- linux RCU锁机制分析
openVswitch(OVS)源代码之linux RCU锁机制分析 分类: linux内核 | 标签: 云计算,openVswitch,linux内核,RCU锁机制 | 作者: yuzhih ...
- 解析 Linux 内核可装载模块的版本检查机制
转自:http://www.ibm.com/developerworks/cn/linux/l-cn-kernelmodules/ 为保持 Linux 内核的稳定与可持续发展,内核在发展过程中引进了可 ...
- Linux内核OOM机制的详细分析(转)
Linux 内核 有个机制叫OOM killer(Out-Of-Memory killer),该机制会监控那些占用内存过大,尤其是瞬间很快消耗大量内存的进程,为了 防止内存耗尽而内核会把该进程杀掉.典 ...
- Linux 线程实现机制分析 Linux 线程模型的比较:LinuxThreads 和 NPTL
Linux 线程实现机制分析 Linux 线程实现机制分析 Linux 线程模型的比较:LinuxThreads 和 NPTL http://www.ibm.com/developerworks/c ...
- Linux kernel workqueue机制分析
Linux kernel workqueue机制分析 在内核编程中,workqueue机制是最常用的异步处理方式.本文主要基于linux kernel 3.10.108的workqueue文档分析其基 ...
- Linux 线程实现机制分析 Linux 线程实现机制分析 Linux 线程模型的比较:LinuxThreads 和 NPTL
Linux 线程实现机制分析 Linux 线程实现机制分析 Linux 线程模型的比较:LinuxThreads 和 NPTL http://www.ibm.com/developerworks/c ...
随机推荐
- 总结Gerrit常用命令
查看分支列表,带有*的分支表示是当前所在分支[root@115~~]#git branch 查看分支详细情况 (推荐这种方式)[root@115~~]#git branch -av 创建分支(比如de ...
- poj 1159 Palindrome
Palindrome Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 59094 Accepted: 20528 Desc ...
- git config配置文件
设置 git status的颜色. git config --global color.status auto 一.Git已经在你的系统中了,你会做一些事情来客户化你的Git环境.你只需要做这些设置一 ...
- 你都认识下面这些参数么?【Camera】
在调试的时候利用下面这个函数将 Camera AP 部分所设置的参数全部 dump 出来了,真是多啊! 这里仅限于 MTK 平台,MTK 自己在相机这块添加了许多功能,所以看起来就有一大堆的参数. 调 ...
- 多个相同jar存在时的引用顺序
起因:今天一个aar包在测试环境中正常运行,使用soapui测试正常返回,在本地环境中运行则老是报数据库连接异常,经检查,是因为在运行时环境中缺少ojdbc相关的jar包引起的. 重新打了一个aar包 ...
- MVC3迁移MVC4相关问题
mvc3迁移到mvc4后,发布到服务器,出现了如下错误: [A]System.Web.WebPages.Razor.Configuration.RazorPagesSection cannot be ...
- iOS技巧,宏定义
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAnoAAAPCCAYAAADvRHWgAAAAAXNSR0IArs4c6QAAAZ1pVFh0WE1MOm
- 详解.NET IL代码
一.前言 IL是什么? Intermediate Language (IL)微软中间语言 C#代码编译过程? C#源代码通过LC转为IL代码,IL主要包含一些元数据和中间语言指令: JIT编译器把IL ...
- sql server T-SQL 基础
SQL语言按照用途可以分为如下3类: ①DDL(Data Definition Language) 数据定义语言: 定义修改和删除数据库.表.索引和视图等 ②DML(Data Manipulatio ...
- jquery hasClass、removeClass、addClass方法
hasClass(class) 检查当前的元素是否含有某个特定的类,如果有,则返回true. 参数: class:用于匹配的类名. ---------------------------------- ...