root权限后,不要忘了还有selinux
下面的例子运行在中兴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的更多相关文章
- 取得root权限后怎么删除程序
不知道这个算什么教程,随便一个分类吧,管理员不要扣我分啊,我也是为大家服务嘛,不对的话可以帮我处理下) 最近也学习了下,把我的X8(国行2.1版)给root了,怎么root,论坛里有很多帖子,这里就不 ...
- 获得了Root权限后Read-only file system
获得了Root权限后,adb shell进入文件系统,有时仍然不能对系统文件夹进行写操作,典型的如删除/system/app下的Apk, 例如系统报:rm failed for xxx.apk, Re ...
- ADB工具 获取ROOT权限及复制文件方法
adb push d:\tm3_sqlit.db data/zouhao/tm3_sqlit.dbadb pull data/zouhao/tm3_sqlit.db d:\tm3_sqlit.db a ...
- Ubuntn16.04.3配置root权限及启用root用户
景 如果你是测试环境需要在VM中装了Ubuntn,安装完成后会创建一个Ubuntn的默认用户,默认用户因为权限的问题很多系统的配置文件不可以打开,默认是只读状态. 那么可以通过以下两种方式切换到roo ...
- Android获取Root权限之后的静默安装实现代码示例分析
转:http://blog.csdn.net/jiankeufo/article/details/43795015 Adroid开发中,我们有时会遇到一些特殊功能的实现,有些功能并没有太高技术难度,但 ...
- 以普通用户启动的Vim如何保存需要root权限的文件
在Linux上工作的朋友很可能遇到过这样一种情况,当你用Vim编辑完一个文件时,运行:wq保存退出,突然蹦出一个错误: E45: 'readonly' option is set (add ! to ...
- [转] 以普通用户启动的Vim如何保存需要root权限的文件
[转] 以普通用户启动的Vim如何保存需要root权限的文件 在Linux上工作的朋友很可能遇到过这样一种情况,当你用Vim编辑完一个文件时,运行:wq保存退出,突然蹦出一个错误: E45: 'rea ...
- Android权限说明 system权限 root权限
原文链接:http://blog.csdn.net/rockwupj/article/details/8618655 Android权限说明 Android系统是运行在Linux内核上的,Androi ...
- user版本如何永久性开启adb 的root权限【转】
本文转载自:http://blog.csdn.net/o0daxu0o/article/details/52933926 [Solution]* adb 的root 权限是在system/core/a ...
随机推荐
- gperftools::TCMalloc
VS2013编译gperftools-2.4 1)https://github.com/gperftools/gperftools 下载 gperftools-2.4.zip 版本.2)解压 ...
- 关于while和do while 的个人理解
先上代码 int x=425; System.out.println("循环开始,我的初始值为:x="+x); //425 do { System.out.println(&quo ...
- org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping
配置spring+shiro时,启动tomcat报错异常 严重: Context initialization failedorg.springframework.beans.factory.Bean ...
- 简易数据分析 13 | Web Scraper 抓取二级页面
这是简易数据分析系列的第 13 篇文章. 不知不觉,web scraper 系列教程我已经写了 10 篇了,这 10 篇内容,基本上覆盖了 Web Scraper 大部分功能.今天的内容算这个系列的最 ...
- uni-app 请求封装
1.创建一个http.js const baseUrl = 'http://192.168.1.188:8080'; const httpRequest = (opts, data) => ...
- Java IO_001.File类--文件或文件夹相关操作
Java IO之File对象常用操作 File类:用于文件或文件夹或网址相关联的操作.可以关联或不关联文件(即关联不存在的文件).构造函数有: public File(String pathname) ...
- chrome安装json美化软件 JSONView
安装效果如下: 安装步骤: 1.下载地址: github地址:https://github.com/gildas-lormeau/JSONView-for-Chrome 2.解压文件 3.打开谷歌浏览 ...
- PHP通过JSON给JS赋值;JS通过JSON给PHP传值
$fileNames = array(); // 是数组,不是字符串 $filesJSON = json_encode($fileNames);// 转成json格式 var oldFiles = n ...
- 阿里云和微软共同开源的 OAM 对 Kubernetes 开发人员意味着什么?
上周,微软和阿里巴巴共同推出了开放应用模型(OAM),用于定义部署在任何地方的应用模型的一种规范.Rudr是Microsoft基于Kubernetes环境的OAM标准实现. 我用了一个周末来了解OAM ...
- beanFactory 设计模式 Bean 生命周期的胡言乱语,哈哈
写在前面的话 适用读者:有一定经验的,本文不适合初学者,因为可能不能理解我在说什么 文章思路:不会一开始就像别的博客文章那样,Bean 的生命周期,源码解读(给你贴一大堆的源码).个人觉得应该由问题驱 ...