Claude CLI 提供六種權限模式,從完全手動到完全自動化。核心差異在於「哪些操作無需詢問即可執行」。
六種模式總覽
| 模式 | CLI 參數 | 自動執行範圍 | 適用情境 |
|---|---|---|---|
default |
--permission-mode default |
僅讀取 | 入門、敏感/生產環境 |
acceptEdits |
--permission-mode acceptEdits |
讀取 + 檔案編輯 + 常見檔案系統指令 | 主動編碼、跨檔案重構 |
plan |
--permission-mode plan |
僅讀取(阻擋所有修改) | 程式碼探索、架構分析 |
auto |
--permission-mode auto |
所有操作,但安全分類器逐項審查 | 長時間任務、降低審批疲勞 |
dontAsk |
--permission-mode dontAsk |
僅預先核准工具(其餘靜默拒絕) | CI/CD 管道、鎖定腳本 |
bypassPermissions |
--dangerously-skip-permissions |
所有操作,無任何檢查 | 僅限隔離容器/VM |
核心對比:Auto Mode vs. Bypass Permissions
兩者都消除「持續核准」的摩擦,但機制截然不同:
| 情境 | Auto Mode | --dangerously-skip-permissions |
|---|---|---|
| 讀取設定檔 | ✅ 自動執行 | ✅ 自動執行 |
| 寫入原始碼 | ✅ 自動執行 | ✅ 自動執行 |
| 刪除大型目錄 | ⚠️ 可能阻擋或詢問 | ✅ 自動執行(高風險) |
執行 rm -rf / |
🚫 阻擋 | ✅ 自動執行(災難性) |
| 刪除資料庫 | 🚫 阻擋 | ✅ 自動執行 |
| 外部網路請求 | ⚠️ 依風險評估決定 | ✅ 自動執行 |
| 危險操作誤放率 | ~17%(Anthropic 實測) | ~100% — 無任何評估 |
Auto Mode 運作機制
- 每個工具呼叫前執行安全分類器評估
- 安全操作自動通過;風險操作阻擋或升級人工確認
- 設計背景:93% 的權限提示最終都被核准,Auto Mode 移除這 93% 的摩擦,同時保留對風險 7% 的防護
Bypass Permissions 運作機制
- 零評估、零防護
- 參數名稱
--dangerously-skip-permissions刻意警示性設計 - 官方預期用途:僅限可拋棄的容器或臨時 VM
啟用方式
啟動時指定
# Auto mode
claude --permission-mode auto
# Plan mode
claude --permission-mode plan
# 跳過所有權限(危險)
claude --dangerously-skip-permissions
# 單次無頭任務 + auto mode
claude --permission-mode auto -p "Refactor all files in src/utils"
工作階段中切換
按 Shift+Tab 循環:
default → acceptEdits → plan → [auto] → [bypassPermissions]
(Auto 與 bypass 需帳號/方案支援且已啟用才會顯示)
設為預設值
全域:~/.claude/settings.json 或專案層級:.claude/settings.json
{
"permissions": {
"defaultMode": "auto"
}
}
可用性限制
| 模式 | 方案要求 | 模型要求 |
|---|---|---|
default / acceptEdits / plan |
任意 | 任意 |
auto |
Team / Enterprise / Max / API | Sonnet 4.6+ 或 Opus 4.6+ |
bypassPermissions |
任意(組織管理員可禁用) | 任意 |
dontAsk |
任意 | 任意 |
情境建議
| 情境 | 推薦模式 | 理由 |
|---|---|---|
| 探索陌生程式碼庫 | plan |
無法意外修改任何內容 |
| 生產環境程式碼變更 | default |
每個動作手動審查 |
| 大型重構工作 | acceptEdits |
自動核准檔案變更,shell 指令仍詢問 |
| 夜間/自動化任務 | auto |
分類器防災,無需值守 |
| 無人 CI/CD 管道 | dontAsk + 許可清單 |
僅預核准工具執行,其餘靜默拒絕 |
| 可拋棄 Docker 容器 | bypassPermissions |
容器邊界提供安全;速度最大化 |
| 無頭/背景代理 | auto |
無需持續核准即可離開 |
五種安全設定:速度與安全排序
| 排序 | 設定 | 消除的提示 | 剩餘保護機制 |
|---|---|---|---|
| 1 | Auto mode | ~93%(核准類提示) | 分類器阻擋危險呼叫 |
| 2 | settings.json 許可清單 | 清單內所有項目 | 未列工具仍適用拒絕/詢問規則 |
| 3 | acceptEdits + 許可清單 |
所有檔案編輯 + 列出的指令 | 未列出 Bash 指令仍提示 |
| 4 | 沙箱環境 | 所有沙箱指令 | OS 級檔案系統 + 網路邊界 |
| 5 | Docker 內 bypass | 所有 | 僅容器隔離牆 |
結論
- 日常使用首選:
--permission-mode auto— 消除 ~93% 核准提示,同時保留安全分類器監控破壞性操作 - 絕對避免:在隔離、可拋棄環境之外使用
--dangerously-skip-permissions - Auto Mode 是官方設計的中間地帶:接近 bypass 的速度,風險大幅降低

沒有評論