郑州网站建设网站开发,山东省建设管理中心网站,购物网站的页面设计,wordpress表情文件夹接前一篇文章#xff1a;SELinux零知识学习二十、SELinux策略语言之类型强制#xff08;5#xff09; 二、SELinux策略语言之类型强制
3. 访问向量规则
AV规则就是按照对客体类别的访问许可指定具体含义的规则#xff0c;SELinux策略语言目前支持四类AV规则#xff1a; …接前一篇文章SELinux零知识学习二十、SELinux策略语言之类型强制5 二、SELinux策略语言之类型强制
3. 访问向量规则
AV规则就是按照对客体类别的访问许可指定具体含义的规则SELinux策略语言目前支持四类AV规则
allow表示允许主体对客体执行允许的操作。neverallow表示不允许主体对客体执行指定的操作。auditallow表示允许操作并记录访问决策信息。dontaudit表示不记录违反规则的决策信息且违反规则不影响运行。
1通用AV规则语法
虽然这些规则的用途不一样但它们的基本语法是一样的每个规则都包含了下面5个元素
规则名称
allowdontauditauditallow和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;