Android Root Atlas/教程库/rootfs、容器与系统镜像

Linux / Unix Root 与系统管理 / rootfs、容器与系统镜像

容器里显示 root,手机就 Root 了吗?rootfs、chroot、PRoot 与 Rootless 容器图解

用 Linux user namespace 做一次可销毁实验,亲眼验证容器内 UID 0、宿主用户和 Android Root 是三种不同边界。

本篇完成任务

在自己的 Linux 测试机中建立临时 user namespace,比较内外 UID 映射和文件所有者,并退出后确认宿主没有被 Root。

不会。这里的 root 多半是进程看到的根文件系统 /,或 user namespace 内映射出来的 UID 0;它不是 Android Bootloader 解锁,也不会安装 Magisk、KernelSU 或 APatch。本篇用一个退出即消失的 Linux namespace 实验,把“容器内 root”与“宿主权限”分开看清。

你会完成什么#

  • 区分 root filesystem、namespace 内 UID 0、宿主 UID 0 与 Android Root。
  • unshare 创建只映射当前用户的临时 user namespace。
  • 在 namespace 内外比较 iduid_map 和测试文件所有者。
  • 知道 PRoot、rootless Podman/Docker、rootful container 与 VM 的隔离差异。
  • 退出实验并确认没有残留容器、挂载或特权配置。

先看结论#

场景里面可能显示 root 吗对宿主意味着什么
chroot仅改路径视图,通常先要宿主权限;不是安全隔离
PRoot / proot-distro用户态转换路径与调用,通常不需 Android Root,也不是强沙箱
Rootless Podman/Docker容器 UID 0 映射到普通宿主 UID,能力受 namespace 限制
Rootful --privileged 容器与宿主边界很薄,风险高,本篇不使用
Android Magisk/KernelSU改变 Android 启动/内核与 su 授权链,属于另一类任务

心智模型#

宿主文件 owner UID 1000
        ↕ user-namespace 映射:外部 1000 ↔ 内部 0
容器/namespace 进程看到:UID 0 + 自己的 `/` 视图 + 受限 capabilities
        ✕ 不等于宿主 UID 0
        ✕ 不等于 Android Bootloader/boot image 已改变

工具清单#

工具角色什么时候用来源与注意
unshare直接创建 Linux namespaces本篇最小、无镜像实验内核或管理员可能禁用 unprivileged user namespaces
/proc/self/uid_map显示 namespace 内外 UID 映射判断“里面的 root”映射到谁只读;不要只看 whoami 下结论
Termux proot-distro无 Root 运行 Linux 用户空间Android 上需要命令行发行版工具时PRoot 不是高等级隔离,不运行不可信二进制
Podman rootless以普通用户管理 OCI 容器Linux 桌面需要标准容器时使用用户命名空间;需正确的 subuid/subgid 配置
Docker Rootless modedaemon 和容器都不以宿主 root 运行已采用 Docker 生态时不等于所有挂载和镜像都安全
OCI Runtime Spec描述 rootfs、mount 与 namespace阅读容器配置和实现时是规范,不是手机 Root 工具

项目全景:rootfs、容器与系统镜像的 43 个项目,一个不漏#

这 43 个项目横跨 Android/ChromeOS rootfs、镜像构建、可信启动、rootless 容器、服务器平台和少量明显同名误收录。主题应是“如何选择并验证一个 root 文件系统运行环境”。

技术路线项目数处理等级在主题任务中的位置
Android、ChromeOS 与移动 rootfs13候选路线按 chroot、proot、原生 Docker、子系统 Root 与设备专用构建器区分宿主要求,先验证架构、内核特性和恢复入口。
rootfs 构建与多架构镜像4候选路线从发行版 rootfs、initramfs/CPIO 到 QEMU 多架构调试,讲清输入、可复现构建、产物校验与不可直接刷入的边界。
可启动、不可变与校验 root5候选路线把 ZFS root、NVMe 迁移、dm-verity/SquashFS 和桌面 rootfs 配置放进启动链路线,重点是备份、签名、引导项与回滚。
非 root 容器、proot 与 sidecar9候选路线比较真正的非 root UID、容器内伪 root、proot 和无特权网络 sidecar;用最小镜像、只读挂载和能力清单做验收。
容器平台与自托管运维7候选路线把游戏服务器、服务网格、VPS 部署、可观测性与 homelab 管理工具串成部署生命周期,并区分“项目根仓库”与 root 权限。
一次性隔离运行时与微虚拟机3候选路线以 namespaces、Incus 和 Firecracker 类方案讲解如何给不可信任务临时 root,同时限制网络、持久化和宿主暴露。
同名词与误分类复核2边界复核逐项标明剩余项目是 rootfs 工具、上层应用、仅叫 Roots/Rootspace,还是明显无关内容;保留目录覆盖但不建议执行。

1. Android、ChromeOS 与移动 rootfs · 13#

按 chroot、proot、原生 Docker、子系统 Root 与设备专用构建器区分宿主要求,先验证架构、内核特性和恢复入口。

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

项目上游定位与识别信号状态与采用前检查
KreitinnSoftware/MiceWine-RootFS-Generator主题用途:将 KreitinnSoftware/MiceWine-RootFS-Generator 纳入「Android、ChromeOS 与移动 rootfs」候选路线,根据 Shell 核对功能、平台与版本适配。 上游自述(保留原文):This repository generate needed files for MiceWine已归档源项目 · ★ 197 · 协议未声明 · 2025-12-02。已归档:保留作历史、迁移或兼容性参考,不作为默认安装源。
linkease/docker-for-android主题用途:将 linkease/docker-for-android 纳入「Android、ChromeOS 与移动 rootfs」候选路线,根据 Go 核对功能、平台与版本适配。 上游自述(保留原文):为 Android 底层提供原生的 Docker 能力。Android 系统必须支持 adb root 才行。未归档源项目 · ★ 191 · 协议未声明 · 2025-12-26。活跃候选:先核对 README、最新 Release、目标版本与已知问题。
Goldzxcbug/Droidspaces-rootfs-KDE-builder主题用途:将 Goldzxcbug/Droidspaces-rootfs-KDE-builder 纳入「Android、ChromeOS 与移动 rootfs」候选路线,根据 droidspaces · Dockerfile 核对功能、平台与版本适配。 上游自述(保留原文):为Droidspaces用户打造的带支持中文环境的KDE_rootfs,并配合on脚本或systemd快速启动未归档 Fork · ★ 104 · 协议未声明 · 2026-07-19。Fork:采用前先与上游比较提交、Release 和维护者说明。
Droidspaces/Droidspaces-rootfs-builder主题用途:将 Droidspaces/Droidspaces-rootfs-builder 纳入「Android、ChromeOS 与移动 rootfs」候选路线,根据 droidspaces · Dockerfile 核对功能、平台与版本适配。 上游自述(保留原文):未提供仓库简介未归档源项目 · ★ 68 · 协议未声明 · 2026-07-19。活跃候选:先核对 README、最新 Release、目标版本与已知问题。
CerisWhite/CrAnberry主题用途:将 CerisWhite/CrAnberry 纳入「Android、ChromeOS 与移动 rootfs」候选路线,根据 android · chromebook · chromeos · Shell 核对功能、平台与版本适配。 上游自述(保留原文):Rooting the ChromeOS Android Subsystem post v77未归档源项目 · ★ 48 · NOASSERTION · 2024-02-13。活跃候选:先核对 README、最新 Release、目标版本与已知问题。
ThomasBaruzier/android-chroot主题用途:将 ThomasBaruzier/android-chroot 纳入「Android、ChromeOS 与移动 rootfs」候选路线,根据 Shell 核对功能、平台与版本适配。 上游自述(保留原文):(ROOT) Making the most out of Android chrooted distibutions未归档源项目 · ★ 35 · Apache-2.0 · 2026-05-13。活跃候选:先核对 README、最新 Release、目标版本与已知问题。
c3r34lk1ll3r/gdb_2_root主题用途:将 c3r34lk1ll3r/gdb_2_root 纳入「Android、ChromeOS 与移动 rootfs」候选路线,根据 android · avd · emulator · Python 核对功能、平台与版本适配。 上游自述(保留原文):This python script adds some usefull command to stripped vmlinux image未归档源项目 · ★ 24 · GPL-3.0 · 2020-09-18。活跃候选:先核对 README、最新 Release、目标版本与已知问题。
TechTutoPPT/Android-No-Root-Install-Docker主题用途:将 TechTutoPPT/Android-No-Root-Install-Docker 纳入「Android、ChromeOS 与移动 rootfs」候选路线,根据 仓库名、README 与发布记录 核对功能、平台与版本适配。 上游自述(保留原文):Android免Root安裝Docker未归档源项目 · ★ 23 · 协议未声明 · 2025-10-02。活跃候选:先核对 README、最新 Release、目标版本与已知问题。
zulfi0/install_rootfs_android主题用途:将 zulfi0/install_rootfs_android 纳入「Android、ChromeOS 与移动 rootfs」候选路线,根据 仓库名、README 与发布记录 核对功能、平台与版本适配。 上游自述(保留原文):Install linux rootfs directly in android rooted devices未归档源项目 · ★ 21 · 协议未声明 · 2025-09-05。活跃候选:先核对 README、最新 Release、目标版本与已知问题。
makinbacon21/switchroot-script-builder主题用途:将 makinbacon21/switchroot-script-builder 纳入「Android、ChromeOS 与移动 rootfs」候选路线,根据 android-q · gapps · nintendo-switch · Shell 核对功能、平台与版本适配。 上游自述(保留原文):Local build script for Switchroot Android Q, featuring overclocking functionality and optional Magisk pre-rooting.已归档源项目 · ★ 11 · 协议未声明 · 2022-02-10。已归档:保留作历史、迁移或兼容性参考,不作为默认安装源。
erfanoabdi/rootfs-builder-debos-android9主题用途:将 erfanoabdi/rootfs-builder-debos-android9 纳入「Android、ChromeOS 与移动 rootfs」候选路线,根据 Shell 核对功能、平台与版本适配。 上游自述(保留原文):Force push warning未归档 Fork · ★ 9 · 协议未声明 · 2021-01-09。Fork:采用前先与上游比较提交、Release 和维护者说明。
godotengine/android-editor-buildenv-rootfs主题用途:将 godotengine/android-editor-buildenv-rootfs 纳入「Android、ChromeOS 与移动 rootfs」候选路线,根据 Shell 核对功能、平台与版本适配。 上游自述(保留原文):未提供仓库简介未归档源项目 · ★ 7 · GPL-2.0 · 2025-12-30。活跃候选:先核对 README、最新 Release、目标版本与已知问题。
r3vn/rootfs-builder-mobian-android9主题用途:将 r3vn/rootfs-builder-mobian-android9 纳入「Android、ChromeOS 与移动 rootfs」候选路线,根据 Shell 核对功能、平台与版本适配。 上游自述(保留原文):未提供仓库简介已归档源项目 · ★ 7 · 协议未声明 · 2020-09-20。已归档:保留作历史、迁移或兼容性参考,不作为默认安装源。

2. rootfs 构建与多架构镜像 · 4#

从发行版 rootfs、initramfs/CPIO 到 QEMU 多架构调试,讲清输入、可复现构建、产物校验与不可直接刷入的边界。

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

项目上游定位与识别信号状态与采用前检查
qilingframework/rootfs主题用途:将 qilingframework/rootfs 纳入「rootfs 构建与多架构镜像」候选路线,根据 JavaScript 核对功能、平台与版本适配。 上游自述(保留原文):未提供仓库简介未归档源项目 · ★ 74 · 协议未声明 · 2026-04-27。边界命中:先读 README,确认它确实属于当前任务,再决定是否使用。
deepin-community/deepin-rootfs主题用途:将 deepin-community/deepin-rootfs 纳入「rootfs 构建与多架构镜像」候选路线,根据 Shell 核对功能、平台与版本适配。 上游自述(保留原文):制作一个deepin的根文件系统未归档源项目 · ★ 52 · 协议未声明 · 2026-04-22。活跃候选:先核对 README、最新 Release、目标版本与已知问题。
u-root/mkuimage主题用途:将 u-root/mkuimage 纳入「rootfs 构建与多架构镜像」候选路线,根据 go · initramfs · kernel · Go 核对功能、平台与版本适配。 上游自述(保留原文):Create small Go-based root file systems -- with support for CPIOs and (TBD) Docker images未归档源项目 · ★ 33 · BSD-3-Clause · 2026-06-28。边界命中:先读 README,确认它确实属于当前任务,再决定是否使用。
veritas501/multiarch-rootfs-env主题用途:将 veritas501/multiarch-rootfs-env 纳入「rootfs 构建与多架构镜像」候选路线,根据 Shell 核对功能、平台与版本适配。 上游自述(保留原文):multiarch qemu system env for playing and debugging :)未归档源项目 · ★ 32 · 协议未声明 · 2021-11-03。活跃候选:先核对 README、最新 Release、目标版本与已知问题。

3. 可启动、不可变与校验 root · 5#

把 ZFS root、NVMe 迁移、dm-verity/SquashFS 和桌面 rootfs 配置放进启动链路线,重点是备份、签名、引导项与回滚。

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

项目上游定位与识别信号状态与采用前检查
jetsonhacks/rootOnNVMe主题用途:将 jetsonhacks/rootOnNVMe 纳入「可启动、不可变与校验 root」候选路线,根据 jetson-agx-xavier · jetson-xaver · jetson-xavier-nx · Shell 核对功能、平台与版本适配。 上游自述(保留原文):Switch the rootfs to a NVMe SSD on the Jetson Xavier NX and Jetson AGX Xavier未归档源项目 · ★ 464 · MIT · 2023-06-22。活跃候选:先核对 README、最新 Release、目标版本与已知问题。
Chloe-ko/SteamDeckPersistentRootFs主题用途:将 Chloe-ko/SteamDeckPersistentRootFs 纳入「可启动、不可变与校验 root」候选路线,根据 Shell 核对功能、平台与版本适配。 上游自述(保留原文):未提供仓库简介未归档源项目 · ★ 59 · 协议未声明 · 2022-08-07。活跃候选:先核对 README、最新 Release、目标版本与已知问题。
Halfwalker/ZFS-root主题用途:将 Halfwalker/ZFS-root 纳入「可启动、不可变与校验 root」候选路线,根据 Shell 核对功能、平台与版本适配。 上游自述(保留原文):Set up root-on-zfs using whole disk, with dracut and zfsbootmenu未归档源项目 · ★ 53 · 协议未声明 · 2026-07-07。边界命中:先读 README,确认它确实属于当前任务,再决定是否使用。
dianaw353/hyprland-configuration-rootfs主题用途:将 dianaw353/hyprland-configuration-rootfs 纳入「可启动、不可变与校验 root」候选路线,根据 archlinux · booster · bottom · Shell 核对功能、平台与版本适配。 上游自述(保留原文):'Tis a configuration structure for getting Hyprland to work as intended on pretty much any distro that has TTY as shell/have GUI disabled.已归档源项目 · ★ 53 · GPL-2.0 · 2024-04-14。已归档:保留作历史、迁移或兼容性参考,不作为默认安装源。
brandsimon/verity-squash-root主题用途:将 brandsimon/verity-squash-root 纳入「可启动、不可变与校验 root」候选路线,根据 dm-verity · secure-boot · security · Python 核对功能、平台与版本适配。 上游自述(保留原文):Build signed efi binaries which mount a dm-verity verified squashfs image as rootfs on boot.未归档源项目 · ★ 29 · MIT · 2024-10-09。边界命中:先读 README,确认它确实属于当前任务,再决定是否使用。

4. 非 root 容器、proot 与 sidecar · 9#

比较真正的非 root UID、容器内伪 root、proot 和无特权网络 sidecar;用最小镜像、只读挂载和能力清单做验收。

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

项目上游定位与识别信号状态与采用前检查
4q4r/telemt-docker主题用途:将 4q4r/telemt-docker 纳入「非 root 容器、proot 与 sidecar」候选路线,根据 docker · mtproto-proxy · mtproxy · Dockerfile 核对功能、平台与版本适配。 上游自述(保留原文):Secure multi-arch (amd64/arm64) Docker image for Telemt — a fast Rust-based MTProxy (MTProto) server, shipped as a static binary in a distroless non-root container.已归档源项目 · ★ 1263 · GPL-3.0 · 2026-03-31。已归档:保留作历史、迁移或兼容性参考,不作为默认安装源。
deinfreu/hytale-server-container主题用途:将 deinfreu/hytale-server-container 纳入「非 root 容器、proot 与 sidecar」候选路线,根据 dedicated-server · docker · docker-compose · Shell 核对功能、平台与版本适配。 上游自述(保留原文):Lightweight, user-friendly Hytale server Docker container. 📦 Tiny 61.7MB footprint, ARM64 support, secure non-root execution, in-game updates, and comprehensive documentation.未归档源项目 · ★ 255 · GPL-3.0 · 2026-07-13。活跃候选:先核对 README、最新 Release、目标版本与已知问题。
RuriOSS/rurima主题用途:将 RuriOSS/rurima 纳入「非 root 容器、proot 与 sidecar」候选路线,根据 container · container-image · docker · C 核对功能、平台与版本适配。 上游自述(保留原文):Run docker & LXC images without docker or LXC program, without kernel features support, even without root privileges!未归档源项目 · ★ 236 · MIT · 2026-07-13。活跃候选:先核对 README、最新 Release、目标版本与已知问题。
macbre/docker-nginx-http3主题用途:将 macbre/docker-nginx-http3 纳入「非 root 容器、proot 与 sidecar」候选路线,根据 brotli · docker-image · geoip2-nginx-module · Dockerfile 核对功能、平台与版本适配。 上游自述(保留原文):Stable and up-to-date root-less nginx with quic + http/3, brotli and Zstandard compression, njs, GeoIP2, and Grade A+ SSL config未归档 Fork · ★ 212 · 协议未声明 · 2026-07-15。Fork:采用前先与上游比较提交、Release 和维护者说明。
markpash/tailscale-sidecar主题用途:将 markpash/tailscale-sidecar 纳入「非 root 容器、proot 与 sidecar」候选路线,根据 sidecar · tailscale · tailscale-network · Go 核对功能、平台与版本适配。 上游自述(保留原文):A TCP proxy used to expose services onto a tailscale network without root. Ideal for container environments.已归档源项目 · ★ 143 · MIT · 2022-04-10。已归档:保留作历史、迁移或兼容性参考,不作为默认安装源。
RealTriassic/Harbor主题用途:将 RealTriassic/Harbor 纳入「非 root 容器、proot 与 sidecar」候选路线,根据 alpine · container · docker · Shell 核对功能、平台与版本适配。 上游自述(保留原文):Run Alpine Linux minirootfs on your Pterodactyl-hosted servers with root privileges and minimal footprint.未归档源项目 · ★ 48 · GPL-3.0 · 2024-01-17。活跃候选:先核对 README、最新 Release、目标版本与已知问题。
PhasecoreX/docker-ut2004-server主题用途:将 PhasecoreX/docker-ut2004-server 纳入「非 root 容器、proot 与 sidecar」候选路线,根据 Shell 核对功能、平台与版本适配。 上游自述(保留原文):Docker image for a UT2004 server, running as a non-root user未归档源项目 · ★ 46 · GPL-3.0 · 2026-06-19。活跃候选:先核对 README、最新 Release、目标版本与已知问题。
camerondurham/codecanvas主题用途:将 camerondurham/codecanvas 纳入「非 root 容器、proot 与 sidecar」候选路线,根据 code-execution · docker · earthfile · Go 核对功能、平台与版本适配。 上游自述(保留原文):Remote code executor server, frontend, and CLI to run untrusted code as a non-root user in a Docker container.未归档源项目 · ★ 39 · 协议未声明 · 2026-07-18。活跃候选:先核对 README、最新 Release、目标版本与已知问题。
kian-irani/mhrv-setup-full-tunell主题用途:将 kian-irani/mhrv-setup-full-tunell 纳入「非 root 容器、proot 与 sidecar」候选路线,根据 android · anti-censorship · anti-filter · HTML 核对功能、平台与版本适配。 上游自述(保留原文):🛡️ Interactive setup guide for mhrv-rs Full Tunnel anti-censorship VPN. Free, root-less, undetectable. Bilingual (EN/FA).未归档源项目 · ★ 32 · MIT · 2026-06-22。活跃候选:先核对 README、最新 Release、目标版本与已知问题。

5. 容器平台与自托管运维 · 7#

把游戏服务器、服务网格、VPS 部署、可观测性与 homelab 管理工具串成部署生命周期,并区分“项目根仓库”与 root 权限。

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

项目上游定位与识别信号状态与采用前检查
alipay/container-observability-service主题用途:将 alipay/container-observability-service 纳入「容器平台与自托管运维」候选路线,根据 container · diagnose · kubernetes · Go 核对功能、平台与版本适配。 上游自述(保留原文):Simplify Kubernetes applications operation with one-stop observability services, including resource delivery SLO,root cause diagnoses and container lifecycle tracing and more.未归档源项目 · ★ 108 · Apache-2.0 · 2024-09-05。活跃候选:先核对 README、最新 Release、目标版本与已知问题。
Yundera/mesh-router-root主题用途:将 Yundera/mesh-router-root 纳入「容器平台与自托管运维」候选路线,根据 domainrouting · hosting · networking 核对功能、平台与版本适配。 上游自述(保留原文):A distributed mesh networking solution for self-hosted infrastructure. Mesh Router powers NSL.SH, a free domain and routing layer that connects public gateways to private self-hosted services, even behind NAT. This repository acts as the root entry point for the NSL.SH or MeshRouter ecosystem.未归档源项目 · ★ 70 · MIT · 2026-06-14。边界命中:先读 README,确认它确实属于当前任务,再决定是否使用。
rootprint/rootprint主题用途:将 rootprint/rootprint 纳入「容器平台与自托管运维」候选路线,根据 TypeScript 核对功能、平台与版本适配。 上游自述(保留原文):Open-source, self-hosted log management platform built with Hono, SvelteKit and Quickwit!未归档源项目 · ★ 56 · Apache-2.0 · 2026-07-19。边界命中:先读 README,确认它确实属于当前任务,再决定是否使用。
rifkyputra/postlab主题用途:将 rifkyputra/postlab 纳入「容器平台与自托管运维」候选路线,根据 bare-metal · cli · devops · Rust 核对功能、平台与版本适配。 上游自述(保留原文):Interactive TUI to manage bare-metal & homelab servers — packages, Docker, firewall, security hardening, and Git deploys. Single Rust binary, runs as root.未归档源项目 · ★ 54 · NOASSERTION · 2026-07-18。活跃候选:先核对 README、最新 Release、目标版本与已知问题。
luizomf/vps_deploy_template主题用途:将 luizomf/vps_deploy_template 纳入「容器平台与自托管运维」候选路线,根据 deploy · docker · nginx · Shell 核对功能、平台与版本适配。 上游自述(保留原文):Um template para economizar tempo ao fazer deploy de produção em servidores do tipo VPS, VM ou qualquer servidor que você tenha acesso root.未归档源项目 · ★ 53 · MIT · 2026-04-29。活跃候选:先核对 README、最新 Release、目标版本与已知问题。
kangaroot/rootstack-devfactory主题用途:将 kangaroot/rootstack-devfactory 纳入「容器平台与自托管运维」候选路线,根据 consul · grafana · loki · Jinja 核对功能、平台与版本适配。 上游自述(保留原文):The Devfactory is a solution meant to provide teams a quick container/native/vm runtime enviroment. The goal is as follows: Use the hashicorp toolset to provide Service discovery/mesh Runtime environment for vm/containers/native/springboot Secure and transparant routing Auditability and logging out of the box, with minimal adjustments needed Monitored environment未归档源项目 · ★ 40 · Apache-2.0 · 2026-01-12。活跃候选:先核对 README、最新 Release、目标版本与已知问题。
SproutPanel/roots主题用途:将 SproutPanel/roots 纳入「容器平台与自托管运维」候选路线,根据 Go 核对功能、平台与版本适配。 上游自述(保留原文):Roots is a game server daemon that manages Docker containers for game servers.未归档源项目 · ★ 35 · 协议未声明 · 2026-07-17。活跃候选:先核对 README、最新 Release、目标版本与已知问题。

6. 一次性隔离运行时与微虚拟机 · 3#

以 namespaces、Incus 和 Firecracker 类方案讲解如何给不可信任务临时 root,同时限制网络、持久化和宿主暴露。

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

项目上游定位与识别信号状态与采用前检查
mensfeld/code-on-incus主题用途:将 mensfeld/code-on-incus 纳入「一次性隔离运行时与微虚拟机」候选路线,根据 agentic-ai · ai-tools · anthropic · Python 核对功能、平台与版本适配。 上游自述(保留原文):Give each AI agent its own isolated machine with root, Docker, and systemd. Active defense detects and stops threats automatically.未归档源项目 · ★ 597 · MIT · 2026-07-18。活跃候选:先核对 README、最新 Release、目标版本与已知问题。
nspawn-sh/nspawn.sh主题用途:将 nspawn-sh/nspawn.sh 纳入「一次性隔离运行时与微虚拟机」候选路线,根据 Shell 核对功能、平台与版本适配。 上游自述(保留原文):A ~500-line POSIX shell script that implements minimal Linux containers using namespaces, bind mounts, and pivot_root.未归档源项目 · ★ 36 · GPL-3.0 · 2026-03-19。活跃候选:先核对 README、最新 Release、目标版本与已知问题。
udgover/whim主题用途:将 udgover/whim 纳入「一次性隔离运行时与微虚拟机」候选路线,根据 Go 核对功能、平台与版本适配。 上游自述(保留原文):Throwaway root shells in AWS Lambda Firecracker microVMs. Launch a fresh VM in ~2s, run a command or attach an interactive shell, then let it disappear. Build the image once, launch many — a Go library (microvm) plus a Docker-like CLI: run, exec, ps, gc, put/get.未归档源项目 · ★ 30 · NOASSERTION · 2026-07-03。活跃候选:先核对 README、最新 Release、目标版本与已知问题。

7. 同名词与误分类复核 · 2#

逐项标明剩余项目是 rootfs 工具、上层应用、仅叫 Roots/Rootspace,还是明显无关内容;保留目录覆盖但不建议执行。

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

项目上游定位与识别信号状态与采用前检查
danderfer/Comp_Sci_Sem_2主题用途:将 danderfer/Comp_Sci_Sem_2 作为「同名词与误分类复核」边界条目,通过 Python 核对它实际是否属于本教程。 上游自述(保留原文):According to all known laws of aviation, there is no way that a bee should be able to fly. Its wings are too small to get its fat little body off the ground. The bee, of course, flies anyway. Because bees don’t care what humans think is impossible.” SEQ. 75 - “INTRO TO BARRY” INT. BENSON HOUSE - DAY ANGLE ON: Sneakers on the ground. Camera PANS UP to reveal BARRY BENSON’S BEDROOM ANGLE ON: Barry’s hand flipping through different sweaters in his closet. BARRY Yellow black, yellow black, yellow bl未归档源项目 · ★ 193 · 协议未声明 · 2023-04-03。边界条目:先核对实际平台、用途和分类理由,不作为默认安装源。
clearview/rootspace主题用途:将 clearview/rootspace 作为「同名词与误分类复核」边界条目,通过 Vue 核对它实际是否属于本教程。 上游自述(保留原文):Rootspace is an innovative and lightweight work management software that offers important features for projects that require online collaboration and task management.未归档源项目 · ★ 58 · MIT · 2023-05-24。边界条目:先核对实际平台、用途和分类理由,不作为默认安装源。

开始前#

准备一台你拥有的 Linux VM 或桌面测试机,并确认有 unshareidstatmktemp。本实验不需要 sudo;如果教程或系统提示必须加 sudo,先停下来检查是不是 user namespace 被禁用。记录开始时的 id 输出。不要在 Android 的 Termux 中照搬 unshare:手机内核和 SELinux 支持差异很大,Android 路线应使用 Termux 官方 proot-distro 文档。

操作步骤#

1. 建立可识别的宿主测试文件#

在普通终端运行 id,再用 mktemp -d 创建临时目录;把打印出的绝对路径记作 <lab-dir>。运行 touch <lab-dir>/outside.txtstat -c '%u:%g %n' <lab-dir>/outside.txt,记录宿主看到的 owner。这里 <lab-dir> 必须替换成刚刚输出的具体路径,不能原样复制尖括号。

2. 进入临时 user namespace#

运行 unshare --user --map-root-user --mount-proc sh。新 shell 中执行 idcat /proc/self/uid_map,然后 touch <lab-dir>/inside.txt 并用同一条 stat 查看。你可能在里面看到 UID 0;映射表应说明该 UID 对应外部的普通账户。不要尝试挂载宿主目录、修改网络或扩大 capability。

3. 退出并核对宿主视角#

在 namespace shell 输入 exit。回到原终端后再次运行 id,再对 <lab-dir>/inside.txt 执行 stat。宿主通常仍把它显示为你的普通 UID,而不是宿主 root。确认内容无用后,用文件管理器删除这个明确的临时目录,或只删除其中两个测试文件;不要对宽泛路径执行递归删除。这个退出动作就是回滚点,namespace 随最后一个进程结束。

验证#

  • namespace 外的 id 始终是普通用户;只有临时 shell 内显示映射后的 UID 0。
  • /proc/self/uid_map 明确记录了内外身份映射,而不是凭提示符猜测。
  • namespace 内创建的文件从宿主看仍归你的普通 UID 所有。
  • exit 后临时 shell 消失,没有后台容器或 daemon。
  • Android 手机的 Bootloader、启动镜像和 Root 管理器完全没有发生变化。

排错#

现象常见原因安全处理
unshare: Operation not permitted内核、发行版或管理员禁用了无特权 user namespace接受该策略;在个人 VM 中查发行版文档,不用 sudo 强行绕过
内部仍不是 UID 0--map-root-user 不受支持或工具版本较旧记录版本并结束;可改用官方 rootless Podman 文档学习
找不到 <lab-dir>未把占位符换成实际绝对路径退出 namespace,重新复制 mktemp -d 的输出
文件在宿主显示异常高 UID使用了 subuid 映射或不同容器引擎查看 uid_map,不要用递归 chown 修复未知目录
PRoot 应用能访问共享存储PRoot 不是安全沙箱只运行可信发行版包;敏感数据不要放进共享路径

完成清单#

  • 我记录了宿主 UID 与 namespace 的 uid_map
  • 我能说明 rootfs / 是进程视图的起点,而不是权限证明。
  • 我没有使用 privileged、Docker socket、宿主根目录或未知 rootfs。
  • 我退出了 namespace,并从宿主核对测试文件所有者。
  • 我能解释为什么容器内 UID 0 不等于 Android Root。

一手资料#