OpenHarmony南向开发 SA服务SELinux权限配置一站式傻瓜式教程

news2024/9/20 10:53:55

Selinux权限配置

OpenHarmony中SELinux使用详解

目录

  1. SELinux简介
  2. SELinux概念
  3. SELinux模式
  4. OH中SELinux使用详解
  5. 新增SA服务如何配置SELinux权限

SELinux简介

SELinux是Security Enhanced Linux 的缩写,也就是安全强化的 Linux,旨在增强传统Linux操作系统的安全性,解决传统Linux系统中自主访问控制(DAC)系统中的各种权限问题(如root权限过高等)。这里举一个例子便于理解,假设系统中某个服务进程出现了一个漏洞,使得某个远程用户可以访问系统的敏感文件(如/etc/dev)。如果我们的Linux系统启用了SELinux,而查询SELinux策略得知,这个服务进程并不具备访问敏感文件(/etc/dev)的权限,所以这个远程用户通过这个进程访问敏感文件(/etc/dev)就会被SELinux所阻挡,起到保护Linux系统的作用。

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

SELinux的工作模式

下面通过这个图来说明,SELinux工作流程在这里插入图片描述
可以从图中看出,需要关注的关键信息如下:

  1. 主体(Subject):指主动对其它实体施加动作的实体,例如进程、服务等。
  2. 策略(policy) :权限策略,通过在te文件中配置对应的权限语句实现,权限策略以type或attribute作为执行对象。
  3. 安全上下文(Security Context):实际上就是一个附加在主体或客体上的标签。
  4. 目标(Object):是被动接受其他实体访问的实体,例如文件、系统属性等。

SELinxu工作的核心就是安全上下文。安全上下文是一组和进程或对象有关的安全属性,每一个进程或对象都会记录一条安全上下文,将其作为SELinux判断进程是否能读取对象的依据。安全上下文分为“进程安全上下文”和“文件安全上下文”。一个“进程安全上下文”一般对应多个“文件安全上下文”。
只有两者的安全上下文对应上了,进程才能访问文件。它们的对应关系由策略中的规则决定。
文件安全上下文由文件创建的位置和创建文件的进程所决定。而且系统有一套默认值,用户也可以对默认值进行设定。需要注意的是,单纯的移动文件操作并不会改变文件的安全上下文。
SELinux有3种工作模式:

  1. 【enforcing】强制模式。违反 SELinux 规则的行为将被阻止并记录到日志中。
  2. 【permissive】宽容模式。违反 SELinux 规则的行为只会记录到日志中。一般为调试用。
  3. 【disabled】关闭 SELinux。
    模式之间的临时切换,如需(【disabled】关闭)永久有效,还需要修改配置文件。

**# getenforce // 查看SELinux状态
Enforcing
**# setenforce 0 // 设置SELinux状态为宽容模式
**# getenforce
Permissive
**# setenforce 1 // 设置SELinux状态为强制模式
**# getenforce
Enforcing

OH中SELinux使用详解

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

SELinux结构图:
在这里插入图片描述

SELinux运行视图:
在这里插入图片描述
在OH源码根目录下third_party\selinux是原生的代码;
在base\security\

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1995730.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

关于使用webflux开发思考

1、目前终于看到有系统使用spring的webflux进行系统开发,主要原因是比如gpt、千问的大模型数据返回都支持流式方式返回,比如和用户对话,可以流式的把数据给用户展示,不用一次性把数据展示到页面上。 webflux还有一个能力就是&…

MongoDB笔记1——MongoDB简介

MongoDB 什么是MongoDB 2007年10月,MongoDB由10gen团队所开发,2009年2月首度推出。 基于分布式文件存储的数据库由C语言编写。旨在为WEB应用提供可拓展的高性能数据存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库(NoSQL&…

东芝新小黑移动硬盘数据被格式化如何恢复(2024年8月版)

在数字化时代,数据已成为我们生活和工作中不可或缺的一部分。东芝新小黑移动硬盘,以其便携性和大容量,成为许多用户存储重要数据的首选。然而,当这些宝贵的数据因意外格式化而面临丢失的风险时,我们该如何应对&#xf…

Visionpro二次开发学习笔记7-使用CogToolDisplay控件

CogToolDisplay控件可显示与视觉工具记录相关的图像,图形和其他状态信息。它使用CogRecord和ICogTool接口将图像和图形连接到CogDisplay。 图片清单 控件的CogComboBox列出当前记录及其子记录中的图像和图形。您可以单击列表并选择要显示的图像或图形。如果记录层…

基于springboot3实现单点登录(二):认证服务端搭建

前言 上文我们介绍了oauth2.0的相关理论和流程,本文我们继续实现。 Oauth2协议中有个很重要的概念,叫做”端点“, 以下整理了一些常用的端点及其参考访问路径及使用场景的信息,供参考。 这些端点在oauth2.0协议的整个生命周期…

白嫖不是梦,三分钟搞定一台服务器

在知乎上浏览时,我偶然发现了一个引人入胜的话题。这个话题附带了一张Excel表格的截图,表格设计得非常巧妙。它允许用户输入包括日薪、工作时间、通勤时间、休息时间以及学历等在内的多个变量。通过这些输入,表格能够计算出一个反映工作性价比…

JAVA—正则表达式

关于正则表达式的了解学习,以及用于校验格式,信息查找和替换分割内容。 目录 1.概述 2.书写规则 3.应用案例 4.用于信息查找 5.用于搜索替换,分割内容 1.概述 由一些特定的字符组成,代表一个规则 作用: 1.校验数据…

国外高清风景视频素材无水印哪里找?

哪里可以下载国外高清风景视频素材?有哪些高清海外素材网站?作为一名从业多年的视频剪辑师,今天就来给大家揭秘可以下载国外高清风景视频素材的网站,赶紧进来看看吧~ 1. 稻虎网 稻虎网作为国内外知名视频素材网站&a…

【机器学习】 Sigmoid函数:机器学习中的关键激活函数

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 Sigmoid函数:机器学习中的关键激活函数1. 引言2. Sigmoid函数定义3.…

C++day04

1】思维导图 2】完成关系运算符重载&#xff0c;实现成员函数和全局函数的版本。 #include <iostream>using namespace std;class Stu { friend bool operator<(const Stu &L,const Stu &R); private:int age;int id; public:Stu(){}Stu(int age,int id):age…

OD工具-18个实操工具共创会

一、什么是共创会1.1 什么是共创共创&#xff0c;共同创造词组的缩写&#xff0c;字面上来看就是团队为了多个个体一起把以前没有的事物给产生出或者造出来&#xff0c;这明显的是一种典型的人类自主行为。 托德老师有一段描述:共创是一种工作状态&#xff0c;让团队中的每个个…

【时时三省】(C语言基础)操作符3

山不在高&#xff0c;有仙则名。水不在深&#xff0c;有龙则灵。 ----CSDN 时时三省 &取地址操作符 示例: 每个内存单元都有自己的编号 编号就成为内存单元的地址&a就是找出a的地址 后面可以加一个int *pa&#xff1d;&a 是可以用来存放地址 pa是用来存放地址的…

SQL进阶技巧:有序数据合并问题之如何按照指定的规则对数据进行合并?【详解collect_list函数有序性保证】

目录 0 问题描述【小红书面试题】 1 数据准备 2 问题分析 3 小结 0 问题描述【小红书】 有如下需求,需要将左边的表变换成右边的表,注意字段内容的顺序及对应内容的一致性。 第一个字段为name,第二个字段为subject,第三个字段为score,变换后要求subject按照语文、数学…

电脑管家软件搬运导致edge、chrome浏览器不可用

最新版本的腾讯电脑管家可以直接搬运软件到其他路径&#xff0c;但是搬运浏览器会造成软件问题&#xff0c;不建议搬运。 浏览器恢复到原路径&#xff0c;可以解决浏览器不可用的问题&#xff1a; 首先到达你的搬运路径下 可以看到软件文件夹&#xff0c;比如Microsoft Edge或…

C++11——包装器和绑定

1.包装器 C中有一些可调用对象&#xff0c;比如 函数指针&#xff0c;仿函数对象 lambda等等&#xff0c;但是他们又有缺点 因此就引出了包装器的概念 包装器 function的头文件是<functional> 我们可以用包装器包装函数指针&#xff0c;仿函数&#xff0c;lambda int …

关于LLC知识5

RLC的增益曲线不知一条 频率升高&#xff0c;增益会越来越低 无论在容性区还是感性区&#xff0c;当负载加重的时候&#xff0c;R阻值会变小&#xff0c;所以R的分压也会变小&#xff0c;导致增益会变低 当负载突然加重&#xff0c;输出电压会变低&#xff0c;增益曲线由红色变…

MySQL数据分析进阶(十二)设计数据库——PART3

※食用指南&#xff1a;文章内容为‘CodeWithMosh’SQL进阶教程系列学习笔记&#xff0c;笔记整理比较粗糙&#xff0c;主要目的自存为主&#xff0c;记录完整的学习过程。&#xff08;图片超级多&#xff0c;慎看&#xff01;&#xff09; 【中字】SQL进阶教程 | 史上最易懂S…

c++ - c++11(1)

文章目录 前言一、统一的列表初始化1、使用{ }初始化2、 std::initializer_list 二、声明1、auto2、decltype3、nullptr 三、范围for循环四、右值引用1、左值引用和右值引用2、左值引用和右值引用的比较3、左值引用的使用场景4、右值引用的使用场景5、完美转发 前言 一、统一的…

在百度飞浆中搭建pytorch环境

文章目录 1 先检查创建的环境2 创建虚拟环境3 最终结果 1 先检查创建的环境 选择GPU版本 检查python版本 2 创建虚拟环境 虚拟环境的创建 python3 -m venv env_name # (python3 -m 路径 环境名)激活虚拟环境 source env_name/bin/activate这里注意&#xff0c;同名文件…

MySQL的InnoDB的页里面存了些什么

文章目录 创建新表页的信息新增一条数据根据页号找数据信息脚本代码py_innodb_page_info根据地址计算页号根据页号计算起始地址 主要介绍数据页里面有哪些内容&#xff0c;一行数据在文件里面是怎么组织的 创建新表页的信息 CREATE TABLE test8 (id bigint(20) NOT NULL AUTO…