資訊圖:暖色紙底,左上標題「三條規則,三種沒生效」。中央一張大紙卡,左上角小標籤寫「settings.json」,卡內三列,每列左半是等寬字體的權限規則字串、右半是一枚藍色描邊狀態標籤與底下一行灰色小字:第一列「Edit(/work/(archive)/**)」對「靜默丟掉」「唯讀資料夾變可寫」,第二列「Edit(/data/[logs/**)」對「全部編輯失敗」「Invalid regular expression」,第三列「Read(./**/build/**)」對「補上又退回」「Bash 參數管不到」。卡片下方橫帶粗體寫「權限規則是字串比對,不是保證」。
工作現場

你設的唯讀資料夾,只要路徑裡有括號就等於沒設

一條寫壞的規則,會讓所有檔案編輯都失敗

你設成唯讀的那個資料夾,只要路徑裡有括號,過去一直是可寫的。

Claude Code 官方 changelog 的 2.1.260 版(標示 9 月 3 日)修掉這一條:路徑含括號的 EditWriteRead 權限規則,會被當成無效丟掉,或被 Bash 沙箱忽略。官方對後果只寫了一句話——這讓原本設成唯讀的資料夾是可寫的。像 Edit(/Users/you/work/(archive)/**) 這種規則,過去等於不存在。

同一版還有第二格。一條寫壞的檔案權限規則,例如少關一個 [,過去會讓每一次檔案編輯都失敗,錯誤是 Invalid regular expression。現在這種 deny 規則改成只守它字面上寫的那個路徑。一條寫壞,過去是全部停擺,現在是那一條退化成字面比對——兩種都不是你設定它的時候想像的行為。

第三格是 zsh。Bash 權限檢查過去會自動核准把命令替換藏在 REPORTTIMEREPORTMEMORYDIRSTACKSIZE 賦值裡的指令,現在會停下來問你。這三個是 zsh 的內建設定值,沒有人會在日常指令裡寫它們——它們出現在這條修正裡,是因為那是一道縫。

第四格最值得單獨看,因為它是修好又退回。2.1.259(9 月 2 日)補上了 Read() deny 規則對 Bash 參數的覆蓋:--ignore-revs-file=.env 這類選項值、git diff 的檔案運算元、cd 目錄 && cat 檔案 這種複合指令,過去都繞得過去。隔一版,2.1.260 把這個修正整個退回,理由寫在 changelog 上:它會讓 Read(./**/build/**) 規則在所有模式下把 npm run build 一起擋掉,也讓 cd … && grep 在自動模式裡照樣跳提示。

所以今天的答案是:你那條 Read() deny 規則,管不到用這幾種寫法從 Bash 讀出去的檔案。 這不是還沒修,是官方權衡之後退回的狀態。把 deny 規則當密鑰保險箱用的人,這一格要自己補。

再往後一版,2.1.261(9 月 4 日)補了兩件同方向的事:危險的 rm 安全提示現在也攔得住寫成位置參數、以及包在雙引號 sh -c 腳本裡的 rm -rf;自動模式現在把「把內容打包進公開圖表渲染器網址」的連結視為一次上傳到該站,除非你自己開口要,否則不再自動放行。

把四格擺在一起,我的讀法是一句話:權限規則是字串比對,不是保證。 我們寫過代理人的三層授權、也寫過放手前先設好哪些能自動,但那些都在假設規則會照你寫的方式生效。這幾版證明中間還有一層:規則得先被正確解析,才輪得到它擋不擋得住。

而這一層過去不會講話。括號那條是靜默丟掉,寫壞那條是全部編輯失敗、錯誤訊息只丟給你一句正則表示式的抱怨,Read() 那條是補上又退回,兩次都不會有人通知你。2.1.260 起,Bash(ls) x 這種「右括號後面還帶字」的規則至少會被回報成無效設定,不再被靜默忽略——這是第一次有東西願意主動說「你這條沒用」。

升上 2.1.261 是最低限度,claude --version 兩秒的事。真正該回頭問的是另一題:你 settings.json 裡那幾條規則,你上次確認它們真的生效過是什麼時候?自動模式改成模型自己按核可之後,那幾行字就是唯一那道閘。我自己回頭看,答案是從來沒有——我只確認過我寫了它們。

查核備註:本篇是官方 changelog 的文件檢視,版本與日期照官方頁面標示。我沒有真的建一個帶括號的資料夾去撞那個 bug;退回之後 Read() deny 規則現在究竟覆蓋到哪裡,是我從 2.1.259 補上、2.1.260 退回這兩條記載推出來的,不是我實測的結果。

LEARN

想系統性學會,不只看這一則?

Claude Code 教學:用終端 AI Agent 完成真正的工作

讓 Claude Code 在你的專案裡完成一個真實任務,而且控得住權限、驗得了 diff、管得住成本。

從第 0 課開始 →

SOURCES

  1. AClaude Code changelog 2.1.259/2.1.260/2.1.261(Anthropic 官方)

來源分級:A = 一手公告/論文/官方文件 · B = 可信媒體 · C = 可參考但需脈絡 · D = 觀察用,不可當事實。

本文由 AI 協助研究,矽基前沿編輯部撰稿,總編輯廖玄同審閱定稿。 編輯方針與 AI 使用說明

WEEKLY [SI]GNALS

訂閱《矽基前沿週報》

每週五早上,把本週 AI 與算力產業最值得記住的變化連回台灣。

本週關鍵訊號 · 為什麼值得記住 · 下週觀察 · 5 分鐘讀完。

免費 · 隨時取消 · 不轉售你的 email。

MACHINE-READABLE SUMMARY

Topic
工作現場
Key claims
  • Claude Code 官方 changelog 的 2.1.260 版(標示 2026-09-03)修正路徑含括號的 Edit/Write/Read 權限規則被當成無效丟棄或被 Bash 沙箱忽略,官方寫明該情況使原本設為唯讀的資料夾成為可寫。
  • 同一版修正單一條無法編譯的檔案權限規則(例如未閉合的中括號)會使每一次檔案編輯以 Invalid regular expression 失敗;該類 deny 規則改為只守其字面路徑。
  • 同一版修正 Bash 權限檢查自動核准把命令替換藏在 REPORTTIME、REPORTMEMORY 或 DIRSTACKSIZE 賦值中的 zsh 指令,改為跳出核准提示。
  • 2.1.259(標示 2026-09-02)曾將 Read() deny 規則的覆蓋範圍擴及 Bash 參數(選項值、git 檔案運算元、cd 與 cat 複合指令),但 2.1.260 將該變更整個退回,官方理由是它會在所有模式下擋掉 npm run build 並使 cd 與 grep 在自動模式仍跳提示。
  • 2.1.261(標示 2026-09-04)將危險 rm 安全提示擴及寫成位置參數以及包在雙引號 sh -c 腳本中的 rm -rf,並將把內容打包進公開圖表渲染器網址的連結視為上傳該站、不再自動核准。
  • 2.1.260 起,右括號後面帶有多餘文字的權限規則(例如 Bash(ls) x)會被回報為無效設定,不再被靜默忽略。
Entities
Claude Code · settings.json · Bash sandbox · zsh · Anthropic
Taiwan relevance
medium
Confidence
high
Last updated
2026-09-06
Canonical URL
https://signals.tw/articles/claude-code-permission-rules-silently-dropped/

SUGGESTED CITATION

如果 AI agent / 研究 / 報導要引用本文,建議格式如下:

矽基前沿 · 工作現場線(編輯:廖玄同),《你設的唯讀資料夾,只要路徑裡有括號就等於沒設》,矽基前沿 [Si]gnals,2026-09-06。https://signals.tw/articles/claude-code-permission-rules-silently-dropped/

AI agents / search engines may quote, summarize, and cite with attribution and a link back to the canonical URL above. See /for-ai-agents for full policy.