安全上下文

(一)、类型强制策略的安全上下文

所有的操作系统访问控制都是基于与主体和客体相关的访问控制属性的。在SELinux中,访问控制属性杯称作安全上下文。所有的客体(文件,进程间通信,通信管道,套接字,网络主机等)和主体(进程)有一个和他们相关的单一安全上下文。一个安全上下文有三个元素:用户,角色和类型标识符。指定和显示一个安全上下文常用的格式如下:

用户(user):角色(role):类型标识符(type)

每一个元素的字符串标识符杯定义在SELinux的策略语言中,策略语言的细节后面慢慢讨论。就现在来说,仅仅理解一个有效的安全上下文一定要有一个有效的用户,角色和类型标识符,并且标识符被策略书写者定义。每一个标识符的命名空间都是正交的。(所以,举个例子,用户,角色和类型有相同的字符串标识符是可以的,但是不推荐使用。)

检查安全上下文:

SELinux通过添加-Z选项修改了系统命令来展示主体和客体的安全上下文。例如,ls -Z 显示了文件系统对象的安全上下文,ps -Z展示了进程的安全上下文。另外一个有用的命令是 id,他展示你的shell的安全上下文(也就是说,你的当前的用户,角色和类型)。下面的例子展示了一个运行在SELinux中的shell的安全上下文。

$ id -Z

joe:user_r:user_t

你可以在你自己的SELinux中使用这些命令,正如我们在这一章节中使用的一样。

(二)、SELinux和标准Linux比较

此时此刻,比较在标准Linux和SELinux中的访问控制属性是非常有用的。为了简单起见,我们坚持使用常用的文件系统对象,例如文件和目录。在标准Linux中,主体的进程访问属性是通过进程结构体提供的在linux内核中所有进程的真实有效的用户ID和组ID。这些属性被内核所保护着,并且经过一些列的控制方式来设置。包括登录进程和setuid程序。对于客体来说,文件的索引节点包含着一系列的访问模式位和文件的用户ID和组ID,前者是基于三个读/写/可执行位的集合来实现控制访问,这三个分别代表文件拥有者,文件组和其他任何人。后者决定了文件的所有者和组来决定对于一个给定的访问尝试应该使用哪一个位集合。

正如前面所述,在SELinux中,访问控制属性他基本上就是安全上下文。所有的客体和主体有一个相关的安全上下文。标准Linux使用进程的用户/组ID,文件访问模式位和文件用户/组ID来同意或者是拒绝访问,SELinux使用进程和客体的安全上下文来进行访问控制。更具体的说,由于SELinux的主要访问控制特征是TE,即类型强制策略,安全上下文中的类型标识符被用来决定访问。

注意:

SELinux是在标准Linux之上添加的类型强制机制。也就是说标准Linux和SELinux访问控制都必须满足才能访问客体。所以,例如,我们有SELinux对于文件的一个写权限,但是没有标准linux的写权限,我们依然不能想文件中写入数据。

下面的表列出了标准Linux和SELinux的一些区别:

(三)、关于安全上下文更多的信息

安全上下文是一个简单的,一致的访问控制属性。在SELinux中,类型标识符是安全上下文中决定访问的主要的部分。由于历史原因,进程的类型经常被称作域(domain)。使用域和域类型来代表进程的类型是比较普遍的,所以我们不可避免的要是用术语“域”。大体上,认为域,域类型,主体类型和进程类型是同义的。

在安全上下文中的用户标识符和角色标识符在访问控制策略中起很小的作用,因为是类型强制策略而不是约束条件强制策略,约束条件强制策略我们将在第七章中讨论。对于进程来说,用户标识符和角色标识符是非常有趣的。

因为他们被用来控制用户标识符和Linux用户账户的类型相关联的。对于客体来说,用户标识符和角色标识符几乎没用。作为一个公约,一个客体的角色通常是 object_r ,一个客体的用户通常是创建该客体的进程的用户标识符。他们在访问控制中没有作用。

最后,要知道标准Linux中的用户ID和SELinux在安全上下文中的用户标识符的不同。技术上,他们是完全正交的标识符,被标准的访问控制机制和安全增强型的访问控制机制分别使用。他们之间的任何联系都是通过登录进程按照公约严格提供的,而不是被SELinux策略直接实施的。

时间: 2024-10-10 06:56:20

安全上下文的相关文章

Oracle 11g数据库详解(2015-1-18更新)

Oracle 11g数据库详解 整理者:高压锅 QQ:280604597 Email:[email protected] 大家有什么不明白的地方,或者想要详细了解的地方可以联系我,我会认真回复的 1   简介 数据库操作主要有以下几步: 1.  启动.停止数据库 2.  连接.断开数据库 3.  创建.修改.删除数据库用户 4.  表空间 5.  新建.修改.删除表 6.  查询.插入.修改.删除表数据 7.  新建.修改.删除视图 8.  新建.修改.删除存储过程 9.  新建.修改.删除触发

Andorid——菜单:上下文菜单

一,简介 Android系统中的ContextMenu(上下文菜单)类似于PC的右键弹出菜单,当一个视图注册了上下文菜单,长按该试图对象将出现一个提供相关功能的浮动菜单. 使用: 上下文菜单可以被注册到任何视图中,最常见的是ListView,但是上下文菜单不支持图标和快捷键. 二,调用需要的方法 1,onCreateContextMenu方法:当上下文菜单被创建时 回调该函数 2,onContextItemSelected方法:当上下文菜单某项被选中时回调该函数 3,registerForCon

android,关于上下文菜单ContextMenu数据值的转递

在长按某view时,如该view有绑定OnCreateContextMenuListener,则会弹出ContextMenu上下文菜单,这类似于右键菜单,菜单弹出后点击某菜单项,则Activity或Fragment中的 public boolean onContextItemSelected(MenuItem item) 方法会响应菜单的点击,根据item的id来确定点击的是哪一个菜单项,从而进行进一步的操作. 那么现在的问题是,有时候我们只知道了点击的哪个菜单项是不够的,还需要知道更多的信息,

自定义上下文对话框

以下是一种方法,还有一种方法:http://www.cnblogs.com/and_he/archive/2011/09/16/2178716.htmlpublic class MyContextDialog extends Dialog { public MyContextDialog(Context context) { super(context); } public MyContextDialog(Context context, int theme) { super(context,

Servlet上下文

一.Servlet上下文的基本概念 Servlet上下文又叫做:ServletContext. 当WEB服务器启动时,会为每一个WEB应用程序(webapps下的每个目录就是一个应用程序)创建一块共享的存储区域. ServletContext也叫做"公共区域",也就是同一个WEB应用程序中,所有的Servlet和JSP都可以共享同一个区域. ServletContext在WEB服务器启动时创建,服务器关闭时销毁. //通过当前Servlet类的对象,得到与它关联的ServletCont

函数的上下文就是函数里面的this是谁

规律1:函数用圆括号调用,函数的上下文是window对象 比如小题目: function fun(){ var a = 888; alert(this.a); //实际上访问的是window.a } var a = 666; fun(); //弹出666 函数function fun(){}的上下文是什么!不要看它怎么定义,要看它怎么调用!!此时是fun()函数名加上圆括号直接调用,此时上下文就是window对象! 而我们知道:所有的全局变量都是window对象的属性,(注意:函数里面的局部变量

Node.js(七)——HTTP作用域、上下文

http源码解读 什么是作用域? 作用域和调用函数访问变量的能力有关 作用域分局部作用域和全局作用域,同时作用域往往和变量有关系, 处在局部作用域里面可以访问到全局作用域的变量,反之则访问不到 实例如下: var globalVariable = 'This is global variable' function globalFunction(){ var localVariable ='This is local variable' console.log('Visit global/loc

execute as login 切换上下文

作为DBA,可能经常需要帮助Developer排除有关权限的问题.要确认某个账号是不是已经拥有了某权限,DBA并不需要使用该账号的登录名和密码进行验证,只需使用execute as语句,将当前会话的上下文切换到指定的login(登录)或者user(用户),就可以验证该账号是否拥有某权限. execute as user='user_name' 该语句模拟的上下文是当前数据库中的user,模拟范围仅限于当前数据库,任何对该数据库以外的资源的访问尝试都会导致失败,不管该user是否拥有相应权限. e

ENode框架Conference案例分析系列之 - 上下文划分和领域建模

前面一片文章,我介绍了Conference案例的核心业务,为了方便后面的分析,我这里再列一下: 业务描述 Conference是这样一个系统,它提供了一个在线创建会议以及预订会议座位的平台.这个系统的用户有两类:1)客户,可以创建和管理会议:2)会议座位预定者,可以预订会议座位.具体的关键业务描述如下: 客户创建一个会议,并录入会议的基本信息,比如名称.时间段.地点,等:会议创建后,系统会为客户自动生成一个AccessCode,客户可以通过AccessCode访问自己创建的会议: 客户定义某个会

高程(4):执行环境、作用域、上下文执行过程、垃圾收集、try...catch...

高程三 4.2.4.3 一.执行环境 1.全局执行环境是最外层的执行环境. 2.每个函数都有自己的执行环境,执行函数时,函数环境就会被推入一个当前环境栈中,执行完毕,栈将其环境弹出,把控制器返回给之前的执行环境. 二.作用域 1.每个执行环境,都对应一个自己的作用域. 2.每个执行环境,都能访问上一级的父级.父父级....作用域,称为 "作用域链" 3.执行代码时,会按照标识符沿着作用域链一级一级向上查找.如果找不到,则会报错 *标志符:执行时,使用到的变量或函数 三.上下文执行过程