Claude Code ロードマップ
Phase 4設定を自分仕様に8ステップ中 5つめ

permissions(許可設定)

このページのゴール:毎回の確認を減らしつつ、危険な操作は必ず止まる状態にする

所要時間の目安: 15分動作確認日: 2026-08-05

手順

1. allow と deny の仕組みを知る

permissions には、主に2つのリストを書きます。

リスト意味
allow確認なしで実行してよい操作
deny実行させない操作

ルールは deny が最優先で評価されます。同じ操作が allow と deny の両方に当てはまっても、deny が勝ちます。安全側に倒れる設計です。

2. ユーザー設定のファイルを開く

全プロジェクトに効かせたいので、ユーザー層(4-4参照)に書きます。

ターミナルに貼り付ける
touch ~/.claude/settings.json
open -e ~/.claude/settings.json

3. 安全側のテンプレートを貼る

ファイルが空なら、次を丸ごと貼って Cmd+S で保存してください。すでに中身がある場合は、下のつまずきポイントを見てください。

~/.claude/settings.json に貼る
{
"permissions": {
  "allow": [
    "Bash(mkdir *)",
    "Bash(npm install)",
    "Bash(npm run dev)",
    "Bash(npm run build)",
    "Bash(git add *)",
    "Bash(git commit *)"
  ],
  "deny": [
    "Bash(rm -rf *)",
    "Bash(rm -fr *)",
    "Bash(sudo *)",
    "Bash(git push --force *)",
    "Bash(git push -f *)",
    "Read(.env)",
    "Read(.env.*)",
    "Read(**/secrets/**)"
  ]
}
}

* はワイルドカードで、「この後に何が続いても」という意味です。Bash(mkdir *) なら、mkdir で始まるコマンド全般に当てはまります。

4. 各行の意味を知る

allow 側は、この先のPhaseでよく使う「壊さない操作」だけを選んであります。

deny 側は、事故になりやすい操作です。

ルール止めるもの
Bash(rm -rf *) Bash(rm -fr *)フォルダごと即座に消す削除。ゴミ箱に残らない
Bash(sudo *)管理者権限での実行。Macの根幹を触れてしまう
Bash(git push --force *) Bash(git push -f *)履歴の強制上書き(Phase 5で学ぶ操作の危険版)
Read(.env) Read(.env.*)APIキーなど秘密が入るファイルの読み取り(Phase 5-6で学ぶ)
Read(**/secrets/**)secrets という名前のフォルダの中身の読み取り

Read(.env) のようにファイル名だけ書いたルールは、どの階層にある同名ファイルにも効きます。

5. 反映を確認する

新しいセッションを起動して、セッションの中で次を打ちます。

ターミナルに貼り付ける
/permissions

ルールの一覧と、それがどのファイルから読み込まれたかが表示されます。貼った deny のルールが並んでいれば成功です。

✅ ここまで出来たらOK

確認すること:/permissions の一覧に、Bash(rm -rf *) などの deny ルールが表示されている

そうならない場合 → エラー逆引きページ を見てください。

📖 出てきた言葉

allowallowアロー

確認なしで実行してよい操作のリスト。settings.json の permissions に書く。 毎回の「実行していい?」が減り、作業のテンポが上がる。

denydenyデナイ

実行させない操作のリスト。allow より優先して評価される。 疲れて何でもOKを押してしまう日でも、ここに書いた操作だけは必ず止まる。

settings.json にすでに中身がある

丸ごと貼ると、元の設定が消えてしまいます。自分で組み合わせるより、Claudeに頼むのが確実です。

Claudeにこう伝える(打ち込むコマンドではありません)

~/.claude/settings.json に、次の permissions を追加してください。 既存の設定は消さずに残してください。 書き換える前に、変更内容を見せてください。 (ここに手順3のJSONを貼る)

保存したのに /permissions に出てこない

JSONは1文字のミスで全体が無効になります。カンマの付け忘れ、引用符の欠けが定番です。 ファイルの中身を全部コピーして、Claudeに「このJSONのエラーを直して」と貼ってください。 また、設定は新しいセッションで確認してください。起動中のセッションには反映されないことがあります。

denyに書けば絶対に安全?

permissions はClaude Codeの操作に効く仕組みで、強力な安全ネットです。ただし万能ではありません。 たとえば、実行を許したプログラムが内部で行うファイル操作までは止められません。 「deny+大事な操作は自分の目で確認」の二段構えを崩さないでください。