Bible Network Crypto DeFi Onchain RWA AI Agent Stablecoin Chain SAFU CryptoTax DeFAI AGI Claude Me Claude Skill Claude Design Claude Cowork
独立メディア
いかなるプロジェクトとも無提携
Claudeスキルを学んで、すべてをもっとうまくやろう
claudeskill-me.com
最新
OpenTelemetryでClaude Codeの圧縮とhookを見る:compaction、hook_execution_complete、precompute_reuseの読み方  ·  Bash権限ルールの死角:denyは/bin/rm、bash -c、git -Cを止められず、devbox run *は内側のどんなコマンドも通す  ·  CLAUDE.mdが長すぎるとき:.claude/rules/とpathsで、特定のファイルに触れたときだけルールを読み込む  ·  Claude Codeのサンドボックスで「No usable sandbox!」:--no-sandbox、excludedCommands、allowNestedUserNamespacesがそれぞれ手放すもの  ·  Claude Code v2.1.309がサンドボックスと権限の抜けをまとめて修正:起動ファイルのサンドボックス外実行、シンボリックリンク経由のdenyWriteなど  ·  auto modeの$defaultsの落とし穴:autoMode.soft_denyに文字列を1つ入れ忘れると、組み込みのforce pushルールが丸ごと消える
用語解説 · Tools Integration

Permission Rules

権限ルール(Permission Rules)
Tools Integration intermediate

30秒バージョン · 忙しい方へ
Claude Codeのallow、ask、denyルール。ToolまたはTool(specifier)の形式で書き、ツール実行前に許可・確認・拒否を決める。照合するのは呼び出しのテキストでプログラムそのものではないため、セキュリティ境界ではない。
詳しく読む +
01 · これは何?

権限ルールとは何ですか?

権限ルールの形式はToolまたはTool(specifier)で、allow、ask、denyの3種類がある。ツール名だけ(例:Bash)ならそのツールのすべての使用に一致し、括弧で範囲を絞れる。例えばBash(npm run build)はそのコマンド全体、Read(./.env)はそのファイルの読み取り、WebFetch(domain:example.com)はそのドメインへの取得に一致する。denyとaskルールはTool(param:value)で最上位の入力パラメータにも一致できる。

02 · なぜ存在する?

なぜ存在しますか?

毎回確認する方法と全面許可の間に中間地帯を作るためだ。日常的に安全なコマンドは確認が不要になり、危険なものは常に拒否される。ルールはバージョン管理に入れてチームで共有でき、各開発者が自分用に追加もできる。優先順位は明確で、どのスコープのdenyもallowより優先され、managed設定が最上位であり、コマンドライン引数でもmanagedのルールは上書きできない。

03 · 意思決定にどう影響する?

どう動き、どんな限界がありますか?

BashルールはClaudeが書くコマンドテキストに照合する。は任意のテキストを表し、末尾の「スペース+」は引数なしのコマンドにも一致する。複合コマンド(&&、||、;、パイプなど)ではallowは各サブコマンドが個別に一致する必要があり、denyとaskはどのサブコマンドが一致しても有効になる。照合前にtimeout、time、nice、nohupなどの固定ラッパーが除去される。公式は、denyやaskルールはClaudeが通常生成する書き方をカバーするだけでプログラムを囲む境界ではないと明言しており、Bash(rm *)は/bin/rmやbash -cを止めない。テキストに依存しない強制にはサンドボックス、独自の検査にはPreToolUse hookを使う。

04 · どうすればいい?

私にとってどういう意味ですか?

ルールは確認を減らす便利層と考え、何かが起きないことの保証とは考えない。allowは内側のコマンドまで含めて具体的に書く(Bash(devbox run *)ではなくBash(devbox run npm test)。前者はdevbox run以降のすべてを通す)。本当に起きてはいけないことはサンドボックスかhookに任せる。この「使い方」は公式ドキュメントに対する私の整理だ。

出典:Configure permissions - Claude Code Docs
具体例 +

公式ドキュメントの例:Bash(npm run *)とBash(git commit *)をallow、Bash(git push *)をdenyにすると、npmスクリプトとcommitは確認なしになりgit pushは拒否される。ただしgit -C . pushはそのdenyに一致しない。

よくある誤解 +
✕ 誤解 1
× 誤解:Bash(curl *)をdenyすればネット接続できない、実際は:/usr/bin/curlやsh -cは止められず、WebFetchを制限してもBashのcurlは止まらない
✕ 誤解 2
× 誤解:PreToolUse hookがallowを返せばdenyされた操作を通せる、実際は:一致するdenyとaskルールは依然有効で、ルール評価より前にブロックするのはexit code 2のhookだけだ
The Missing Link +
直接的な影響

メリット:きめ細かく、共有でき、優先順位が明確。デメリット:テキストにしか照合しないため、別の書き方や環境ランナーによってルールが思ったより広くも狭くもなる。

質問する
10文字以上入力してください
関連トピック
Claude Code v2.1.305 が allowedMcpServers を変更:許可リストで弾かれていた MCP サーバーがアップグレードで読み込まれる可能性
Claude Me
許可リストの本来の意味は名指しされていないものは読み込まないことだが、今回の変更はある種のサーバーを既定で許可に変え、しかもエラーメッセージは一切出ない。
#managed-settings
Claude Code が MCP 許可ルールを厳格化:mcp__a は a__b というサーバーを許可しなくなり、二重アンダースコアを含む名前は書き方の変更が必要
Claude Me
意図より広く書かれた権限ルールはたいてい事故の後に気づかれるが、今回の MCP ルールの厳格化は、少なくともそのあいまいさを見えるようにする。
#managed-settings
Claude Code の hooks に onFailure: "block" 追加:スクリプトのパスを間違えてもポリシーゲートが黙って素通りしなくなる
Claude Me
ポリシー hook が壊れたときのデフォルトは通過で、ゲートはパスを1つ打ち間違えるまでとっくに死んでいたかもしれない。
#managed-settings
Claude Code にモデルバージョンロック機能追加:availableModelsMatch: exact と deniedModels の実際の使い方
Claude Me
availableModelsMatch: exact と deniedModels の組み合わせで、モデルバージョン管理は「ファミリーを大まかにロック」から「特定バージョン番号に固定」へ進化する。
#managed-settings