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をインストールした翌日にファイルを消された——最初にやるべき3つの安全設定

0
Last updated at Posted at 2026-03-30

Claude Codeを始めたばかりの方へ: この記事は「Claude Codeって何?」という段階の方でも読めるように書いています。ターミナルでClaude Codeを使い始めたら、最初にこの安全設定をしておくと安心です。

Claude Codeは便利だが、危険でもある

Claude Codeはターミナルのフルアクセスを持つ。rm -rfgit push --forceも実行できる。

実際に起きた事故:

  • C:\Usersディレクトリ全削除#36339)— NTFSジャンクションをrmが追跡
  • rebase+force-pushでブランチ破壊#32476
  • .bashrcを勝手に書き換え#37478
  • 本番データベース削除#27063

これらはCLAUDE.mdのルールでは防げない。コンテキストが埋まると、ルールは忘れられる。
:::details 初心者向け: コンテキストとは
コンテキストとは、AIが会話中に覚えている情報の総量です。机の広さに例えると分かりやすいです。机の上に書類を積みすぎると、最初に置いた大事なメモが埋もれて見えなくなる——AIも同じで、情報が増えすぎると最初に指示されたルールを「忘れて」しまいます。
:::

解決策:Hooks

:::details 初心者向け: hookとは
hookとは「特定のタイミングで自動実行されるスクリプト」のことです。玄関のドアに付けるチェーンロックのようなもので、危険な操作が実行される「前」に自動でチェックし、危なければ止めてくれます。
:::

Claude CodeのHooks機能は、ツール実行の前後にシェルスクリプトを実行する仕組み。

hookには3つのタイミングがある。料理に例えると、「食材を切る前にチェック(PreToolUse)」「料理が出来上がった後にチェック(PostToolUse)」「食事が終わったときにチェック(Stop)」のようなものだ。

  • PreToolUse — ツール実行前(ここでブロック可能)
  • PostToolUse — ツール実行後(結果チェック)
  • Stop — Claude応答完了時

exit code 2で終了すると、その操作はブロックされる。

:::details 初心者向け: exit codeとは
exit code(終了コード)はプログラムが終了するときに返す数字です。0は「成功」、それ以外は「何か問題あり」を意味します。Claude Codeのhookでは特別に、exit code 2が「この操作をブロックせよ」という合図になっています。
:::
モデルはこれをバイパスできない。プロセスレベルで強制される。

ステップ1:安全hookをインストール(30秒)

npx cc-safe-setup

8つのhookが自動インストールされる:

Hook 防ぐもの
destructive-guard rm -rf /git reset --hardgit clean
branch-guard main/masterへのpush、force-push
secret-guard git add .env、鍵ファイルのコミット
syntax-check Python/JS/JSONの構文エラー検出
context-monitor コンテキスト残量警告(40/25/20/15%)
comment-strip bashコメントによるパーミッション破壊防止
cd-git-allow cd && git logの自動承認
api-error-alert APIエラーによるセッション死亡通知

ステップ2:動作確認(30秒)

npx cc-safe-setup --verify

各hookにテスト入力を送り、正しくブロックされるか確認する。

✓ destructive-guard: blocks rm -rf /
✓ destructive-guard: allows rm -rf node_modules
✓ branch-guard: blocks git push --force to main
...
14/14 tests passed.

ステップ3:環境の健康診断(30秒)

npx cc-safe-setup --quickfix

よくある問題を自動検出・修正する:

  • jqの有無(hookのJSON解析に必要)
  • hookファイルの実行権限
  • settings.jsonの構文エラー
  • 壊れたファイル参照
  • shebang行の欠落

ステップ4:プロジェクトに合ったhookを追加(2分)

637のサンプルhookを確認:

npx cc-safe-setup --examples

名前を指定してインストール:

# データベース操作をブロック
npx cc-safe-setup --install-example block-database-wipe

# Docker操作を自動承認
npx cc-safe-setup --install-example auto-approve-docker

# デプロイ前のコミット確認
npx cc-safe-setup --install-example deploy-guard

# プロジェクト外のファイル操作をブロック
npx cc-safe-setup --install-example scope-guard

# Pythonツールを自動承認
npx cc-safe-setup --install-example auto-approve-python

自然言語でカスタムhookを生成することもできる:

npx cc-safe-setup --create "npm publishの前にテストを実行したか確認"

ステップ5:監視(任意)

リアルタイムダッシュボード:

npx cc-safe-setup --dashboard

ブロック統計:

npx cc-safe-setup --stats

hookの仕組み(最小限の理解)

hookは~/.claude/settings.jsonに登録されたシェルスクリプト。

:::details 初心者向け: settings.jsonとは
~/.claude/settings.jsonはClaude Codeの設定ファイルです。ホームディレクトリの.claudeフォルダの中にあります。hookの登録情報やその他の設定が書かれたJSON形式のファイルで、Claude Codeが起動時に読み込みます。
:::

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "bash ~/.claude/hooks/destructive-guard.sh"
          }
        ]
      }
    ]
  }
}

hookの中身(簡略版):

#!/bin/bash
# 標準入力からJSON(ツール名、引数など)を受け取る
COMMAND=$(cat | jq -r '.tool_input.command // empty')

# 危険なコマンドを検出
if echo "$COMMAND" | grep -qE 'rm\s+.*-rf\s+/'; then
  echo "BLOCKED: ルートディレクトリの削除" >&2
  exit 2  # ← これでブロック
fi

exit 0  # ← これで許可

exit 2 = ブロック。これだけ覚えればいい。

CLAUDE.mdとhookの違い

CLAUDE.md Hooks
仕組み プロンプトに含まれるルール プロセスレベルのスクリプト
強制力 コンテキスト依存(忘れる) 常に実行される
バイパス モデルが無視できる モデルが無視できない
用途 行動指針、コードスタイル 安全制約、承認制御

CLAUDE.mdは「お願い」。Hooksは「強制」。

両方使うのがベスト。CLAUDE.mdで方針を伝え、Hooksで安全を保証する。

インタラクティブに試す

コマンドを入力すると、どのhookが反応するかリアルタイムで表示されるWebツール:

Hook Playground

rm -rf /git push origin mainを入力して、hookの動作を確認できる。

まとめ

# これだけで安全になる
npx cc-safe-setup --shield

1コマンド、30秒。自律的なClaude Codeセッションが、よくある事故から保護される。


リソース:


hookの仕組みをもっと詳しく知りたい場合はClaude Code公式ドキュメントのHooksセクションを参照。

hookの設計パターンや自律セッション運用での失敗談を体系的にまとめたClaude Codeを本番品質にする — hook設計・運用ガイド(¥800・第3章まで無料)もあります。非エンジニアが800時間AIを走らせた全記録はAIに仕事を任せてみた(¥800・第3章まで無料)。

設定が正しいか不安な方へ
無料で診断: npx cc-health-check で安全スコアを即座に確認できます。プロによる詳細レビュー($50〜)も受付中。

「どのhookを入れればいいかわからない」なら → Hook Selector(5つの質問で最適なhookセットを推薦)
「CLAUDE.mdのトークンコストが気になる」なら → Token Checkup(トークン消費パターンを診断)


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

📖 非エンジニアがClaude Codeで事業を回した全記録(¥800) — $800のAIコストで¥6,000を稼ぐまでの失敗と改善。第2章まで無料


⚠️ CVE-2026-21852(2026年4月公開): プロジェクト内.claude/settings.json経由でAPIキー窃盗。対策: npx cc-safe-setup(ユーザーレベル設定で免疫)→ 詳細

⚠️ 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

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?