Claude Codeの権限ルール(allow/ask/deny)とsettings.json設定ガイド
Claude Codeの権限ルール(permission rules)は、settings.jsonに allow/ask/deny を書いて「どのツール・コマンド・ファイル・ドメインを、確認なしで許す/毎回聞く/禁止するか」を細かく指定する仕組み。本記事は、権限ルールとは何か(権限モードが確認頻度の大枠、ルールが個別ツール単位。ルールはモデルではなくClaude Codeが強制)、allow/ask/denyと優先順位(評価順は deny→ask→allow で最初の一致が勝ち、具体性は順序を変えない=広いdenyは具体的なallowより強い。denyは例外を持てない。ツール名だけのdenyはツールごと文脈から消す)、ルールの書き方(Tool(指定子)。Bashはワイルドカード=空白+*は単語境界・:*は末尾*と等価・複合コマンドは各サブコマンドが一致要・読み取り専用コマンドは全モード確認なし・timeout等のラッパーは剥がして照合、Read/Editはgitignore形式の4アンカー=//絶対・~/ホーム・/プロジェクトルート・./カレント、WebFetchはdomain:、MCPはmcp__server__tool、AgentはAgent(名前))、settings.jsonの階層と優先順位(managed>CLI>.claude/settings.local.json>.claude/settings.json>~/.claude/settings.json。どの階層のdenyも他のどのallowより必ず勝つ。defaultModeやadditionalDirectoriesもここ)、実用レシピ(秘密ファイルをdenyで守る・危険操作をaskで必ず確認・定型作業をallowで自動化・URL制限はBash引数では脆いのでcurl/wgetをdenyしWebFetch(domain:)を使う)、注意点(Read/Editのdenyはスクリプト経由の間接アクセスを防げないのでサンドボックス併用・環境ランナーdevbox run/npx/docker execは内側コマンドまで書く・フックはルールを拡張するがdeny/askは不変)までを公式ドキュメント(2026年6月時点)に基づき解説する。