この記事には楽天アフィリエイトの広告を含みます。 Amazonのアソシエイトとして、PROBEFOLIOは適格販売により収入を得ています。
Claude Codeの権限設定は、ファイルの読み書きやコマンドの実行を、確認なしで許可するか、その都度確認するか、拒否するか決める仕組みです。毎回同じテストで止まる場合は、そのテストだけを許可するルールを作れます。
最初に現在のルールを確認し、変えたい操作を一つ決めて設定します。この記事は2026年9月22日の公式ドキュメントに基づく設定手順です。例のJSONは構文を確認していますが、個々の環境でのClaude Code実行結果を再現した画面ではありません。
この記事の目次
まず /permissions で現在の設定を見る
Claude Codeの入力欄へ /permissions と入力します。これはOSのターミナルへ直接打つコマンドではなく、起動中のClaude Codeで使うコマンドです。表示されたルールと、どの設定ファイルから読み込まれたかを確認します。
確認ダイアログが出た操作のツール名と実際のコマンドも控えます。たとえば npm test と npm run test は見た目が似ていますが、完全一致のルールでは別です。WindowsでPowerShellツールを使っているのにBashだけを設定しても、同じ扱いになるとは限りません。
| 項目 | 例 |
|---|---|
| 作業しているプロジェクト | 自分のテスト用フォルダー |
| 確認されるツール | Bash または PowerShell |
| 実際のコマンド | npm run test |
| 一致するルール | allow / ask / deny と保存先 |
いちばん簡単な直し方:確認画面で「今後確認しない」を選ぶ
コマンドの確認画面には、その場だけ許可する「Yes」のほかに、「Yes, and don't ask again」(今後このコマンドは確認しない)という選択肢が出ることがあります。これを選ぶと、Claude Codeがそのコマンドの許可ルールを自動で書き込み、以後の同じコマンドは確認なしで実行されます。
公式ドキュメントでは、保存先はGitリポジトリのルートにある .claude/settings.local.json で、同じリポジトリの別のサブフォルダーやworktreeから始めたセッションにも適用されるとあります(v2.1.211以降。Gitの外やWindowsでは別の場所に保存される場合があります)。ファイルの編集の許可は保存されず、そのセッションの終了までです。
確認画面にこの選択肢が出ないコマンドもあります。許可する範囲を画面で示しきれないときは、その場だけの許可になるので、必要なら次の節以降の方法でルールを自分で書きます。
| 選択肢 | 効く範囲 |
|---|---|
| Yes(その場だけ許可) | その1回だけ |
| Yes, and don't ask again(コマンド・ドメイン) | そのリポジトリで以後ずっと。.claude/settings.local.json に保存 |
| Yes, and don't ask again(ファイルの編集) | そのセッションが終わるまで。ファイルには保存されない |
| No | 実行しない。Tabを押すと理由を添えられる(Bash・PowerShell・ファイル・MCPの確認画面) |
allow・ask・denyの違い
allowは、一致したツールの実行を手動確認なしで許可します。askは、実行する際に確認を求めます。denyは、その操作を拒否します。Claudeへの文章によるお願いと、この設定による実行制御は役割が異なります。
複数のルールが一致すると、deny、ask、allowの順で判定されます。細かいallowがあるから広いdenyに勝つ、という仕組みではありません。たとえばBash全体を拒否している場合、特定のテストだけallowへ追加しても実行できません。
もう一つの注意点は、ツール名だけのdeny(例:Bash)です。公式ドキュメントでは、ツール名だけを拒否するとそのツール自体がClaudeから見えなくなります。特定の操作だけを止めたいときは Bash(rm *) のように範囲を付けます。
| 一致したルール | 結果 |
|---|---|
| allowだけ | 確認なしで許可 |
| allowとask | 確認する |
| allowとdeny | 拒否する |
| askとdeny | 拒否する |
設定ファイルは、使う範囲で選ぶ
自分だけで一つのプロジェクトへ試す場合は、.claude/settings.local.json が候補になります。チームで共有する設定は .claude/settings.json、自分の全プロジェクトに使う設定はホームフォルダーの .claude/settings.json です。
既存ファイルを丸ごと例で上書きすると、ほかの必要な設定まで消えます。変更前の内容を保存し、permissionsの対象項目だけ追加します。Gitの作業ツリーや起動位置によって保存先に違いがあるため、最後は /permissions の設定元表示で確かめます。
| ファイル | 主な用途 |
|---|---|
| .claude/settings.local.json | そのプロジェクトで自分だけ使う |
| .claude/settings.json | プロジェクトの共有設定 |
| ホームの .claude/settings.json | 自分の複数プロジェクトで使う |
必要なテストだけを許可する例
次は、内容を確認済みの npm run test だけをBashから実行できるようにする設定例です。Webへの送信や公開まで広げるルールは含めていません。実際には既存のpermissionsへ統合して使います。
npmのスクリプト名がtestでも、中身に外部送信などが書かれていればその処理が動きます。先にpackage.jsonのscriptsと、そこから呼ばれる処理を確認してください。知らないリポジトリのコマンドを、名前だけで許可しないことが大切です。
WindowsでPowerShellツールを使う場合の書き方
Windowsで確認画面のツール名がPowerShellなら、ルールもPowerShell用に書きます。書き方はBashと同じ形で、公式ドキュメントの例では PowerShell(Get-ChildItem *) のようにコマンドと * を組み合わせます。よく使う別名(ls・dir・gci など)は正式なコマンドレット名に正規化してから照合され、大文字小文字は区別されません。
「;」「|」や、PowerShell 7以降の「&&」「||」でつないだ複合コマンドは、それぞれの部分がルールに一致しないと許可されません。npm run test だけを許可するなら、次のように書きます。
ワイルドカードと秘密ファイルの扱いを確認する
アスタリスクは、可変の文字列に一致させる記号です。Bash(npm run test)は完全一致、Bash(npm run *)は別のスクリプトも対象になります。testだけのつもりがdeployまで含まれないか、許可する範囲を言葉で説明できる状態にします。
Read(./.env)をdenyへ入れると、対応するReadツールの読み取りを止められます。ただし、許可した別のプログラムがファイルを読む経路まで、OSの権限として一律に止める設定ではありません。機密情報を扱う環境では、ファイルを置く場所やサンドボックスなど、実行環境の制限も併せて設計します。
確認を減らすために権限モードを変える方法もありますが、最初から確認をすべて省く設定にする必要はありません。まず今困っている一つの操作へ範囲を絞ると、設定が合っているか検証しやすくなります。
末尾の「 *」は「:*」と書いても同じです。「&&」「;」「|」でつないだコマンドは部分ごとに照合されるので、Bash(npm run *) を許可しても npm run test && git push はそのままでは通りません。timeout や nice などの決まった前置きは取り除いてから照合されます。
| 書き方 | 一致する | 一致しない |
|---|---|---|
| Bash(npm run build) | npm run build | npm run build --watch |
| Bash(npm run *) | npm run build、npm run test --watch、npm run | npm install |
| Bash(git log * main) | git log --oneline main | git log main、git push origin main |
| Bash(ls *) | ls -la、ls | lsof(* の前の空白も一致条件) |
| Bash(ls*) | ls -la、lsof | — |
変更後は、期待した動作を一つずつ確かめる
設定を保存したら /permissions を開き、追加したルールが正しいファイルから読み込まれていることを確認します。その後、内容を確認したテストを一度実行します。確認が残るなら、表示されたコマンドを例と見比べます。
別のコマンドまで許可していないかは、破壊的な処理を試すのではなく、ルールの一致範囲と設定一覧で確認します。実行試験は、データを持たないテスト用プロジェクトで、害のない操作を使います。
元へ戻す場合は、今回追加したルールだけを削除し、設定一覧から消えたことを確認してください。ほかのユーザーが追加した設定や、以前から使っていたルールは残します。
- 実際のツール名とコマンドを確認した
- テストスクリプトの中身を確認した
- 設定元に今回のファイルが表示された
- ask・denyとの重複を確認した
- 追加箇所だけを戻せるように保存した
よくあるつまずきを、原因別に直す
設定が読まれない場合は、ファイル名、JSONの括弧やカンマ、起動したプロジェクトを確認します。ルールが見えているのに止まるなら、優先されるask・denyや組織設定を調べます。
確認が出ない環境や、確認を減らしたい場合は権限モードも関係します。既定は default(画面では Manual と表示)で、ツールごとに最初の使用時に確認します。acceptEdits はファイル編集と mkdir などを自動で許可、plan は読み取りだけ、auto は安全性の自動チェック付きで自動承認、dontAsk は確認が必要な操作をすべて自動で拒否、bypassPermissions は確認を省きます。名前から「dontAsk=何でも実行」と読み違えないでください。起動時のモードは設定ファイルの permissions.defaultMode で変えられます。
権限設定に加えて、Gitやアプリ開発の進め方も順に学びたい方には、Claude Codeを題材にした入門書があります。出版社の目次で、権限ルールと設定の確認を扱うことを確認して選びました。
| モード | 動き |
|---|---|
| default(Manual) | 各ツールの最初の使用時に確認する |
| acceptEdits | ファイル編集と mkdir・mv・cp などを作業フォルダー内で自動許可 |
| plan | 読み取りと読み取り専用コマンドだけ。ファイルは編集しない |
| auto | 依頼に沿うかを自動で検査して承認する |
| dontAsk | 確認が必要な操作は自動で拒否。allowで許可済みの操作は動く |
| bypassPermissions | 確認を省く。隔離した環境向け |
権限が決まったら、変更内容をレビューする
確認が減っても、できあがったコードの正しさは別に確かめます。Claude Codeのコードレビュー手順では、指摘を実際の入力とテストで確認する方法を説明しています。
複数のAIを使う場合は、CodexとClaude Codeの引き継ぎ方で、作業対象やテスト結果を短いメモへ残す方法も確認できます。
よくある疑問を、ここで。
使い始める前に、気になるところから。
allowに入れても確認が出るのはなぜですか?
askが一致している、別のコマンドを実行している、設定元が違うなどが考えられます。/permissionsで適用されたルールと設定元を確認します。deny→ask→allowの順で判定され、細かいallowが広いdenyやaskに勝つことはありません。
CLAUDE.mdへ「許可する」と書けば設定できますか?
CLAUDE.mdはAIへの指示で、ツールの実行権限を変更する設定ではありません。権限は/permissionsや設定ファイルで管理します。
Bashの例をWindowsでそのまま使えますか?
実際にBashツールを使うか、PowerShellツールを使うかで設定対象が異なります。確認表示に出るツール名とコマンドを先に確かめてください。
この記事を共有する
商品情報の提供:Supported by Rakuten Developers
出典と、この記事について
公式資料や、記事で参照した発表・報道をまとめています。仕様や料金は、利用する前に最新の案内をご確認ください。
確認した内容と条件は本文に記載しています。結果や使い勝手は、資料や環境によって異なります。編集方針を読む




ぜひコメントください