所有入門單元免費開放 · 課程內容持續更新中

權限模式:讓 Claude 安全地動手

Claude Code 能改檔案、執行指令,所以「它什麼時候要先問你」很重要。這堂課認識五種權限模式、學會用 Plan 模式先對齊想法,並建立幾條保護自己的底線,包括密碼與金鑰怎麼處理。

第 5.5 堂約 12 分鐘

為什麼要談權限

前幾堂你已經體驗過:Claude 要建立檔案時,會跳出詢問讓你按同意。這個機制叫做權限。

這一堂要回答三個問題:

  1. 有哪幾種權限模式?什麼時候用哪一種?
  2. 怎麼讓 Claude 先「想清楚」再動手?
  3. 有哪些事,無論如何都不要讓它做?

先說結論:Claude Code 不是壞人,但它會出錯,也會照字面執行你說的話。權限的意義,是讓你在關鍵時刻有機會說「等一下」。

五種權限模式

權限模式光譜圖:由左到右分別是 Plan(只讀檔、想計畫)、Manual(改檔和執行指令每次都問)、Edit(資料夾內的檔案直接改,多數指令仍會問)、Auto(大部分直接做,背景有安全檢查)、Bypass(什麼都不問,只適合隔離的測試環境);Plan 和 Manual 標示為新手學習期使用,Bypass 標示為不要用

模式 Claude 不用問就能做的事 什麼時候用
Plan(計畫) 讀檔案、研究,提出計畫 任務比較大、你想先確認方向
Manual(手動) 只有讀檔案;改檔、執行指令都先問你 學習期、處理重要檔案時
Edit automatically(自動改檔,也叫 Accept edits) 讀檔,改這個資料夾內的檔案,以及建立、移動、複製、刪除檔案的常見指令 你已經用 Git 存好檔,想讓它快一點
Auto(自動) 大部分動作,由一個背景的安全檢查擋下危險操作 熟悉之後、方向明確的任務
Bypass permissions(略過權限) 全部 只在與你的電腦隔離的測試環境(虛擬機、容器)裡用

怎麼切換:

  • 終端機:按 Shift+Tab 輪流切換,畫面下方會顯示目前模式。
  • VS Code、桌面 App:點輸入框下方的模式標示,從選單挑。

想讓 Manual 變成每次的預設

如果你希望每次啟動都是 Manual,可以請 Claude 幫你改設定:

把預設模式改成 Manual

請幫我把 Claude Code 的預設權限模式改成 Manual(default)。這個設定應該放在我的使用者設定檔 ~/.claude/settings.json 裡。修改前請先讓我看你要改的內容。

它會在你的使用者設定檔裡加上這段:

{
  "permissions": {
    "defaultMode": "default"
  }
}

default 就是 Manual 模式在設定檔裡的名字。如果檔案裡原本就有其他設定,要保留原本的內容、把這段合併進去,這也是為什麼請 Claude 來改比自己改安全。

Plan 模式:先講好,再動手

Manual 模式會在每一個動作前問你。但有時候問題不在單一動作,而在整個方向:你想要 A,它卻開始做 B,等你發現時已經改了五個檔案。

Plan 模式就是為了這個設計的。在這個模式下,Claude 只會讀檔案、研究、問你問題,最後交出一份計畫。在你核准之前,它不會改任何檔案。

Plan 模式流程:你描述想做什麼,Claude 讀檔研究並問你問題,提出要改哪些檔案的計畫,你決定核准或繼續討論;選擇繼續規劃會回到研究階段,核准後才開始動手,新手建議選手動核准每個修改

進入 Plan 模式的方法:

  • 終端機按 Shift+Tab 切到 plan(畫面下方會顯示)。
  • 或在訊息開頭打 /plan,例如 /plan 幫我把筆記整理成每週一個檔案。
  • VS Code 和桌面 App 從模式選單選 Plan。

試試看,在你的 my-first-claude 資料夾:

用 Plan 模式規劃一個整理任務

/plan 我想把 notes 資料夾整理得更好:每篇筆記開頭加上日期和標題,並在 README.md 加上一個所有筆記的目錄。請先告訴我你打算怎麼做、會改哪些檔案,有不清楚的地方先問我。

計畫完成後,Claude 會問你要怎麼繼續。選項大致是:

  • 核准,並使用 Auto 模式:之後的修改它直接做。
  • 核准,並手動核准每個修改:每個修改還是會先問你。新手選這個。
  • 不,繼續規劃:告訴它哪裡要調整,它會改計畫。

在 VS Code 裡,計畫會以一份完整的文件打開,你可以直接在上面加註解回饋。

幾條保護自己的底線

模式是工具,底線是習慣。以下幾件事,請在任何模式下都堅持:

1. 不在自己的電腦上用 Bypass 模式

網路上有些教學會教你用 --dangerously-skip-permissions 讓 Claude「不要一直問」。名字裡就寫著 dangerously(危險地)。官方建議只在沒有網路、與主機隔離的容器或虛擬機裡使用。在你存放工作檔案和照片的電腦上,不要用。

2. 看不懂的指令,不按同意

特別留意這幾類:

看到這類指令 它可能會做的事
含有 rm、del、Remove-Item 刪除檔案,通常不會進資源回收筒
curl ... | bash、irm ... | iex 從網路下載程式並直接執行
git push --force、git reset --hard 覆蓋或丟掉 Git 紀錄(第 6 堂會解釋)
sudo、以系統管理員執行 用最高權限修改系統
動到專案資料夾以外的路徑 改到你沒打算讓它碰的地方

不是說這些指令一定是壞的,而是你要知道它在做什麼。選「否」,然後問它:

看不懂指令時

先不要執行。請用白話解釋你剛才想執行的那行指令:它會做什麼?會刪除或覆蓋任何檔案嗎?如果出錯,能還原嗎?有沒有更安全的做法?

3. 密碼和金鑰不貼進對話

之後你可能會用到 API 金鑰(API key):一串讓程式代表你使用某個服務的密碼,例如呼叫 Claude API 的金鑰。這類東西:

  • 不要直接貼在對話裡,也不要寫進 CLAUDE.md。
  • 存在專案裡一個叫 .env 的檔案,並把 .env 加進 .gitignore(第 6 堂會用到),避免被上傳。
  • 需要讓 Claude 知道時,只說「金鑰放在 .env 的 MY_API_KEY 裡」,不給它金鑰本身。

4. 只在你信任的資料夾裡啟動

還記得第 3 堂第一次進資料夾時,Claude Code 會問你「是否信任這個資料夾」嗎?從網路下載、別人傳給你的專案,裡面可能有寫給 AI 看的惡意指示。打開陌生專案時,先用 Plan 模式讓它讀一讀、說明內容,確認沒問題再讓它動手。

進階:用規則畫出「絕對不准」

模式是整體的風格,規則則可以針對特定的動作。在 Claude Code 輸入:

/permissions

會打開一個管理畫面,你可以看到、新增或刪除三種規則:

  • 允許(allow):這類動作不用問,直接做。
  • 詢問(ask):這類動作一定要先問。
  • 禁止(deny):這類動作一律不准。

例如,禁止讀取 .env 和 secrets 資料夾,寫在專案的 .claude/settings.json 裡會長這樣:

{
  "permissions": {
    "deny": [
      "Read(./.env)",
      "Read(./.env.*)",
      "Read(./secrets/**)"
    ]
  }
}

不需要自己背語法,直接請 Claude 幫你寫:

請 Claude 幫你加禁止規則

請幫我在這個專案加上權限規則:禁止讀取 .env 檔案和 secrets 資料夾裡的任何檔案。請告訴我你要修改哪個設定檔、加上什麼內容,等我同意後再改。

給新手的建議組合

情境 建議
剛開始學、還在熟悉 Manual,每個修改都看一眼
要做一個新功能或大改動 先 Plan,核准時選「手動核准每個修改」
已經用 Git 存好檔、只是改小地方 可以試試 Edit automatically
想要更省事 熟悉後再用 Auto,但仍要檢查結果
任何時候 不用 Bypass;不懂的指令先問;金鑰不進對話

下一堂,我們會裝上最重要的一張安全網:Git。有了它,就算 Claude 改壞了,你也能一鍵回到改壞之前。

行動練習
  1. 在 my-first-claude 啟動 Claude Code,用 Shift+Tab(或介面上的模式選單)把每一種模式都切一次,看看畫面怎麼顯示,最後停在 Manual。
  2. 用上面的 /plan 提示詞規劃整理筆記的任務。至少選一次「繼續規劃」,提出一個修改意見,再選「手動核准每個修改」讓它執行。
  3. 請 Claude 幫你加上禁止讀取 .env 的規則。接著自己用編輯器建立一個內容是 TEST=123 的 .env 檔,再問 Claude「.env 裡寫了什麼?」,觀察它的讀取是不是被規則擋下來。
  4. 用一句話寫下你自己的底線,例如「我看不懂的指令,一律先問再按」,貼在你的螢幕旁邊。

讀完了嗎?

標記完成後,單元與專案的進度會自動更新(只存在這台裝置的瀏覽器)。

卡住了?讓 AI 當你的家教複製這段提問範本,貼到 Claude 或其他 AI 工具,再補上你卡住的地方。

留言與討論

卡關了、有心得,或發現內容需要更新?都歡迎留言。留言使用 GitHub 帳號登入。

留言區即將開放。現在可以先到 GitHub 討論區 發問,或看看 交流頁 的其他管道。