下面的例子运行在中兴android 5.0手机上。

当我们使用root权限的python去创建socket监听端口8088时,selinux向kmsg输出了下面的记录

python-android5 对 socket 的操作 create, setopt, bind, listen等都是denied不允许的,因为目标(target)需要权限在tcontext=u:r:init:s0,但是我们的python运行在root权限下,所以scontext=u:r:init:s0满足了tcontext,我们的操作被允许permissive=1,但不是selinux子系统所希望的,并记录在kmsg。

我们既然成功在8088端口上监听了,那么是否就等同于可以接收incoming连接呢,可能你会想到防火墙过滤,我们就看一下防火墙策略 (8088端口放开了)。

那么我们向上面打开的监听端口8088发起连接,会怎么样呢?结果失败了,请看kmsg输出。

防火墙netd以scontext=u:r:netd:s0,应该是想向端口8088的socket的backlog写入,但是无奈操作socket需要权限tcontext=u:r:init:s0,防火墙对listen的sokcet的操作 { read write }被selinux子系统拒绝 permissive=0,selinux向kmsg输出日志记录。防火墙不是运行在高权限下,即使你的程序提升到root权限了,也无能为力。换句话说,如果你的程序依赖了其它进程的服务,那么你所依赖的进程的selinux权限,也将制约着你的程序。这时只好关闭selinux,但是这样就比较不安全了。

关闭selinux后,我们再次向8088端口发起连接,结果成功了,看kmsg输出。

首先我们的python程序在root权限下创建了socket,同时没有权限的防火墙netd也随selinux子系统的关闭,对socket的操作被允许,这一切都是selinux子系统所不希望的,必须在kmsg记录下日志。后面就是正常的tcp建立连接三次握手,selinux同时也在kmsg记录下日志,日志输出如下。

又一例就是screencap,你在root权限下也不能截屏。

selinux却在kmsg输出记录。

解决就是关闭selinux,通过setenforce 或 /sys/fs/selinux。这样很不安全,另外就是使用supolicy修改个别政策。

root权限后,不要忘了还有selinux的更多相关文章

  1. 取得root权限后怎么删除程序

    不知道这个算什么教程,随便一个分类吧,管理员不要扣我分啊,我也是为大家服务嘛,不对的话可以帮我处理下) 最近也学习了下,把我的X8(国行2.1版)给root了,怎么root,论坛里有很多帖子,这里就不 ...

  2. 获得了Root权限后Read-only file system

    获得了Root权限后,adb shell进入文件系统,有时仍然不能对系统文件夹进行写操作,典型的如删除/system/app下的Apk, 例如系统报:rm failed for xxx.apk, Re ...

  3. ADB工具 获取ROOT权限及复制文件方法

    adb push d:\tm3_sqlit.db data/zouhao/tm3_sqlit.dbadb pull data/zouhao/tm3_sqlit.db d:\tm3_sqlit.db a ...

  4. Ubuntn16.04.3配置root权限及启用root用户

    景 如果你是测试环境需要在VM中装了Ubuntn,安装完成后会创建一个Ubuntn的默认用户,默认用户因为权限的问题很多系统的配置文件不可以打开,默认是只读状态. 那么可以通过以下两种方式切换到roo ...

  5. Android获取Root权限之后的静默安装实现代码示例分析

    转:http://blog.csdn.net/jiankeufo/article/details/43795015 Adroid开发中,我们有时会遇到一些特殊功能的实现,有些功能并没有太高技术难度,但 ...

  6. 以普通用户启动的Vim如何保存需要root权限的文件

    在Linux上工作的朋友很可能遇到过这样一种情况,当你用Vim编辑完一个文件时,运行:wq保存退出,突然蹦出一个错误: E45: 'readonly' option is set (add ! to ...

  7. [转] 以普通用户启动的Vim如何保存需要root权限的文件

    [转] 以普通用户启动的Vim如何保存需要root权限的文件 在Linux上工作的朋友很可能遇到过这样一种情况,当你用Vim编辑完一个文件时,运行:wq保存退出,突然蹦出一个错误: E45: 'rea ...

  8. Android权限说明 system权限 root权限

    原文链接:http://blog.csdn.net/rockwupj/article/details/8618655 Android权限说明 Android系统是运行在Linux内核上的,Androi ...

  9. user版本如何永久性开启adb 的root权限【转】

    本文转载自:http://blog.csdn.net/o0daxu0o/article/details/52933926 [Solution]* adb 的root 权限是在system/core/a ...

随机推荐

  1. opencv::模糊图像2

    中值滤波 统计排序滤波器 中值对椒盐噪声有很好的抑制作用 medianBlur(Mat src, Mat dest, ksize) 双边滤波 均值模糊无法克服边缘像素信息丢失缺陷.原因是均值滤波是基于 ...

  2. 技术分享:Dapr,让开发人员更轻松地构建微服务应用

    最近一直在学习微服务相关的技术.微服务架构已成为构建云原生应用程序的标准,并且可以预见,到2022年,将有90%的新应用程序采用微服务架构.微服务架构提供了令人信服的好处,包括可伸缩性,松散的服务耦合 ...

  3. Spring Cloud zuul网关服务 一

    上一篇进行Netflix Zuul 1.0 与 gateway的对比.今天来介绍一下 zuul的搭建及应用 Zuul 工程创建 工程创建 cloud-gateway-zuul.还是基于之前的工程 po ...

  4. 手绘风格的 JS 图表库:Chart.xkcd

    本文作者:HelloGitHub-kalifun 图表库千万个今天 HelloGitHub 给大家推荐个很有"特色"的图表库:一个手绘风格的 JS 图表库 -- Chart.xkc ...

  5. Swagger--解决日期格式显示为Unix时间戳格式 UTC格式

    在swagger UI模型架构上,字段日期显示为“日期”:“2018-10-15T09:10:47.507Z”但我需要将其作为“日期”:“2018-9-26 12:18:48”. tips:以下这两种 ...

  6. 关于 mybatis 报invalid comparison: java.util.Arrays$ArrayList and java.lang.String异常

    今天碰到个问题,来记录下,希望可以帮助到大家 贴错误源码: 这是一个根据list集合的查找数据的 sql,在接收list的时候加了判断 list != ‘ ’ “”,引起了集合与Stirng类型的比较 ...

  7. abp中将SqlServer切换为MySQL

    一.移除默认SQL Server相关包 在EntityFrameworkCore项目下移除包Microsoft.EntityFrameworkCore.SqlServer.Microsoft.Enti ...

  8. 27 个问题突破所有重难点,BroadcastReceiver 、ContentProvider 知多少?「建议收藏」

    前言 距离上次更新过去一周多了,打破了之前两到三天一更的惯例,主要还是这部分内容太多了. 原先想把 BroadcastReceiver .ContentProvider 分两篇来总结,但的确,这两大组 ...

  9. 在windows主机中,利用XSHELL生成“密钥”进行虚拟机与物理机的传输

    首先你要有虚拟机,其次你要可以互相ping通(主机与虚拟机) 接着你要有xshell 软件  没有的话可以点击链接下载 Xshell  6  提取码:cj5t 打开Xshell软件  在工具栏中选择“ ...

  10. Sublime text3配置C++环境

    前言 传说sublime是全球最好的编辑器,可是只是编辑器啊!!!如果要运行,对于我们这些蒟蒻来说,不得不去使用DEV_C++.我们总是幻想能让sublime变成一个轻量级IDE,那该多好啊!!! 那 ...