Claude Code Hook 食譜:PreToolUse 攔截危險 bash(rm -rf/fork bomb/curl|sh)
掛一個 PreToolUse Bash hook,在 AI 執行 shell 指令「之前」就攔下 rm -rf、fork bomb、curl|sh 這類毀滅性命令——連 --dangerously-skip-permissions 都擋得住的最後一道安全網。
放心讓 AI 跑 bash,但別放心讓它跑 rm -rf /。
一段 PreToolUse hook,在指令送出前掃描危險 pattern,命中就 exit 2 拒絕——AI 完全執行不到。
[ Log in to see the full prompt ]Sign up free to see the full prompt, copy it, save it, and join the discussion. Free content unlocks on login; Pro content is a separate subscription.
## 這是什麼/解決什麼痛點 你願意讓 Claude Code 自動跑 bash 來提升效率,但有一類指令一旦執行就回不來:`rm -rf /`、`rm -rf ~`、fork bomb、`curl http://… | sh`、`dd if=… of=/dev/sda`。靠「每次都人工核准」太累、也容易手滑按過;而 `--dangerously-skip-permissions`(YOLO 模式)更是完全沒煞車。這個 PreToolUse hook 補上真正的最後防線:在 AI 把任何 bash 指令送去執行「之前」,先掃描危險 pattern,命中就以 exit code 2 拒絕、把理由回給 AI——關鍵是這層連 `--dangerously-skip-permissions` 都擋得住,因為 hook 是 harness 強制執行的,不歸 AI 的權限旗標管。 ## 為什麼這來源值得用 本食譜改寫自 karanb192/claude-code-hooks(MIT)的 `block-dangerous-commands` hook,它正是為這個情境而生:PreToolUse 鎖 `Bash` matcher、從 stdin 的 JSON 讀 `tool_input.command`、命中危險 pattern 就 exit 2 拒絕,並提供 critical / high / strict 三段安全等級。我把它的核心邏輯用純 bash 重寫(原專案是 Node 腳本),讓沒有 Node 的環境也能直接用,並保留「分級」設計,這樣你可以先用寬鬆的 critical,團隊習慣後再升到 high / strict。 ## 怎麼用(步驟) 1. 把 JSON 併進 `~/.claude/settings.json`(建議放全域,讓每個專案都被保護)。 2. 建立 `.claude/hooks/block-dangerous-commands.sh`,貼上腳本並 `chmod +x`。 3. 確認有 `jq`(用來解析 stdin JSON)。 4. 把 `{{SAFETY_LEVEL}}` 設成 `high`(推薦起點)。 5. 測試:叫 AI 跑一個無害的 `rm -rf /tmp/this-should-be-blocked-xyz`,應看到被 hook 拒絕、AI 收到理由並改用安全做法。 ## 要點與何時用 - **exit 2 才是「拒絕」**:PreToolUse hook 用 exit code 2 表示阻擋,並把 stderr 內容回給 AI 當理由;exit 0 是放行。這跟 PostToolUse 完全不同(後者擋不了已執行的動作)。 - **pattern 要保守、寧可漏放也別誤殺**:太激進的 regex 會把正常指令也擋掉、讓 AI 卡住。先擋「明確毀滅性」的,再依團隊習慣加碼。 - **它是安全網、不是替代品**:仍建議在重要 repo 用版控與備份;hook 防的是「手滑與失控」,不是惡意攻擊。 - **何時用**:任何你打算開 auto-approve / YOLO 模式、或讓 AI 在含有真實資料的環境跑 shell 的場景,都應該先掛這層。 📎 來源:karanb192/claude-code-hooks(作者 Karan Bansal,MIT 授權)— 本篇改寫自其 block-dangerous-commands hook(含 critical/high/strict 分級設計),以純 bash 重寫並繁中說明,原始內容見上方連結。
Suno Engineer's Mindset: 4 Steps to a Song That Doesn't Sound Like AI
A studio engineer's breakdown of Suno's fatal weaknesses (fried vocals, high-frequency artifacts), plus a 4-step DAW workflow and a Suno Studio cleanup prompt.
5 Claude Weekly Workflows That Stuck After 6 Months
Proposal generator / meeting processor / content repurposer / Friday review / shutdown reset — out of 40 I tried, only these 5 survived, each saving 30+ minutes per run.