Android Root Atlas/教程库/sudo 与权限提升

Linux / Unix Root 与系统管理 / sudo 与权限提升

Linux 的 root 不等于 Android Root:sudo、UID 0 与最小权限入门

在自己的 Linux 测试机中用 id、sudo 与 capabilities 看清身份边界,并学会只为一条可信命令授予必要权限。

本篇完成任务

在 Linux 测试环境中记录普通用户与 UID 0 的差异,安全检查 sudo 规则,并完成一次可审计、可结束的单命令提权。

这篇教程里的 root 是 Linux/Unix 的超级用户,通常对应有效 UID 0;它不是 Android 上修补 boot.img、安装 Magisk 或管理 App 的 su 请求。我们只在你拥有的 Linux 虚拟机或测试主机上做身份观察,不尝试漏洞利用,也不改变 Android 设备。

你会完成什么#

  • id 区分登录用户、组和有效身份。
  • sudo -l 读懂当前账户被允许执行的规则。
  • 只让一条发行版自带的只读命令以 root 身份运行,并比较前后输出。
  • 认识 susudodoas、polkit 与 Linux capabilities 的不同授权边界。
  • 留下会话记录,并确认实验没有创建长期 root 入口。

先看结论#

看到的词或任务它实际指什么新手应采取的路线
sudo command策略允许后,以目标用户运行这一条命令先读 sudo -l,再核对命令完整路径
su -切换到另一账户的登录环境日常管理通常不需要保持 root shell
CAP_NET_BIND_SERVICE把 root 的一小项能力单独授予进程由管理员按服务文档配置,不照抄陌生命令
boot.img、Magisk、KernelSUAndroid 启动链与 Root 授权离开本篇,按精确机型与系统构建查 Android 指南
privesc、exploit绕过既有授权的攻防内容新手不要在真实系统执行

心智模型#

Linux:普通用户(UID 1000) → sudo 策略/PAM → 单条可信命令(EUID 0) → 命令结束即返回
Android:Bootloader → 修补/替换启动组件 → Root 管理器 → App 的 su 请求
                 两条路径只是都使用了“root”这个词,并不互通

工具清单#

工具角色什么时候用来源与注意
idwhoami只读显示当前身份每次实验前后系统自带;whoami 信息少于 id
sudo按 sudoers 策略执行目标命令只在任务确实需要更高权限时sudo 不是沙箱,命令及参数都必须可信
visudo锁定并检查 sudoers 语法有经验的管理员确需改策略时本实验不修改规则;不要用普通编辑器直接改
OpenBSD doas更小的权限切换工具系统已选择 doas 时语法与 sudo 不同,不能混用配置
polkit为系统服务“动作”做授权桌面或 D-Bus 服务请求权限时pkexec 不是通用 Android Root 工具
capabilities把传统 root 权力拆成小能力服务只需绑定低端口等单项能力时能力仍有安全影响;只做读取观察

项目全景:sudo 与权限提升的 17 个项目,一个不漏#

这组结果把 Linux 的 sudo/提权、Android 特权进程、Magisk 特权应用和攻防研究混在一起。文章应先画清授权边界,再把 17 个项目分别放进安全使用、开发接口或仅供审计的路线。

技术路线项目数处理等级在主题任务中的位置
Linux 日常管理任务2候选路线从无 root 安装软件包和显式创建 swap 讲清何时真的需要管理员权限,并强调先读脚本、先做快照。
Android 特权执行接口7候选路线比较 Binder 特权进程、Flutter/Java shell 封装、模拟器临时提权和 POSIX 用户态方案;它们是开发接口,不是通用一键 Root。
系统级与特权 App 转换2候选路线以 Green2Priv 系列说明把普通 App 变成 priv-app 的系统影响、版本配套和卸载回滚;不要把“能安装”误当成“权限安全”。
沙箱与提权检测2参考/审计把 namespaces、pivot_root、seccomp、capability dropping 与 eBPF 凭据检测串成防御路线,只在隔离实验机验证。
提权与后门研究(仅审计)3隔离审计对枚举器、提权清单和 setuid 后门只做威胁建模与识别,不给真实目标执行步骤,并明确授权和隔离边界。
综合教程与待复核项目1边界复核收束教程集合或元数据不足的项目:逐项说明它实际谈的是 Linux、Android 还是文档,不把名称中的 root 当成功能证明。

1. Linux 日常管理任务 · 2#

从无 root 安装软件包和显式创建 swap 讲清何时真的需要管理员权限,并强调先读脚本、先做快照。

本组共 2 项:2 个源项目、0 个 Fork,其中 1 项已归档。新手应先从“未归档的源项目”核对 README 和 Release,再用 Fork 追溯设备适配或历史差异;分组本身不等于推荐安装。

项目上游定位与识别信号状态与采用前检查
3x1l3l4bs/pkget主题用途:将 3x1l3l4bs/pkget 纳入「Linux 日常管理任务」候选路线,根据 apt · debian · install · Shell 核对功能、平台与版本适配。 上游自述(保留原文):Install packages on any Debian based Linux distro without root or installing it on the entire system已归档源项目 · ★ 122 · GPL-3.0 · 2023-03-22。已归档:保留作历史、迁移或兼容性参考,不作为默认安装源。
spiritLHLS/addswap主题用途:将 spiritLHLS/addswap 纳入「Linux 日常管理任务」候选路线,根据 bash · kvm · linux · Shell 核对功能、平台与版本适配。 上游自述(保留原文):为kvm、openvz虚拟化的linux服务器增加swap分区,请确保在root权限下使用(Add swap partition for Linux server with kvm or openvz, please make sure to use it with root privileges)未归档源项目 · ★ 30 · MIT · 2026-06-01。活跃候选:先核对 README、最新 Release、目标版本与已知问题。

2. Android 特权执行接口 · 7#

比较 Binder 特权进程、Flutter/Java shell 封装、模拟器临时提权和 POSIX 用户态方案;它们是开发接口,不是通用一键 Root。

本组共 7 项:7 个源项目、0 个 Fork,其中 0 项已归档。新手应先从“未归档的源项目”核对 README 和 Release,再用 Fork 追溯设备适配或历史差异;分组本身不等于推荐安装。

项目上游定位与识别信号状态与采用前检查
quarkslab/AERoot主题用途:将 quarkslab/AERoot 纳入「Android 特权执行接口」候选路线,根据 android-emulator · root-privileges · Python 核对功能、平台与版本适配。 上游自述(保留原文):AERoot is a command line tool that allows you to give root privileges on-the-fly to any process running on the Android emulator with Google Play flavors AVDs.未归档源项目 · ★ 213 · Apache-2.0 · 2023-11-01。活跃候选:先核对 README、最新 Release、目标版本与已知问题。
gokul1630/root主题用途:将 gokul1630/root 纳入「Android 特权执行接口」候选路线,根据 android · flutter-plugin · root · Dart 核对功能、平台与版本适配。 上游自述(保留原文):A Flutter Plugin to check Android device Root status and execute shell commands with root privileges未归档源项目 · ★ 25 · MIT · 2022-09-22。活跃候选:先核对 README、最新 Release、目标版本与已知问题。
MMRLApp/RootThread主题用途:将 MMRLApp/RootThread 纳入「Android 特权执行接口」候选路线,根据 Java 核对功能、平台与版本适配。 上游自述(保留原文):An Android library for executing arbitrary code in a privileged root process via Binder IPC, with first-class support for both Java (Future, ExecutorService) and Kotlin (coroutines, Flow, DSL).未归档源项目 · ★ 11 · GPL-3.0 · 2026-04-01。活跃候选:先核对 README、最新 Release、目标版本与已知问题。
thepanoc95/UserSU主题用途:将 thepanoc95/UserSU 纳入「Android 特权执行接口」候选路线,根据 android · posix · root · C++ 核对功能、平台与版本适配。 上游自述(保留原文):A user-based root solution for Android devices. (+ Any other POSIX System)未归档源项目 · ★ 10 · 协议未声明 · 2026-06-18。活跃候选:先核对 README、最新 Release、目标版本与已知问题。
4evergr8/FlutterClashRoot主题用途:将 4evergr8/FlutterClashRoot 纳入「Android 特权执行接口」候选路线,根据 android · clash · flutter · Dart 核对功能、平台与版本适配。 上游自述(保留原文):基于Flutter框架的Clash内核控制器,仅限Root用户未归档源项目 · ★ 8 · 协议未声明 · 2026-07-15。活跃候选:先核对 README、最新 Release、目标版本与已知问题。
Googlers-Repo/android-xdg-utils主题用途:将 Googlers-Repo/android-xdg-utils 纳入「Android 特权执行接口」候选路线,根据 android · cpp · linux · C++ 核对功能、平台与版本适配。 上游自述(保留原文):XDG Utils built for Android with C++未归档源项目 · ★ 4 · MIT · 2023-06-04。活跃候选:先核对 README、最新 Release、目标版本与已知问题。
parktest0325/AndroidShellExecutor主题用途:将 parktest0325/AndroidShellExecutor 纳入「Android 特权执行接口」候选路线,根据 Java 核对功能、平台与版本适配。 上游自述(保留原文):Executing shell commands with app privileges. and "su" command button for rooting.未归档源项目 · ★ 4 · 协议未声明 · 2023-08-08。活跃候选:先核对 README、最新 Release、目标版本与已知问题。

3. 系统级与特权 App 转换 · 2#

以 Green2Priv 系列说明把普通 App 变成 priv-app 的系统影响、版本配套和卸载回滚;不要把“能安装”误当成“权限安全”。

本组共 2 项:2 个源项目、0 个 Fork,其中 0 项已归档。新手应先从“未归档的源项目”核对 README 和 Release,再用 Fork 追溯设备适配或历史差异;分组本身不等于推荐安装。

项目上游定位与识别信号状态与采用前检查
K3V1991/Green2Priv-Beta主题用途:将 K3V1991/Green2Priv-Beta 纳入「系统级与特权 App 转换」候选路线,根据 android · apk · app · Shell 核对功能、平台与版本适配。 上游自述(保留原文):A simple Module to make Greenify work as a ROM-integrated (privileged) App未归档源项目 · ★ 11 · 协议未声明 · 2023-11-04。活跃候选:先核对 README、最新 Release、目标版本与已知问题。
K3V1991/Green2Priv主题用途:将 K3V1991/Green2Priv 纳入「系统级与特权 App 转换」候选路线,根据 android · apk · app · Shell 核对功能、平台与版本适配。 上游自述(保留原文):A simple Module to make Greenify work as a ROM-integrated (privileged) App未归档源项目 · ★ 11 · 协议未声明 · 2023-11-04。活跃候选:先核对 README、最新 Release、目标版本与已知问题。

4. 沙箱与提权检测 · 2#

把 namespaces、pivot_root、seccomp、capability dropping 与 eBPF 凭据检测串成防御路线,只在隔离实验机验证。

本组共 2 项:2 个源项目、0 个 Fork,其中 0 项已归档。它们用于对照、诊断或审计,不组成可批量安装的推荐清单。

项目上游定位与识别信号状态与采用前检查
Division-36/Z-Jail主题用途:将 Division-36/Z-Jail 放在「沙箱与提权检测」中作对照或审计参考,使用 audit · audit-trail · binary-hardening · C 判断它与当前任务的边界。 上游自述(保留原文):A lightweight, multi-layer Linux sandbox combining namespaces, pivot_root, seccomp-bpf, capability dropping, and an evidence-based verdict engine (Truthimatics Public Version) for secure, auditable code execution.未归档源项目 · ★ 73 · MIT · 2026-07-19。参考条目:用于防御性观测、概念对照或实验室审计;不是可直接照搬的安装方案。
containerscrew/rootisnaked主题用途:将 containerscrew/rootisnaked 放在「沙箱与提权检测」中作对照或审计参考,使用 c · c-programming · credential-detection · C 判断它与当前任务的边界。 上游自述(保留原文):Simple root privilege escalation detection using eBPF 🐝未归档源项目 · ★ 35 · GPL-3.0 · 2026-07-16。参考条目:用于防御性观测、概念对照或实验室审计;不是可直接照搬的安装方案。

5. 提权与后门研究(仅审计) · 3#

对枚举器、提权清单和 setuid 后门只做威胁建模与识别,不给真实目标执行步骤,并明确授权和隔离边界。

本组共 3 项:3 个源项目、0 个 Fork,其中 0 项已归档。它们是风险名录,不是新手安装候选;阅读顺序只用于识别威胁、比较上游与 Fork,或在经授权的隔离环境做防御性审计。

项目上游定位与识别信号状态与采用前检查
twelvesec/rootend主题用途:将 twelvesec/rootend 作为「提权与后门研究(仅审计)」的风险识别样本,只根据 enumerator · escalation · hacking · Python 做防御性分流。 为避免转载攻击步骤或载荷,不复制上游操作性简介。未归档源项目 · ★ 151 · GPL-3.0 · 2021-11-19。隔离条目:只用于风险识别、源码审计或经授权的防御实验;不要在日用机部署,也不要对第三方目标运行。
sujayadkesar/Linux-Privilege-Escalation主题用途:将 sujayadkesar/Linux-Privilege-Escalation 作为「提权与后门研究(仅审计)」的风险识别样本,只根据 exploit-scripts · exploits · kernel-exploitation · C 做防御性分流。 为避免转载攻击步骤或载荷,不复制上游操作性简介。未归档源项目 · ★ 61 · 协议未声明 · 2023-01-29。隔离条目:只用于风险识别、源码审计或经授权的防御实验;不要在日用机部署,也不要对第三方目标运行。
azuk4r/nmap_backdoor主题用途:将 azuk4r/nmap_backdoor 作为「提权与后门研究(仅审计)」的风险识别样本,只根据 backdoor · nmap · C 做防御性分流。 为避免转载攻击步骤或载荷,不复制上游操作性简介。未归档源项目 · ★ 53 · NOASSERTION · 2025-10-28。隔离条目:只用于风险识别、源码审计或经授权的防御实验;不要在日用机部署,也不要对第三方目标运行。

6. 综合教程与待复核项目 · 1#

收束教程集合或元数据不足的项目:逐项说明它实际谈的是 Linux、Android 还是文档,不把名称中的 root 当成功能证明。

本组共 1 项:1 个源项目、0 个 Fork,其中 1 项已归档。它们的平台、用途或分类存在边界,只作逐项核验,不当作默认安装候选。

项目上游定位与识别信号状态与采用前检查
sudoskys/Root主题用途:将 sudoskys/Root 作为「综合教程与待复核项目」边界条目,通过 android · magisk · root 核对它实际是否属于本教程。 为避免转载攻击步骤或载荷,不复制上游操作性简介。已归档源项目 · ★ 740 · NOASSERTION · 2024-07-29。边界条目:先核对实际平台、用途和分类理由,不作为默认安装源。

开始前#

使用你控制的 Linux VM、容器外测试机或可通过控制台恢复的主机。确认账户本来就在管理员允许的 sudoers 策略中;没有权限时应联系管理员,而不是下载“提权脚本”。打开一个终端,并用 script、终端日志或手工笔记保存命令和输出。不要在生产服务器练习。

操作步骤#

1. 记录普通用户身份#

运行 idwhoamipwd。记录 UID、主组、附加组及当前目录。普通桌面 Linux 用户常见 UID 1000,但不要把 1000 当作固定标准。再运行 command -v id,确认稍后调用的是系统路径中的工具,而不是当前目录里的同名脚本。

2. 只读检查授权并运行一条命令#

执行 sudo -l,阅读“可作为哪些用户运行哪些命令”。若策略允许,运行 sudo id;它只显示该进程的身份,不写文件。预期能看到 UID 0,然后命令立即结束。不要运行 sudo -isudo su -:持续 root shell 会扩大输错命令的影响,也不利于审计。

3. 观察细粒度能力并结束会话#

运行 command -v getcap >/dev/null && getcap "$(command -v ping)"。有些发行版会显示 cap_net_raw,另一些使用不同设计或没有输出,这都不代表失败。它说明程序可以拥有一项能力而不必获得完整 UID 0。最后运行 sudo -k 清除当前终端缓存的认证时间戳,再运行 id 确认已经回到普通身份。回滚就是结束本次会话;本实验没有修改 sudoers 或文件权限。

验证#

  • 第一份 id 输出显示你的普通 UID,而 sudo id 只在该子进程中显示 UID 0。
  • sudo id 结束后再次运行 id,身份仍是原用户。
  • sudo -l 的输出与你实际执行的命令一致,没有新增规则。
  • sudo -k 后下一次受保护操作会重新走认证策略。
  • 系统中没有新建账户、setuid 文件、计划任务或长期 root shell。

排错#

现象常见原因安全处理
sudo: command not found极简系统未安装 sudo,或该系统使用 doas查发行版官方管理文档;不要从随机脚本安装
“user is not in the sudoers file”管理员未授权此账户停止并联系主机管理员,不尝试提权漏洞
sudo -l 列出复杂通配符规则依赖命令参数或路径匹配不猜测;让管理员解释并用 visudo 审核
getcap 无输出工具未安装或该二进制不用 file capability这是允许的结果,不用 sudo 修改二进制
sudo id 后误以为手机已 Root混淆 Linux 主机与 Android 设备核对运行命令的主机、终端提示符和设备序列号

完成清单#

  • 我记录了测试主机、账户 UID 和当前目录。
  • 我在执行前读过 sudo -l,且只运行了系统自带的只读命令。
  • 我能解释 UID 0、sudo 策略和 capability 的区别。
  • 我已运行 sudo -k,并确认身份回到普通用户。
  • 我没有创建持久入口,也没有把 Linux root 当成 Android Root。

一手资料#