• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# OpenHarmony SELinux支持MCS
2
3## MCS背景介绍
4
5Multi-Category Security(MCS)是SELinux强制访问控制的一种模式,通过类别(Category)划分资源访问权限,确保进程仅能访问与其类别相匹配的资源。
6
7## MCS开关配置
8当前MCS默认为开启状态,需要关闭MCS时,可在selinux_adapter部件里配置selinux_adapter_mcs_enable=false。
9
10## MCS安全级别配置
11
12  为应用进程和应用数据目录添加MCS配置,需要保证MCS开关开启。
13
14  然后在`sehap_contexts`配置文件中按需配置levelFrom和user,如果未配置user,默认为user=u。示例如下:
15  ```text
16  apl=normal debuggable=true domain=debug_hap type=debug_hap_data_file levelFrom=all user=o
17  ```
18
19  配置user时,如果user未定义,需要先在users策略文件里定义。示例如下:
20  ```text
21  user o roles { r } level s0 range s0 - s0:c0.x1279;
22  ```
23
24  也可以在`product_config`配置文件中,配置默认levelFrom和user,如果未配置user,默认为user=u。示例如下:
25
26  ```text
27  defaultLevelFrom=user
28  defaultUser=o
29  ```
30
31  配置levelFrom时,安全级别可选配置如下:
32
33 | levelFrom | 释义 | level级别 |
34 | -------- | ---- | ------------- |
35 | app | 根据appId确认级别。 | "s0:x%u,x%u,x%u", appId & 0xff, 256 + (appId>>8 & 0xff), 512 + (appId>>16 & 0xff)|
36 | user | 根据userId确认级别。 | "s0:x%u,x%u", 768 + (userId & 0xff), 1024 + (userId>>8 & 0xff) |
37 | all | 根据进程appId和userId确认级别。 | "s0:x%u,x%u,x%u,x%u,x%u", appId & 0xff, 256 + (appId>>8 & 0xff), 512 + (appId>>16 & 0xff), 768 + (userId & 0xff), 1024 + (userId>>8 & 0xff) |
38
39## MCS生效验证
40
41开启MCS并配置安全级别后,使用命令`ps -efZ`查询MCS配置状况。示例如下:
42```text
43o:r:normal_hap:s0:x55,x334,x512,x868,x1024
44```
45
46进入应用数据目录,使用命令`ls -lZ`查询应用数据目录MCS配置状况。示例如下:
47```text
48o:object_r:normal_hap_data_file:s0:x55,x334,x512,x868,x1024
49```