OpenHarmony的SELinux介绍
SELinux(Security-Enhanced Linux)是由 NSA 开发的一个安全模块,最早用于 Linux 系统。它允许系统管理员细粒度地控制进程能访问哪些资源,而不是仅仅依赖传统的用户权限(UID/GID)。
在 OpenHarmony 中继承和扩展了 AOSP(Android)上的 SELinux 机制,通过强制访问控制(MAC, Mandatory Access Control),以增强系统的安全性,防止恶意程序访问敏感资源,以实现类似的安全控制能力
SELinux状态模式
SELinux一共有3种状态,分别是Enforcing,Permissive和Disabled状态
| 模式 | 描述 |
|---|---|
| Enforcing | 强制执行策略,非法访问将被阻止 |
| Permissive | 仅记录违规访问日志,不阻止 |
| Disabled | SELinux 被禁用(开发阶段可能用) |
如何修改SELinux的工作模式
通过命令修改SELinux权限
在系统中可以通过getenforce命令查询当前系统的SELinux状态。
#设置SElinux为Permissive模式
setenforce 0
#设置SElinux为Enforcing模式
setenforce 1
setenforce命令只能临时修改SELinux状态,当系统重启后,修改就会失效,SELinux恢复为原来默认状态
通过修改系统配置文件来修改SELinux权限
可以修改系统的system/etc/selinux/config文件来永久改变SELinux状态.
如将SELINUX=enforcing改为SELINUX=permissive,然后保存开机重启就好了
注意默认system/etc/selinux/config是只读文件,需要通过hdc来重新挂载/system分区为可读可写才能更改
在源码中修改SELinux状态
修改/base/security/selinux_adapter/selinux.gni
如将selinux_adapter_enforce = true改为selinux_adapter_enforce = false就会将SELinux从Enforcing模式改为Permissive模式
注意修改后需要重新编译和烧录系统
SELinux调试与分析
与Android系统相同,我们先通过dmesg | grep avc > /data/avc.log命令先将selinux日志存入文件中,然后通过audit2allow -i avc.log来得到修改方法.这里我们不再赘述
更多推荐

所有评论(0)