Gemini沙箱配置Skill gemini-sandbox-configuration

此技能用于配置Gemini CLI的沙箱隔离功能,支持多种沙箱方法如Docker、Podman和macOS Seatbelt,确保命令在安全环境中执行。关键词:Gemini CLI, 沙箱, 隔离, Docker, Podman, Seatbelt, 安全配置。

Docker/K8s 0 次安装 0 次浏览 更新于 3/11/2026

name: gemini-sandbox-configuration description: Gemini CLI沙箱和隔离的中央权威。覆盖Docker、Podman、macOS Seatbelt配置文件和安全边界。在启用沙箱、选择沙箱方法、配置Seatbelt配置文件或排除沙箱问题时使用。100%委托给gemini-cli-docs获取官方文档。 argument-hint: <命令> allowed-tools: Read, Glob, Grep, Bash, Skill

Gemini沙箱配置

强制要求:首先调用gemini-cli-docs

停止 - 在提供任何关于Gemini沙箱的响应之前:

  1. 调用 gemini-cli-docs 技能
  2. 查询 特定的沙箱主题
  3. 基于 加载的官方文档提供响应

概述

用于配置Gemini CLI沙箱隔离的元技能。沙箱将潜在危险操作与主机系统隔离。

何时使用此技能

关键词: 沙箱, docker, podman, seatbelt, 隔离, 容器, 安全执行, -s 标志, GEMINI_SANDBOX

在以下情况下使用此技能:

  • 首次启用沙箱
  • 在沙箱方法之间选择
  • 配置Seatbelt配置文件(macOS)
  • 排除沙箱问题
  • 理解安全边界

沙箱方法

方法 平台 隔离
Docker 所有 完整容器
Podman 所有 无根容器
Seatbelt macOS 进程沙箱

配置

通过命令标志启用

gemini -s -p "命令"

通过环境变量启用

export GEMINI_SANDBOX=true
gemini "命令"

# 或指定方法
export GEMINI_SANDBOX=docker
export GEMINI_SANDBOX=podman
export GEMINI_SANDBOX=sandbox-exec

通过设置启用

添加到 settings.json:

{
  "tools": {
    "sandbox": true
  }
}

或指定方法:

{
  "tools": {
    "sandbox": "docker"
  }
}

Seatbelt配置文件(macOS)

通过 SEATBELT_PROFILE 环境变量设置:

配置文件 写入 网络
permissive-open(默认) 受限 允许
permissive-closed 受限 阻止
permissive-proxied 受限 通过代理
restrictive-open 严格 允许
restrictive-closed 严格 阻止

自定义沙箱标志

对于基于容器的沙箱,注入自定义标志:

export SANDBOX_FLAGS="--security-opt label=disable"

关键词注册表(委托给gemini-cli-docs)

主题 查询关键词
启用 enable sandbox, -s flag, GEMINI_SANDBOX
Docker docker sandbox, container isolation
Podman podman sandbox, rootless container
Seatbelt seatbelt profiles, sandbox-exec macos
自定义标志 SANDBOX_FLAGS, custom docker flags
故障排除 sandbox troubleshooting, operation not permitted

快速决策树

你想做什么?

  1. 快速启用沙箱 -> 使用 -s 标志
  2. 使其持久化 -> 添加到 settings.json
  3. 使用Docker -> 设置 GEMINI_SANDBOX=docker
  4. 使用更严格的macOS -> 设置 SEATBELT_PROFILE=restrictive-closed
  5. 调试问题 -> 使用 DEBUG=1 gemini -s

故障排除

错误 原因 解决方案
“操作不允许” 沙箱限制 预期行为
“Docker未找到” Docker未运行 启动Docker守护进程
网络被阻止 限制性配置文件 使用 permissive-open
命令缺失 不在沙箱镜像中 添加到自定义Dockerfile

安全注意事项

  • 沙箱减少但不消除所有风险
  • 使用允许工作的最严格配置文件
  • GUI应用程序可能在沙箱中无法工作
  • 容器开销在首次构建后最小

验证检查点

  • [ ] 我是否调用了gemini-cli-docs技能?
  • [ ] 官方文档是否加载?
  • [ ] 我的响应是否完全基于官方文档?

测试场景

场景1:启用沙箱

查询:“如何在Gemini CLI中启用沙箱?” 预期行为

  • 技能在"沙箱"关键词上激活
  • 委托给gemini-cli-docs获取配置选项 成功标准:用户收到-s标志和settings.json配置

场景2:macOS Seatbelt

查询:“如何为Gemini CLI配置Seatbelt配置文件?” 预期行为

  • 技能在"seatbelt"或"macos sandbox"上激活
  • 提供SEATBELT_PROFILE环境变量选项 成功标准:用户收到配置文件比较表

场景3:排除沙箱故障

查询:“在Gemini沙箱中收到’操作不允许’” 预期行为

  • 技能在"沙箱故障排除"或"操作不允许"上激活
  • 解释预期的沙箱限制 成功标准:用户理解行为是预期的并获取解决方法

参考资料

查询 gemini-cli-docs 获取官方文档:

  • “沙箱”
  • “seatbelt配置文件”
  • “docker沙箱”

用户界面

当用户直接调用时,此技能在Gemini CLI的沙箱环境中执行命令。

执行工作流

  1. 解析参数 - 从 $ARGUMENTS 提取shell命令。如果未提供命令,询问用户要在沙箱中执行什么。
  2. 验证命令 - 确保命令非空且适合沙箱执行。
  3. 在沙箱中执行 - 使用Gemini CLI的 -s 标志运行命令,以强制执行沙箱,并采用适当的沙箱类型(Docker、Podman或macOS Seatbelt)。
  4. 报告结果 - 呈现执行输出,包括stdout、stderr、退出代码以及对沙箱环境中命令行为的观察。

版本历史

  • v1.1.0 (2025-12-01):添加了测试场景部分
  • v1.0.0 (2025-11-25):初始发布