使用 audit2allow 工具添加SELinux权限的方法

news2024/11/20 4:55:50

1. audit2allow工具的使用

audit2allow 命令的作用是分析日志,并提供允许的建议规则或拒绝的建议规则。

1.1 audit2allow的安装

sudo apt-get install policycoreutils

sudo apt install policycoreutils-python-utils

1.2 auditallow的命令

命令含义用法
-v--version显示程序的版本号并退出
-h--help显示此帮助消息并退出
-b--boot自最近启动的audit的审计消息,与-i冲突
-a--all从审计的log中读取输入,与-i冲突
-i<输入文件>--input从输入文件中读取输入

1.3 audit2allow的使用

第一步:从android log中获取对应的avc log文件

直接抓取avc log命令如下:

adb logcat –b all | grep avc >avc_log.txt

也可以从抓取到的android log中,筛选导出avc log

一般avc_log.txt内容如下:

06-25 04:39:15.811 4534 4534 I auditd : type=1400 audit(0.0:122): avc: denied { execute } for comm="gripper-backgro" path="/data/user/10/tv.danmaku.bilibilihd/lib-main/libijkffmpeg.so" dev="dm-39" ino=37776 scontext=u:r:platform_app:s0:c522,c768 tcontext=u:object_r:app_data_file:s0:c522,c768 tclass=file permissive=0

第二步:处理log文件

此时需要将生成的log文件最后一行未打全的log进行删除

第三步:使用audit2allow工具生成te文件

在ubuntu终端下使用audit2allow工具,直接分析log生成对应的te文件

audit2allow –i avc_log.txt >avc_log.te

生成的avc_log.te对应的内容例如下:

#============= platform_app ==============

allow platform_app app_data_file:file execute;

第四步:根据抓取的生成的te文件确定需要添加的文件名

此时========platform_app.te========

表示需要在platform_app.te这个文件下添加提示的te语句

allow platform_app app_data_file:file execute;

第五步:编译打包

重新对Android源代码进行编译打包生成img文件

第六步:将ubuntu下编译的镜像刷写进入机器中

android侧常用刷写指令

fastboot devices:列出所有已经进入fastboot模式的设备

fastboot erase system 擦除设备指定的分区

fastboot flash system system.img 将指定的image文件刷入设备的指定分区

fastboot reboot:重启设备

第七步:验证

开机启动后,找到之前报avc错platform_app对应的进程名:tv.danmaku.bilibilihd

ps -A|grep tv.danmaku.bilibilihd

然后抓取avclog,自己添加的te语句对应的avc log是否出现,若未出现,则修改成功。

logcat -b all --pid=3584|grep avc

或者直接看对应的程序有没有正常运行,若正常运行,则修改成功

2.audit2allow无法使用的问题

2.1 问题

在使用audit2allow工具自动生成avc语句时,可能会出现此问题

$ audit2allow -i avc_audit.txt > avc_audit.te
ValueError: You must specify the -p option with the path to the policy file.


The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/bin/audit2allow", line 381, in <module>
    app.main()
  File "/usr/bin/audit2allow", line 365, in main
    audit2why.init()
SystemError: <built-in function init> returned a result with an error set

2.2 解决方案

对/usr/bin/audit2allow文件进行修改,具体修改方案如下:

$ cd /usr/bin/
$ sudo gedit audit2allow

//把文件的第362行到365行注销掉,保存即可

2.3 验证

重新执行audit2allow –i avc_denied.txt >avc_deniedte.te语句,若正常生成te,则修改成功

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

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

相关文章

VSCode安装OpenImageDebugger

VSCode安装OpenImageDebugger 1. 官网2. 编译2.1 依赖项2.2 编译 OpenImageDebugger2.3 配置 GDB 和 LLDB 3. 验证安装是否成功 1. 官网 下载路径&#xff1a;OpenImageDebugger 2. 编译 2.1 依赖项 官网上描述&#xff0c; Qt 5.15.1Python 3.10.12 这两个其实配置并不需…

如何配置Redis + Rdis在IDEA中的使用

文章目录 Step1. 下载zipStep2. 修改环境变量Step3. 启动Redis服务端Step4. 启动Redis客户端Step5. IDEA中链接Redis Step1. 下载zip 下载 Redis-x64-xxx.zip压缩包&#xff0c;解压到 E 盘后&#xff0c;将文件夹重新命名为 redis 下载地址&#xff1a;Redis下载地址 Step2…

mongodb studio 3T 破解

官网下载后有30天的体验时间 一、破解原理是 30天后重置体验时间&#xff0c;所以每隔30天左右需要重新破解 1 新建studio.bat文件&#xff1a; echo offECHO 重置Studio 3T的使用日期......FOR /f "tokens1,2,* " %%i IN (reg query "HKEY_CURRENT_USER\Sof…

Java中特殊文件和日志技术

特殊文件和日志技术 特殊文件&#xff1a;Properties属性文件 特点&#xff1a; 特点一&#xff1a;都是键值对 特点二&#xff1a;键不能重复 特点三&#xff1a;文件后缀一般是Properties 作用&#xff1a; …

Python:基于TSFEL库对时间序列进行特征分析

1. TSFEL 时间序列作为主要TSFEL提取方法的输入传递&#xff0c;要么作为先前加载在内存中的数组传递&#xff0c;要么存储在数据集中的文件中。 由于TSFEL可以处理多维时间序列&#xff0c;因此随后应用了一套预处理方法&#xff0c;以确保信号质量足够和时间序列同步&#xf…

惊天大瓜姬圈天莱女明星出轨风波

#惊天大瓜&#xff01;姬圈天菜女明星出轨风波#近日&#xff0c;娱乐圈掀起了一场前所未有的风暴&#xff01;狗仔队放出重磅消息&#xff0c;直指某位姬圈天菜级别的女明星深陷出轨泥潭。消息一出&#xff0c;引发了网友们的热议和猜测&#xff0c;究竟这位神秘的女明星是谁&a…

VPS环境搭建及配置

VPS简介 VPS&#xff08;Virtual Private Server&#xff09;是一种虚拟化技术&#xff0c;可以将一台物理服务器分成多个虚拟服务器&#xff0c;每个虚拟服务器都有独立的操作系统和资源&#xff0c;相互之间互不影响。VPS可以提供类似于独立服务器的功能&#xff0c;但价格更…

Nuxt3 的生命周期和钩子函数(二)

title: Nuxt3 的生命周期和钩子函数&#xff08;二&#xff09; date: 2024/6/26 updated: 2024/6/26 author: cmdragon excerpt: 摘要&#xff1a;本文深入介绍了Nuxt.js框架中几个关键的生命周期钩子函数&#xff0c;包括app:redirected&#xff08;SSR环境下重定向前触发…

关于Vite+Vue+Ts WebStorm路径别名的问题

一、准备一个项目 二、在 vite.config.js 中添加 resolve: {alias: {: /src}} 三、tsconfig.app.json中添加代码 //添加代码"baseUrl": ".","paths": {"/*": ["src/*"]}把src的一个文件修改路径为开头 四、安装插件 npm i …

从音频中提取MFCC特征的过程

在语音信号处理和语音识别领域&#xff0c;梅尔频率倒谱系数&#xff08;MFCC&#xff09;是最常用的特征之一。本文将逐步介绍如何从音频中提取MFCC特征&#xff0c;并在每个步骤中进行可视化展示。 步骤 1&#xff1a;加载音频文件并查看波形 首先&#xff0c;我们需要加载…

安装与配置:MySQL的环境搭建之旅(二)

目录 引言&#xff1a;从理论到实践的跨越 一、安装MySQL&#xff1a;跨平台的便捷指南 Windows环境 Linux环境 macOS环境 二、基本配置&#xff1a;端口设置与字符集选择 三、从零到一的蜕变 引言&#xff1a;从理论到实践的跨越 在前一章节《MySQL简介》中&#xff0c…

力扣随机一题 6/26 哈希表 数组 思维

博客主页&#xff1a;誓则盟约系列专栏&#xff1a;IT竞赛 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 题目一&#xff1a; 2869.收集元素的最少操作次数【简单】 题目&#xff…

Flutter实现页面间传参

带参跳转 步骤 在router中配置这个路由需要携带的参数,这里的参数是 arguments,注意要用花括号包裹参数名称 在相应组件中实现带参构造函数 在state类中可以直接使用${widget.arguments}来访问到传递的参数 在其他页面中使用Navigator.pushNamed()带参跳转

【课程总结】Day11(中):手势图像识别实战(Vgg16和ResNet)

前言 在上一章《【课程总结】Day11&#xff08;上&#xff09;&#xff1a;手势图像识别实战(LeNet模型)》课程中&#xff0c;我们通过使用LeNet模型实现了手势识别。在本章内容中&#xff0c;我们将搭建Vgg模型和ResNet模型&#xff0c;并应用到手势识别中。 Vgg模型 Vgg简…

黑马点评06短信登录-用户请求和会话管理过程

用户请求发送&#xff1a; 用户的浏览器向服务器发送请求&#xff08;例如&#xff0c;访问网页或提交表单&#xff09;。请求头包含之前存储在浏览器中的Cookie&#xff0c;其中包括会话ID&#xff08;Session ID&#xff09;。 服务器接收请求&#xff1a; 服务器接收到用户的…

智慧城市:数据可视化如何提升城市管理

数据可视化在智慧城市中有何应用&#xff1f;随着城市化进程的加快和信息技术的飞速发展&#xff0c;智慧城市的建设成为全球各大城市追求的目标。而数据可视化技术作为智慧城市的重要组成部分&#xff0c;通过将复杂的数据转化为直观、易理解的图表和图形&#xff0c;极大地提…

c#关键字 ArgumentOutOfRangeException .? IEnumerable string.Join

c# ArgumentOutOfRangeException ArgumentOutOfRangeException 是 C# 中表示某个参数值超出了方法或属性定义的有效范围时引发的一个异常。这个异常通常在尝试访问数组、集合、字符串等的无效索引&#xff0c;或者当传递给方法或属性的参数不在其有效范围内时发生。 例如&…

Rill Data:实时数据分析的未来

欢迎来到 Rill Rill是从数据湖到仪表板的最快路径。 rilldata 与大多数 BI 工具不同&#xff0c;Rill 带有自己的嵌入式内存数据库。数据和计算位于同一位置&#xff0c;查询以毫秒为单位返回。 因此&#xff0c;您可以即时透视、切片和深入研究数据。 下载 Rill 开始建模数…

写程序100道41-50

41.定义一个Father和Child类&#xff0c;并进行测试。 要求如下&#xff1a; (1)Father类为外部类&#xff0c;类中定义一个私有的String类型的属性name&#xff0c;name的值为“Join”。 (2)Child类为Father类的内部类&#xff0c;其中定义一个readName()方法&#xff0c;方…

【数据结构初阶】--- 归并排序

归并排序 递归递归的思路归并的步骤&#xff1a;代码示例 非递归快排为什么可以用栈模拟&#xff1a;归并可以用栈模拟吗&#xff1f;非递归的思路初版代码示例问题&#xff1a;越界 时间复杂度针对递归的优化小区间优化 递归 递归的思路 归并的前提是需要两个有序的区间&…