跳到正文
FunCoding

搜索

搜索文档、Skill 和 MCP

沙箱平台与提供方

比较各平台的可用隔离方式和启用前提,避免依赖自动检测。

沙箱的文件读取、写入与网络边界依提供方和 profile 而变。先选平台支持的方式,再检查具体配置,不能把“已沙箱化”理解成统一权限。

macOS Seatbelt

Seatbelt 使用系统 sandbox-exec。默认 profile 为 permissive-open,约束写入而允许广泛读取和网络;用 SEATBELT_PROFILE 选择其他 profile。

Profile官方描述
permissive-open写限制,允许网络
permissive-proxied写限制,网络经代理
restrictive-open更严格限制,允许网络
restrictive-proxied更严格限制,网络经代理
strict-open读写限制,允许网络
strict-proxied读写限制,网络经代理

代理 profile 仍需要可用代理配置;名称本身不证明网络连接可用。

Docker 与 Podman

两者提供跨平台容器沙箱,要求引擎已安装并运行。默认镜像为 ghcr.io/google/gemini-cli:latest;工作区挂载到容器内相同绝对路径,详细配置见容器与挂载。

Linux gVisor

runsc 需要 Linux、Docker 及已配置的 gVisor/runsc runtime。它通过用户空间内核处理系统调用。CLI 不自动检测 runsc,需明确设置 GEMINI_SANDBOX=runsc 或 tools.sandbox: "runsc";底层使用 Docker 的 runsc runtime。

Linux LXC/LXD

此方式仍为 experimental,适合需要完整 Linux 系统服务的工具。容器必须先创建并运行,CLI 不会自动创建:

lxd init --auto
lxc launch ubuntu:24.04 gemini-sandbox
export GEMINI_SANDBOX=lxc
gemini -p "build the project"

这些是设置示例,会初始化 LXD 和创建容器。GEMINI_SANDBOX_IMAGE 在此模式用来指定已有容器名,不能按 Docker 镜像标签理解。工作区仍按相同绝对路径绑定,并需在容器内可写;macOS/Windows 不支持此提供方。

Windows 原生沙箱

官方专页目前主要说明副作用,没有完整启用教程,本页不补造步骤。该沙箱通过 icacls 设置 Low Mandatory Level,文件的 Low 完整性级别在会话后仍保留。确实需要恢复某目录时,官方给出:

icacls "C:\path\to\dir" /setintegritylevel Medium

请替换为实际目标目录。管理器跳过系统目录,例如 C:\Windows;这不是修复全部 Windows 权限问题的通用命令。