權限模式:讓 Claude 安全地動手
Claude Code 能改檔案、執行指令,所以「它什麼時候要先問你」很重要。這堂課認識五種權限模式、學會用 Plan 模式先對齊想法,並建立幾條保護自己的底線,包括密碼與金鑰怎麼處理。
為什麼要談權限
前幾堂你已經體驗過:Claude 要建立檔案時,會跳出詢問讓你按同意。這個機制叫做權限。
這一堂要回答三個問題:
- 有哪幾種權限模式?什麼時候用哪一種?
- 怎麼讓 Claude 先「想清楚」再動手?
- 有哪些事,無論如何都不要讓它做?
先說結論:Claude Code 不是壞人,但它會出錯,也會照字面執行你說的話。權限的意義,是讓你在關鍵時刻有機會說「等一下」。
五種權限模式
| 模式 | Claude 不用問就能做的事 | 什麼時候用 |
|---|---|---|
| Plan(計畫) | 讀檔案、研究,提出計畫 | 任務比較大、你想先確認方向 |
| Manual(手動) | 只有讀檔案;改檔、執行指令都先問你 | 學習期、處理重要檔案時 |
| Edit automatically(自動改檔,也叫 Accept edits) | 讀檔,改這個資料夾內的檔案,以及建立、移動、複製、刪除檔案的常見指令 | 你已經用 Git 存好檔,想讓它快一點 |
| Auto(自動) | 大部分動作,由一個背景的安全檢查擋下危險操作 | 熟悉之後、方向明確的任務 |
| Bypass permissions(略過權限) | 全部 | 只在與你的電腦隔離的測試環境(虛擬機、容器)裡用 |
怎麼切換:
- 終端機:按
Shift+Tab輪流切換,畫面下方會顯示目前模式。 - VS Code、桌面 App:點輸入框下方的模式標示,從選單挑。
想讓 Manual 變成每次的預設
如果你希望每次啟動都是 Manual,可以請 Claude 幫你改設定:
請幫我把 Claude Code 的預設權限模式改成 Manual(default)。這個設定應該放在我的使用者設定檔 ~/.claude/settings.json 裡。修改前請先讓我看你要改的內容。
它會在你的使用者設定檔裡加上這段:
{
"permissions": {
"defaultMode": "default"
}
}
default 就是 Manual 模式在設定檔裡的名字。如果檔案裡原本就有其他設定,要保留原本的內容、把這段合併進去,這也是為什麼請 Claude 來改比自己改安全。
Plan 模式:先講好,再動手
Manual 模式會在每一個動作前問你。但有時候問題不在單一動作,而在整個方向:你想要 A,它卻開始做 B,等你發現時已經改了五個檔案。
Plan 模式就是為了這個設計的。在這個模式下,Claude 只會讀檔案、研究、問你問題,最後交出一份計畫。在你核准之前,它不會改任何檔案。
進入 Plan 模式的方法:
- 終端機按
Shift+Tab切到 plan(畫面下方會顯示)。 - 或在訊息開頭打
/plan,例如/plan 幫我把筆記整理成每週一個檔案。 - VS Code 和桌面 App 從模式選單選 Plan。
試試看,在你的 my-first-claude 資料夾:
/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 幫你寫:
請幫我在這個專案加上權限規則:禁止讀取 .env 檔案和 secrets 資料夾裡的任何檔案。請告訴我你要修改哪個設定檔、加上什麼內容,等我同意後再改。
給新手的建議組合
| 情境 | 建議 |
|---|---|
| 剛開始學、還在熟悉 | Manual,每個修改都看一眼 |
| 要做一個新功能或大改動 | 先 Plan,核准時選「手動核准每個修改」 |
| 已經用 Git 存好檔、只是改小地方 | 可以試試 Edit automatically |
| 想要更省事 | 熟悉後再用 Auto,但仍要檢查結果 |
| 任何時候 | 不用 Bypass;不懂的指令先問;金鑰不進對話 |
下一堂,我們會裝上最重要的一張安全網:Git。有了它,就算 Claude 改壞了,你也能一鍵回到改壞之前。
- 在
my-first-claude啟動 Claude Code,用Shift+Tab(或介面上的模式選單)把每一種模式都切一次,看看畫面怎麼顯示,最後停在 Manual。 - 用上面的
/plan提示詞規劃整理筆記的任務。至少選一次「繼續規劃」,提出一個修改意見,再選「手動核准每個修改」讓它執行。 - 請 Claude 幫你加上禁止讀取
.env的規則。接著自己用編輯器建立一個內容是TEST=123的.env檔,再問 Claude「.env 裡寫了什麼?」,觀察它的讀取是不是被規則擋下來。 - 用一句話寫下你自己的底線,例如「我看不懂的指令,一律先問再按」,貼在你的螢幕旁邊。
讀完了嗎?
標記完成後,單元與專案的進度會自動更新(只存在這台裝置的瀏覽器)。
留言與討論
卡關了、有心得,或發現內容需要更新?都歡迎留言。留言使用 GitHub 帳號登入。