gemini-cli 修复 rootless podman 沙箱:--userns=keep-id 解决 EACCES
VishvakR · ghdev · 2026-09-16
google-gemini/gemini-cli 的 PR #29354 修复了 rootless podman 沙箱的一个权限问题:无根 podman 会把容器 UID 映射到宿主机的 subuid 区间,导致挂载工作目录里的文件宿主用户无法修改,表现为 node-gyp 原生依赖重建失败(无法删除 build 目录,EACCES)。
- 修复方式:当沙箱需要宿主 UID/GID 映射且 podman 为 rootless 时,给 podman run 加上 --userns=keep-id,让宿主 UID 直接映射进容器内相同 UID
- rootless 检测改为读取 podman info 的 host.security.rootless,而非判断调用者是否 root,sudo podman 与 rootful socket 行为不变
- 若用户已通过 SANDBOXFLAGS 显式指定 --userns,则不自动追加;Docker 与 runsc 不受影响
- Arch 开箱即受此问题影响,因其命中 shouldUseCurrentUserInSandbox 的发行版列表
验证:rootless podman 环境下 GEMINISANDBOX=podman npm start,检查 podman run 命令包含 --userns=keep-id,沙箱内写入的文件归属宿主用户。
「编程与Agent」频道最新
- General Reasoning 首发博客:详解如何用强化学习训练 Agent 集群协作 — rosstaylor90 · 2026-11-02
- 开发者指出:编码不再是瓶颈,使用量窗口才是 — kylegawley · 2026-11-02
- demo 通过≠可上线:让 Agent 接管业务前必答的五个问题 — _kellhus · 2026-11-02
- AI agent 通过 100 次测试,为何仍不能接管业务 — djgoel123 · 2026-11-02
- 让 Agent 全权创作:纯代码产出 1 分 44 秒动画短片《最后的园丁》 — ivegotnoidea1 · 2026-11-02
- 起床、用 Claude Code、睡觉:梗图调侃一天全靠它 — tekbog · 2026-11-02