openharmony中selinux使用详解-凯发app官方网站

凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 22906
  • 博文数量: 15
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 165
  • 用 户 组: 普通用户
  • 注册时间: 2023-08-21 10:33
文章分类
文章存档

2024年(9)

2023年(6)

我的朋友
最近访客
相关博文
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·

分类: 其他平台

2024-04-03 10:41:59

openharmony中selinux使用详解
目录
1.selinux简介
2.selinux概念
3.selinux模式
4.oh中selinux使用详解
5.oh中selinux报错分析
5.1 日志错误问题分析
5.2 新增节点权限问题
5.3 新增服务权限问题
1.selinux简介
selinux是security enhanced linux 的缩写,也就是安全强化的 linux,旨在增强传统linux操作系统的安全性,解决传统linux系统中自主访问控制(dac)系统中的各种权限问题(如root权限过高等)。这里举一个例子便于理解,假设系统中某个服务进程出现了一个漏洞,使得某个远程用户可以访问系统的敏感文件(如/etc/dev)。如果我们的linux系统启用了selinux,而查询selinux策略得知,这个服务进程并不具备访问敏感文件(/etc/dev)的权限,所以这个远程用户通过这个进程访问敏感文件(/etc/dev)就会被selinux所阻挡,起到保护linux系统的作用。

  1. selinux基本概念
    linux操作系统的安全机制其实就是对两样东西做限制:进程和系统资源(文件、socket等)。linux操作系统是通过用户和组的概念来对我们的系统资源进行限制,每个进程都需要一个用户才能执行。在selinux当中针对这两样东西定义了两个基本概念:域(domin)和上下文(context)。

我们可以通过ps -z 命令来查看当前进程的域信息,也就是进程的selinux信息:
**# ps -z
label pid tty time cmd
u:r:sh:s0 10466 pts/1 00:00:00 sh
u:r:sh:s0 10468 pts/1 00:00:00 ps

通过ls -z 命令,我们可以查看文件上下文信息,也就是文件的selinux信息:
**# ls -z
u:object_r:system_bin_file:s0 bin
u:object_r:rootfs:s0 chip_prod
u:object_r:vendor_file:s0 chipset
u:object_r:configfs:s0 config
u:object_r:data_file:s0 data
u:object_r:dev_file:s0 dev
u:object_r:system_etc_file:s0 etc
u:object_r:init_exec:s0 init
u:object_r:system_lib_file:s0 lib

3.selinux的工作模式
下面通过这个图来说明,selinux工作流程

openharmony中selinux使用详解-鸿蒙开发者社区

可以从图中看出,需要关注的关键信息如下:
1)主体(subject):指主动对其它实体施加动作的实体,例如进程、服务等。
2)策略(policy):权限策略,通过在te文件中配置对应的权限语句实现,权限策略以type或attribute作为执行对象。
3)安全上下文(security context):实际上就是一个附加在主体或客体上的标签。
4)目标(object):是被动接受其他实体访问的实体,例如文件、系统属性等。

selinxu工作的核心就是安全上下文。安全上下文是一组和进程或对象有关的安全属性,每一个进程或对象都会记录一条安全上下文,将其作为selinux判断进程是否能读取对象的依据。安全上下文分为“进程安全上下文”和“文件安全上下文”。一个“进程安全上下文”一般对应多个“文件安全上下文”。
只有两者的安全上下文对应上了,进程才能访问文件。它们的对应关系由策略中的规则决定。
文件安全上下文由文件创建的位置和创建文件的进程所决定。而且系统有一套默认值,用户也可以对默认值进行设定。需要注意的是,单纯的移动文件操作并不会改变文件的安全上下文。
selinux有3种工作模式:
【enforcing】强制模式。违反 selinux 规则的行为将被阻止并记录到日志中。
【permissive】宽容模式。违反 selinux 规则的行为只会记录到日志中。一般为调试用。
【disabled】关闭 selinux。
模式之间的临时切换,如需(【disabled】关闭)永久有效,还需要修改配置文件。

**# getenforce // 查看selinux状态
enforcing
**# setenforce 0 // 设置selinux状态为宽容模式
**# getenforce
permissive
**# setenforce 1 // 设置selinux状态为强制模式
**# getenforce
enforcing

4.oh中selinux使用详解
selinux在oh中应用整体来说,功能和以上介绍的使用方法并无太大差别,只是在原生selinux内核中做了部分驱动和文件系统的适配。目前码云社区上master分支以rk3568为例子做了适配并开启了selinux,其他型号的设备需要自己做适配。
openharmony selinux的主代码仓:

selinux结构图:

openharmony中selinux使用详解-鸿蒙开发者社区
openharmony中selinux使用详解-鸿蒙开发者社区

阅读(74) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图