0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Codeのrm -rfでC:\Usersが全削除された事故を防ぐワンコマンドツールを作った

0
Last updated at Posted at 2026-03-20

⚠️ Opus 4.7緊急情報(2026年4月17日)
Opus 4.7のauto mode安全分類器がOpus 4.6にハードコードされている問題が発覚。3日間で23件以上のデータ損失。さらにv2.1.100以降、APIコールごとに約20,000トークンが見えない場所で追加課金されている問題も判明(#46917、GitHub上196件のリアクション)(50GB永久消失含む)。4倍のトークン消費も報告されている。対策: npx cc-safe-setup --opus47Survival Guide / Safety Scanner

Claude Codeを始めたばかりの方へ: この記事は「Claude Codeが勝手にファイルを削除してしまう事故」とその防ぎ方を解説しています。難しい設定は不要で、1コマンドで対策できます。

何が起きたか

GitHubのClaude CodeリポジトリにIssue #36339が投稿された。

:::details 初心者向け: 自律モードとは
自律モードとは、Claude Codeが人間の承認なしに次々とコマンドを実行するモードです。通常は「このコマンドを実行していいですか?」と確認がありますが、自律モードではその確認をスキップして連続的に作業を進めます。効率的ですが、安全対策なしだと危険な操作も止められません。
:::

自律モードのClaude Codeがrm -rfをプロジェクトディレクトリに実行した。Windows 11 + WSL2の環境。ディレクトリにはNTFS junction(シンボリックリンクの一種)が含まれていた。

:::details 初心者向け: NTFSジャンクションとは
NTFSジャンクションは、Windowsのファイルシステムにある「別の場所への近道」です。フォルダAを開いたら、実は中身はフォルダBのファイルだった——という仕組みです。rm -rfがこの近道を辿ると、本来削除するつもりのなかった場所まで削除してしまいます。
:::

rm -rfはjunctionを辿り、プロジェクトディレクトリだけでなくC:\Users配下を全削除した。

ドキュメント、ダウンロード、デスクトップ。全部消えた。

なぜ起きたか

Claude Codeはデフォルトで安全フックが0個rm -rf /を実行しても止める仕組みがない。車にたとえると、ABSもエアバッグも付いていない状態で高速道路を走るようなものだ。

ドキュメントにはフックの存在は書いてある。でも自動設定はされない。自分でbashスクリプトを書いて、settings.jsonに登録する必要がある。ほとんどの人はやらない。

作ったもの

npx cc-safe-setup

10秒で637種の安全フックを自動インストールする。

フック 何を防ぐか
Destructive Guard rm -rf /rm -rf ~rm -rf ..git reset --hardgit clean -fdもブロック
Branch Guard main/masterへの直接push
Syntax Check Python/Shell/JSON/YAML/JSの構文エラーを編集直後に検出
Context Monitor コンテキストウィンドウが80%を超えたら警告

各フックは実際の事故から作られた。Destructive Guardは#36339のrm -rf事故。Branch Guardは深夜3時にmainにpushされた事故。Syntax Checkは構文エラーが30ファイルに連鎖した事故。

仕組み

  1. ~/.claude/hooks/に4つのシェルスクリプトを書き出す
  2. ~/.claude/settings.json(Claude Codeの設定ファイル)にフック登録を追加
  3. Claude Codeを再起動すれば有効

フックはPreToolUse(コマンド実行前)とPostToolUse(ファイル編集後)の2種類。PreToolUseフックがexit 2を返すとコマンドがブロックされる。

:::details 初心者向け: PreToolUseとexit 2とは
PreToolUseは「ツールを使う前」というタイミングを意味します。Claude Codeがコマンドを実行しようとした瞬間に、hookスクリプトが割り込んでチェックします。そしてexit 2(終了コード2)を返すと、「この操作は危険なので実行させません」という合図になり、コマンドが強制的にブロックされます。
:::

Destructive Guardの核心部分:

# rm on sensitive paths → ブロック
if echo "$COMMAND" | grep -qE 'rm\s+(-[rf]+\s+)*(/$|/\s|/home|~)'; then
    echo "BLOCKED: rm on sensitive path" >&2
    exit 2
fi
# ただしnode_modules/dist/buildは許可

インストール後

セットアップの確認:

npx cc-health-check

cc-safe-setupで637種の安全フックをインストールすると、Safety Guardsスコアが50% → 90%に上がる。

全体像

npx cc-health-check  → 診断(無料)
npx cc-safe-setup    → 8フック修正(無料)
cc-safe-setup          → 637フック全部(無料OSS)

Claude Codeの破壊的操作を物理的にブロックしたい方へ
Anthropic公式ガイドにない事故防止——Claude Code 800+時間で19点→85点にした全記録では、rm -rf防止、ブランチ保護、secret漏洩防止など658個のhookパターンを解説しています。

「AIに任せて大丈夫なのか」という不安を持ったまま800時間使い続けた記録は非エンジニアがClaude Codeを800時間走らせた——失敗と学びの全記録(¥1,500・第2章まで無料)に書いた。

関連記事



📖 トークン消費に困っているならClaude Codeのトークン消費を半分にする——800時間の運用データから見つけた実践テクニック(¥2,500・はじめに+第1章 無料)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?