修正拼写错误.

Signed-off-by: rick.chan <chenyang@autoai.com>
This commit is contained in:
rick.chan 2021-03-10 17:04:11 +08:00
parent 2e56dbb075
commit 00c2378bc4
1 changed files with 11 additions and 11 deletions

View File

@ -44,7 +44,7 @@ SEAndroid 工作大致分为两部分:打标签和根据标签做权限控制
### 3.1.打标签 ### 3.1.打标签
SeAndroid 会给所有的文件(包括进程贴上标签),这些标签称为 Security Context。我们可以通过 ls -Z 来查看文件的 Security Context 或者通过 ps -Z 来查看进程的 Security Context。 SEAndroid 会给所有的文件(包括进程贴上标签),这些标签称为 Security Context。我们可以通过 ls -Z 来查看文件的 Security Context 或者通过 ps -Z 来查看进程的 Security Context。
Security Context 由四部分组成,每一部分用冒号隔开,来看一个例子: Security Context 由四部分组成,每一部分用冒号隔开,来看一个例子:
@ -53,7 +53,7 @@ u:r:init:s0
u:object_r:rootfs:s0 u:object_r:rootfs:s0
``` ```
* 第一部分 u 代表用户,在 SeAndroid 中只有一个用户,就是 u * 第一部分 u 代表用户,在 SEAndroid 中只有一个用户,就是 u
* 第二部分 r 或者 object_r 代表用户的角色,如果角色是 r 代表的是进程,如果角色是 object_r 代表的是文件; * 第二部分 r 或者 object_r 代表用户的角色,如果角色是 r 代表的是进程,如果角色是 object_r 代表的是文件;
* 第三部分 init 或者 rootfs 等,代表类型或者域,一般管文件的这部分叫类型,管进程的这部分叫域。不同的域拥有不同的权限; * 第三部分 init 或者 rootfs 等,代表类型或者域,一般管文件的这部分叫类型,管进程的这部分叫域。不同的域拥有不同的权限;
* 第四部分 s0 代表安全等级,我们不用关注。 * 第四部分 s0 代表安全等级,我们不用关注。
@ -86,9 +86,9 @@ action domain type:object_class operation
type type_name, attribute_name type type_name, attribute_name
``` ```
attribute_name 表示 type 所属的属性组,一个 type 可以属于多个属性组。这样我们在编译 SeLinux 策略的时候通过对属性组编写,就可以应用到该属性组之下的所有 type 了。Android 系统定义的属性组一般都放在 attribute 文件中。 attribute_name 表示 type 所属的属性组,一个 type 可以属于多个属性组。这样我们在编译 SELinux 策略的时候通过对属性组编写,就可以应用到该属性组之下的所有 type 了。Android 系统定义的属性组一般都放在 attribute 文件中。
### 3.3.SeLinux 中用户和角色的定义 ### 3.3.SELinux 中用户和角色的定义
在 roles 文件下定义了角色,每一个角色都有不同的功能,所以每一个角色都和一个域相关联,比如: 在 roles 文件下定义了角色,每一个角色都有不同的功能,所以每一个角色都和一个域相关联,比如:
@ -102,7 +102,7 @@ role r types domain
user u roles {r} user u roles {r}
``` ```
这样就把用户 u 和角色 r 关联起来了。多个角色之间有层级关系比如老板比总经理大SeLinux 用 dominance 来表示,比如: 这样就把用户 u 和角色 r 关联起来了。多个角色之间有层级关系比如老板比总经理大SELinux 用 dominance 来表示,比如:
```bash ```bash
dominance{role 老板 {role 总经理;role 总监}} dominance{role 老板 {role 总经理;role 总监}}
@ -112,7 +112,7 @@ dominance{role 老板 {role 总经理;role 总监}}
### 3.4.基于角色的控制 ### 3.4.基于角色的控制
在 SeAndroid 中定义的 u 和 r 是怎么做到基于角色的控制呢? 在 SEAndroid 中定义的 u 和 r 是怎么做到基于角色的控制呢?
使用 constrain 关键字,形式如下: 使用 constrain 关键字,形式如下:
```bash ```bash
@ -172,14 +172,14 @@ allow init_t apache_t : process transition;
allow apache_t apache_exec_t : file entrypoint; allow apache_t apache_exec_t : file entrypoint;
``` ```
由于这样使用起来很麻烦,所以 SeAndroid 在 te_macros 中定义了很多宏来帮助我们实现, 由于这样使用起来很麻烦,所以 SEAndroid 在 te_macros 中定义了很多宏来帮助我们实现,
比如上面的四句就可以用以下一句宏来实现: 比如上面的四句就可以用以下一句宏来实现:
```bash ```bash
domain_auto_trans(init_t, apache_exec_t, apache_t) domain_auto_trans(init_t, apache_exec_t, apache_t)
``` ```
SeAndroid中还有一个常见的宏就是给一个目录下的新建的文件打标签的宏,比如: SEAndroid 中还有一个常见的宏就是给一个目录下的新建的文件打标签的宏,比如:
```bash ```bash
file_type_auto_trans(appdomain, download_file, download_file) file_type_auto_trans(appdomain, download_file, download_file)
@ -197,13 +197,13 @@ Android 预先打的标签在 XXX_context 文件中,比如:
一般 XXX_context 文件都是与预置好的给某些文件或者目录打标签。 一般 XXX_context 文件都是与预置好的给某些文件或者目录打标签。
### 3.7.apk 以及其使用的 data 目录是如何被 SeAndroid 打标签的 ### 3.7.apk 以及其使用的 data 目录是如何被 SEAndroid 打标签的
在 PMS 启动的时候会去读取 mac_permissions.xml 文件,该文件中保留了签名和 seinfo 的对应关系,比如 platform 签名对应的 seinfo 是 platform这个 seinfo 信息在安装 app 的时候会用到。 在 PMS 启动的时候会去读取 mac_permissions.xml 文件,该文件中保留了签名和 seinfo 的对应关系,比如 platform 签名对应的 seinfo 是 platform这个 seinfo 信息在安装 app 的时候会用到。
然后在安装 app 的时候PMS 会根据 app 的签名,给该 app 赋予一个 seinfo。这个 seinfo 就是 Selinux 给这个 app 打标签时候的第三个参数type。 然后在安装 app 的时候PMS 会根据 app 的签名,给该 app 赋予一个 seinfo。这个 seinfo 就是 SELinux 给这个 app 打标签时候的第三个参数type。
在启动 app 的时候PMS 会使用到 seapp_contexts 文件,这个文件定义了不同 seinfo 的 app 启动之后的dominSeLinux 就是根据这个文件为 app 进程和其使用的 data 目录打标签。 在启动 app 的时候PMS 会使用到 seapp_contexts 文件,这个文件定义了不同 seinfo 的 app 启动之后的dominSELinux 就是根据这个文件为 app 进程和其使用的 data 目录打标签。
## 4.TE 文件 ## 4.TE 文件