Skip to main content

第 4 課:權限與安全

學習目標

完成本課程後,您將能夠:

  • 理解權限存在的哲學
  • 有效地使用所有四種權限模式
  • 利用計畫模式進行複雜任務
  • 使用鍵盤快捷鍵切換模式
  • 設定允許/拒絕的操作

先決條件

  • 完成第 1-3 課 - 基本檔案操作和程式庫導覽
  • 熟悉聊天模式 - 基本對話使用
  • 基本熟悉度 - 您已核准幾次檔案操作

預估時間: 25 分鐘


為什麼需要權限

Claude Code 的權限系統基於核心原則設計:您應該隨時知道程式碼發生了什麼事。

權限哲學

透明度:

  • 每個操作在執行前都可見
  • 您確切看到將變更什麼
  • 沒有靜默修改

控制:

  • 您決定執行什麼
  • 您可以拒絕任何操作
  • 您總是負責

安全:

  • 防止意外破壞性動作
  • 在動作發生前攔截錯誤
  • 系統性地審查變更

學習:

  • 理解 Claude 正在做什麼
  • 從建議的變更中學習
  • 建立對系統的信任

權限流程

┌─────────────────┐
│ Claude 想要 │
│ 使用工具 │
└────────┬────────┘


┌─────────────────┐
│ 系統顯示 │
│ 請求 │
└────────┬────────┘


┌─────────────────┐ ┌──────────────┐
│ 您決定 │──────▶│ 允許 │
│ (基於模式) │ │ 拒絕 │
└─────────────────┘ │ 取消 │
└──────────────┘

權限模式說明

Claude Code 有四種權限模式,每種都適合不同的工作流程。

模式 1:Default(推薦給初學者)

行為: 每次工具使用都請求權限

何時使用:

  • 學習 Claude Code
  • 處理重要的程式庫
  • 當您想要審查每個變更時
  • 理解 Claude 正在做什麼

範例流程:

Claude: 我將讀取 src/main.py
System: 📖 讀取 src/main.py
是否繼續?[Y/n]
You: Y
[檔案已讀取]

優點:

  • 最大控制
  • 完全可見
  • 適合學習

模式 2:Accept Edits

行為: 自動核准 Edit 和 Write 操作,其他操作仍需請求

何時使用:

  • 快速原型開發
  • 當您信任 Claude 的變更時
  • 功能開發
  • 快速迭代

範例流程:

Claude: 我將更新函式在 src/utils.py
[編輯自動核准並套用]
[不顯示提示]

但仍會提示您:

  • 執行指令(Bash)
  • 讀取敏感檔案

模式 3:Don't Ask

行為: 自動核准所有工具使用(破壞性指令除外)

何時使用:

  • 高度信任的工作流程
  • 實驗/開發環境
  • 自動化任務
  • 速度至關重要時

模式 4:Bypass

行為: 無提示,包括大多數破壞性指令

⚠️ 警告: 請極度謹慎使用

絕不使用於:

  • 生產程式庫
  • 重要專案
  • 學習或探索

計畫模式:執行前規劃

計畫模式是用於複雜任務的特殊工作流程。

什麼是計畫模式

在計畫模式中,Claude:

  • 徹底分析任務
  • 探索程式庫以理解脈絡
  • 建立詳細計畫用於實作
  • 呈現計畫供您審查
  • 等待核准後才執行

何時使用計畫模式

對以下情況使用計畫模式:

  • 新功能: "新增使用者驗證"
  • 重大重構: "轉換為 TypeScript"
  • 架構變更: "轉換為微服務"
  • 多檔案變更: "更新整個程式庫的錯誤處理"

不要用於:

  • 簡單編輯
  • 單一檔案變更
  • 快速問題
  • 瑣碎修改

計畫模式如何運作

┌──────────────────┐
│ 進入計畫模式 │
└────────┬─────────┘


┌──────────────────┐
│ 描述任務 │
│ (例如:"新增 │
│ 使用者驗證") │
└────────┬─────────┘


┌──────────────────┐
│ Claude 探索 │
│ 程式庫 │
└────────┬─────────┘


┌──────────────────┐
│ Claude 建立 │
│ 詳細計畫 │
└────────┬─────────┘


┌──────────────────┐
│ 您審查計畫 │
│ 核准或 │
│ 請求變更 │
└────────┬─────────┘


┌──────────────────┐
│ Claude 執行 │
│ 計畫 │
└──────────────────┘

進入計畫模式

方法 1:使用指令

You> /plan

方法 2:使用計畫旗標啟動

claude --plan

退出計畫模式:

You> /exit

使用鍵盤快捷鍵切換模式

您可以在工作階段中使用鍵盤快捷鍵變更權限模式。

模式切換快捷鍵

快捷鍵動作
Ctrl+P循環到下一個權限模式
Ctrl+Shift+P切換到 Default 模式
Ctrl+O切換 "Don't Ask" 模式
Escape取消當前操作

目前模式顯示

您的提示顯示目前模式:

[Default] You>
[Accept Edits] You>
[Don't Ask] You>

實務範例:比較權限模式

讓我們體驗不同模式之間的差異。

步驟 1:建立測試環境

cd ~/claude-test
mkdir permission-demo
cd permission-demo
echo "print('hello')" > demo.py
claude

步驟 2:測試 Default 模式

[Default] You> 讀取 @demo.py 並新增註解說明其名稱

觀察:

  • 提示讀取
  • 提示編輯
  • 看到差異
  • 核准每個步驟

步驟 3:切換到 Accept Edits

Ctrl+P 或使用:

You> /mode accept-edits

步驟 4:測試 Accept Edits 模式

[Accept Edits] You> 為 @demo.py 新增列印陳述

觀察:

  • 讀取提示(如果需要)
  • 編輯自動發生
  • 不顯示編輯核准

步驟 5:測試計畫模式

You> /plan

[In plan mode] You> 為 demo.py 重構成一個具有多個函式的模組

觀察:

  • Claude 建立計畫
  • 審查計畫
  • 核准執行
  • 觀看它實作

✅ 檢查您的理解

  1. 哪個權限模式在每次操作前都會請求?

    • Accept Edits
    • Don't Ask
    • Default
    • Bypass
  2. 什麼時應該使用計畫模式?

    • 用於簡單編輯
    • 用於複雜、多檔案變更
    • 用於讀取檔案
    • 用於執行測試
  3. Ctrl+P 做什麼?

    • 列印目前檔案
    • 暫停工作階段
    • 循環到下一個權限模式
    • 開啟計畫模式
  4. True 或 False: Bypass 模式對生產程式庫是安全的。

    • True
    • False
  5. 哪個模式自動核准 Edit 和 Write,但不核准 Bash?

    • Default
    • Accept Edits
    • Don't Ask
    • Bypass

答案: 1-c, 2-b, 3-c, 4-False, 5-b


總結

在本課程中,您學到了:

  • 權限哲學 - 透明度、控制、安全、學習
  • 四種模式 - Default、Accept Edits、Don't Ask、Bypass
  • 何時使用 - 選擇適合每個模式的任務和舒適度
  • 計畫模式 - 用於複雜任務需要仔細規劃
  • 鍵盤快捷鍵 - 在工作階段期間快速模式切換
  • 設定 - 預先設定允許/拒絕的操作

下一步

在**第 5 課:技能系統**中,您將學到:

  • 什麼是技能
  • 使用內建技能
  • 建立自訂技能
  • 技能結構和組織

進階閱讀


繼續至第 5 課:技能系統