Skip to content

建立 2026-09-19 更新 2026-09-19

權限與沙盒

代理能讀寫檔案、執行指令,這是它有用的原因,也是風險所在。權限系統決定每個動作是自動執行、先問你,還是禁止;沙盒則在作業系統層級限制指令能碰到的範圍。建議先用預設值,理解之後再放寬。

三層規則:Deny > Ask > Allow

每個動作依這個順序判斷,先命中的規則生效:

規則 效果
Deny 直接封鎖,沒有例外
Ask 暫停,等你明確核准
Allow 自動執行

預設會自動放行工作區內的檔案操作,但 shell 指令、工具呼叫與瀏覽器操作需要核准。

在 CLI 用 /permissions 設定,或在 ~/.gemini/antigravity-cli/settings.jsonpermissions 陣列寫細部規則:

{
  "permissions": {
    "allow": ["command(git)", "write_file(src/)"],
    "deny": ["command(rm)"]
  }
}

權限預設組合

官方沙盒文件把常見組合歸納為三種:

預設 沙盒 行為
Default 沙盒內的指令直接執行;要離開沙盒的請求會觸發核准
Request Review 所有指令都要核准
Turbo 指令不經詢問直接執行

CLI 的 toolPermission 設定則有四個層級:request-review(預設)、proceed-in-sandboxalways-proceedstrictTurbo/always-proceed 風險最高,只適合拋棄式環境。

終端機沙盒

沙盒用作業系統原生機制隔離代理執行的指令,不需要虛擬機:

  • Linux:使用核心命名空間隔離檔案系統並隱藏行程。
  • macOS:使用 sandbox-exec 與 Seatbelt 設定檔。
  • Windows:維持舊行為,之後版本才會更新。

沙盒內的指令可以寫入專案資料夾、暫存目錄與常見的建置快取,也能讀取 /usr/etc 等系統目錄,所以工具照常運作。~/.ssh.env 這類敏感位置仍然被擋住

面向 沙盒規則
檔案系統 專案資料夾可讀寫;read_file 涵蓋的路徑唯讀掛載
網路 預設關閉;read_url 允許的網域形成白名單
例外 unsandboxed() 規則讓特定指令在沙盒外執行

macOS 與 Linux 的新權限系統預設啟用沙盒;CLI 的 enableTerminalSandbox 設定預設為 false,需要時自行開啟。

瀏覽器代理的隔離

  • 使用獨立的 Chrome 設定檔,不會接觸你儲存的密碼與 cookie。
  • 網址允許/拒絕清單獨立於一般權限。
  • 可完全關閉瀏覽器功能。

實務建議

  1. 剛開始用預設值,熟悉代理的行為後再放寬。
  2. allow 只放行你確定安全的具體指令(例如 command(git)),不要整個放行 shell。
  3. 對不可逆的動作(刪檔、推送、部署)維持 Ask,或直接 Deny。
  4. 自動化與 CI 要用最小必要權限,見 無頭模式;不要為了省事使用 --dangerously-skip-permissions
  5. 不要把機密放進代理讀得到的地方;用 Deny 與沙盒擋住 .env 這類檔案。

文件之間的差異

官方對沙盒預設狀態的描述在不同頁面略有出入(沙盒文件指出 macOS/Linux 預設啟用,CLI 設定參考的 enableTerminalSandbox 預設為 false)。實際狀態請在 CLI 的 /config/permissions 確認。

更多設定見官方文件:終端機沙盒