由Android的fastboot no permissions而引出的Linux特殊权限管理之:SUID、SGID、SBIT

简介: 前言之所以会说到这几个特殊权限,是因为fastboot这个命令好像有点抽风,给人的感觉就是有时能用有时不能用,执行fastboot devices的错误提示:no permissions为了找到问题的原因,就思考了一下。

前言

之所以会说到这几个特殊权限,是因为fastboot这个命令好像有点抽风,给人的感觉就是有时能用有时不能用,执行fastboot devices的错误提示

no permissions


为了找到问题的原因,就思考了一下。


这种问题一般主要发生在以下2种场景下:

1、复制并使用了新的fastboot可执行文件

2、改变了fastboot可执行文件的环境变量


为什么以上2种场景会产生这样的错误?

which fastboot
ll fastboot

执行这两条命令之后就可见端倪,原来由于复制或者使用了别人复制的fastboot,导致fastboot所属的用户和群组发生了改变,从而让SUID和SGID失效因为原来fastboot所属的用户和群组都是root。

接下来我们就简单说了解一下SUID和SGID的失效导致no permissions背后的知识点。

SUID

Set UID,它会出现在文件拥有者权限的执行位上,只对二进制程序有效,执行者对于程序需要有x权限,在程序运行过程中,执行者拥有程序拥有者的权限。

例如:普通用户执行fastboot和passwd命令

这里再多说一句,很多Android上的root工具就是通过一些漏洞(比如缓冲区溢出等)来攻击一些带有SUID或SGID权限,并且所属的用户或用户组是root的二进制程序来临时获取root权限,然后执行一段事先编译好的恶意目标平台代码来达到root的目的。

SGID

Set GID,它出现在文件所属组权限的执行位上面,对于文件和目录都有效,具体作用如下:

1、对于文件

对于二进制程序有用,程序执行者要有x权限,执行者在执行过程中会获得该程序用户组的权限(相当于临时加入了程序的用户组

2、对于目录

用户对此目录有rx权限可以进入目录,用户进入此目录后,有效用户组会变成该目录的用户组,若用户在此目录有wx权限,则用户创建的文件的用户组与该目录用户组相同。

SBIT

Sticky BIT,它出现在其他用户权限的执行位上,只对目录有效,当用户对目录拥有wx权限时,用户在该目录创建的文件或目录,只有用户自己和root才可以删除。


如何设置这些特殊权限

chmod的时候如果用数字表示,则比正常的3组数字多了一组,多的一组的含义具体如下:

4表示SUID
2表示SGID
1表示SBIT

来个简单的例子:

chmod 4777 test1
上面的命令就是将test1加上了SUID权限,其他组合大家可以自由发挥。


另外如果chmod用字母的+和-来表示时要注意一下,如果因为没有x权限,直接+s或者+t,会显示为大写的S或T,出现这种情况不用担心,直接再给它+x权限就行了。

用字母表示时如果一定要设置正确的特殊权限可以参考以下几个简单的例子:

chmod u+x+s xxxx
chmod g+x+s xxxx
chmod o+x+t xxxx


一个小问题背后也会隐藏一些比较重要的知识点,善于发现和总结,总能有一些收获。

最后,将此问题记录下来,希望能够帮到后续遇到类似问题的同学。


目录
相关文章
|
安全 Linux
在Linux中,suid、sgid和sticky bit这几个术语意思?
在Linux中,suid、sgid和sticky bit这几个术语意思?
|
Linux 应用服务中间件 nginx
Linux下权限设置之suid、sgid、sticky
Linux下权限设置之suid、sgid、sticky
|
自然语言处理 安全 Shell
Linux 提权-SUID/SGID_1 本文通过 Google 翻译 SUID | SGID Part-1 – Linux Privilege Escalation 这篇文章所产生,本人仅是对机器翻译中部分表达别扭的字词进行了校正及个别注释补充。
接下来,让我们看看 SUID3NUM 在枚举 SUID 二进制文件方面的表现如何。 3.2、枚举 SUID 二进制文件 – SUID3NUM 我们将用来枚举 SUID 二进制文件的第二个工具是 SUID3NUM。这是一个很棒的工具,因为它是专门为枚举 SUID 二进制文件而创建的。但这还不是全部,它还提供了可用于提升权限的命令(命令从 GTFOBins 中提取)。 这还不是最好的部分,SUID3NUM 还具有内置的 autopwn 功能,可以通过 -e 开关激活! 在 OSCP 考试中也使用此工具,只要您不使用自动利用功能。 3.2.1、下载并执行 SUID3NUM 我们可以从 GitHubs
303 0
|
安全 Java Shell
Android 权限管理
Android 权限管理
1017 0
|
安全 Linux 数据安全/隐私保护
Linux特殊权限解析:SUID、SGID和Sticky Bit
Linux特殊权限解析:SUID、SGID和Sticky Bit
997 0
|
Android开发 数据安全/隐私保护 数据格式
|
8月前
|
移动开发 前端开发 Android开发
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
1553 12
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
8月前
|
移动开发 JavaScript 应用服务中间件
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
1074 5
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
8月前
|
移动开发 Rust JavaScript
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
1150 4
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
9月前
|
开发工具 Android开发
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
902 11
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡