Skip to content
FunCoding

Search

Search docs, Skills and MCP

沙箱平台与提供方

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

This page has not been translated into English yet. The original Chinese version is shown below.

沙箱的文件读取、写入与网络边界依提供方和 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 权限问题的通用命令。