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

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

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

2. 类型、属性和别名

(4)别名

别名是引用类型时的一个备选的名字,能够使用类型名的地方就可以使用别名,包括TE规则、安全上下文和标记语句。别名通常用于策略改变时保持一致性,例如:一个旧策略可能引用了类型netscape_t,更新后的策略可能将类型名改为mozilla_t了,因此同时提供了一个别名netscape_t以保证与旧模块能够正常兼容。

两种方式 进行别名声明。第一种方式是在使用type语句声明类型的同时就声明别名。因此在type语句中,声明mozilla_t类型时,可以使用关键字alias声明一个别名netscape_t,如:

cpp 复制代码
type mozilla_t alias netscape_t, domain;

注意:别名声明是放在属性的前面的

第二种方式是使用typealias语句独立于type语句单独声明别名。下面的语句等同于单条type语句:

cpp 复制代码
# 下边这两条语句等同于
type mozilla_t, domain;
typealias mozilla_t alias netscape_t;

# 下边这一条语句
type mozilla_t alias netscape_t, domain;

当策略的结构难以在声明类型时同时声明别名的时候,typealias语句很有用。完整的typealias语句语法如下:

typealias 类型名称 alias 别名名称

  • 类型名称

要添加别名的类型的名称,类型必须使用type语句单独声明,并且此处只能指定一个类型名称。

  • 别名名称

一个或多个别名标识符,其命名约束与类型一样。如果同时指定多个别名,别名之间用空格分开,并使用大括号将所有别名括起来,如{aliasa_t aliasb_t}。

域类型和其他类型

我们在"类型"这个词之前加上其它形容词,如:"文件类型"、"目录类型",这些形容词只是为了描述出类型的用途方向,并没有其它含义,例如文件类型指的是安全上下文中引用的类型与文件有关。事实上,类型也可以用于其它客体类别,在策略语言中对这些类型的用途并没有做限制,SELinux中的所有类型地位相同,都可以用于标记任何客体类别实例,只要授予了适当的访问权。

例如httpd_t域类型可以同时用于进程和文件,再加上一些额外的规则。按照惯例,这在SELinux策略中是要避免出现的,主要是为了使策略更清晰,但在某些情况下,我们需要将同一个类型既用作域类型又要用作文件类型,这完全取决于策略编写者的爱好了。

然而,就域类型而言,出于一些技术上的原因,也最好不要在文件和目录上使用它们。在Linux中,每个进程和文件都会在/proc/文件系统中由内核创建一个,这些客体用于获取和设置这些进程的属性。在SELinux中,进程的类型自动用于这些文件和目录。对于类型为httpd_t的进程而言,如果进程ID是1000,目录/proc/1000/和它下面包括的所有文件及子目录都自动具有httpd_t类型。如果httpd_t也用于普通文件,这就意味着授予其它普通文件访问权时,可能同时也授予了/proc/目录下的文件和目录同等的访问权,这可能并不是所希望的。

相关推荐
ttdevs1 个月前
【Android】ServiceNotFoundException: No service published for: search
android·framework·aosp·selinux·search
-兮2 个月前
Ubuntu的SELinux
linux·运维·安全·ubuntu·selinux
Sgq丶4 个月前
Android 13 aosp 默认关闭SELinux
android·aosp·selinux
凯文的内存5 个月前
高通平台Android11 添加新分区的方法
android·partition·添加分区·selinux·build·vold
guitarjoy6 个月前
Android - 深入浅出理解SeLinux
android·selinux
Android系统攻城狮6 个月前
Android14之selinux报错:ERROR: end of file in comment(一百九十七)
selinux·android14
Sgq丶7 个月前
Android 11 访问 Android/data/或者getExternalCacheDir() root方式
android·framework·selinux·permissions
Android系统攻城狮8 个月前
Android14之audit2allow自动生成Selinux规则(一百七十五)
selinux·audit2allow
树下一少年9 个月前
SElinux工作原理简介并演示chcon、semanage、restorecon的使用方法
linux·服务器·网络·安全策略·selinux
darkdragonking9 个月前
Centos7、Mysql8.0 load_file函数返回为空的终极解决方法--暨selinux的深入理解
mysql·selinux