この記事には楽天アフィリエイトの広告を含みます。 Amazonのアソシエイトとして、PROBEFOLIOは適格販売により収入を得ています。

Claude Codeの権限設定は、ファイルの読み書きやコマンドの実行を、確認なしで許可するか、その都度確認するか、拒否するか決める仕組みです。毎回同じテストで止まる場合は、そのテストだけを許可するルールを作れます。

最初に現在のルールを確認し、変えたい操作を一つ決めて設定します。この記事は2026年9月22日の公式ドキュメントに基づく設定手順です。例のJSONは構文を確認していますが、個々の環境でのClaude Code実行結果を再現した画面ではありません。

この記事の目次
01

まず /permissions で現在の設定を見る

Claude Codeの入力欄へ /permissions と入力します。これはOSのターミナルへ直接打つコマンドではなく、起動中のClaude Codeで使うコマンドです。表示されたルールと、どの設定ファイルから読み込まれたかを確認します。

確認ダイアログが出た操作のツール名と実際のコマンドも控えます。たとえば npm test と npm run test は見た目が似ていますが、完全一致のルールでは別です。WindowsでPowerShellツールを使っているのにBashだけを設定しても、同じ扱いになるとは限りません。

控える項目
項目例
作業しているプロジェクト自分のテスト用フォルダー
確認されるツールBash または PowerShell
実際のコマンドnpm run test
一致するルールallow / ask / deny と保存先
02

いちばん簡単な直し方:確認画面で「今後確認しない」を選ぶ

コマンドの確認画面には、その場だけ許可する「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の確認画面)
03

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拒否する
04

設定ファイルは、使う範囲で選ぶ

自分だけで一つのプロジェクトへ試す場合は、.claude/settings.local.json が候補になります。チームで共有する設定は .claude/settings.json、自分の全プロジェクトに使う設定はホームフォルダーの .claude/settings.json です。

既存ファイルを丸ごと例で上書きすると、ほかの必要な設定まで消えます。変更前の内容を保存し、permissionsの対象項目だけ追加します。Gitの作業ツリーや起動位置によって保存先に違いがあるため、最後は /permissions の設定元表示で確かめます。

主な保存先
ファイル主な用途
.claude/settings.local.jsonそのプロジェクトで自分だけ使う
.claude/settings.jsonプロジェクトの共有設定
ホームの .claude/settings.json自分の複数プロジェクトで使う
05

必要なテストだけを許可する例

次は、内容を確認済みの npm run test だけをBashから実行できるようにする設定例です。Webへの送信や公開まで広げるルールは含めていません。実際には既存のpermissionsへ統合して使います。

npmのスクリプト名がtestでも、中身に外部送信などが書かれていればその処理が動きます。先にpackage.jsonのscriptsと、そこから呼ばれる処理を確認してください。知らないリポジトリのコマンドを、名前だけで許可しないことが大切です。

06

WindowsでPowerShellツールを使う場合の書き方

Windowsで確認画面のツール名がPowerShellなら、ルールもPowerShell用に書きます。書き方はBashと同じ形で、公式ドキュメントの例では PowerShell(Get-ChildItem *) のようにコマンドと * を組み合わせます。よく使う別名(ls・dir・gci など)は正式なコマンドレット名に正規化してから照合され、大文字小文字は区別されません。

「;」「|」や、PowerShell 7以降の「&&」「||」でつないだ複合コマンドは、それぞれの部分がルールに一致しないと許可されません。npm run test だけを許可するなら、次のように書きます。

07

ワイルドカードと秘密ファイルの扱いを確認する

アスタリスクは、可変の文字列に一致させる記号です。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 buildnpm run build --watch
Bash(npm run *)npm run build、npm run test --watch、npm runnpm install
Bash(git log * main)git log --oneline maingit log main、git push origin main
Bash(ls *)ls -la、lslsof(* の前の空白も一致条件)
Bash(ls*)ls -la、lsof—
08

変更後は、期待した動作を一つずつ確かめる

設定を保存したら /permissions を開き、追加したルールが正しいファイルから読み込まれていることを確認します。その後、内容を確認したテストを一度実行します。確認が残るなら、表示されたコマンドを例と見比べます。

別のコマンドまで許可していないかは、破壊的な処理を試すのではなく、ルールの一致範囲と設定一覧で確認します。実行試験は、データを持たないテスト用プロジェクトで、害のない操作を使います。

元へ戻す場合は、今回追加したルールだけを削除し、設定一覧から消えたことを確認してください。ほかのユーザーが追加した設定や、以前から使っていたルールは残します。

  • 実際のツール名とコマンドを確認した
  • テストスクリプトの中身を確認した
  • 設定元に今回のファイルが表示された
  • ask・denyとの重複を確認した
  • 追加箇所だけを戻せるように保存した
09

よくあるつまずきを、原因別に直す

設定が読まれない場合は、ファイル名、JSONの括弧やカンマ、起動したプロジェクトを確認します。ルールが見えているのに止まるなら、優先されるask・denyや組織設定を調べます。

確認が出ない環境や、確認を減らしたい場合は権限モードも関係します。既定は default(画面では Manual と表示)で、ツールごとに最初の使用時に確認します。acceptEdits はファイル編集と mkdir などを自動で許可、plan は読み取りだけ、auto は安全性の自動チェック付きで自動承認、dontAsk は確認が必要な操作をすべて自動で拒否、bypassPermissions は確認を省きます。名前から「dontAsk=何でも実行」と読み違えないでください。起動時のモードは設定ファイルの permissions.defaultMode で変えられます。

権限設定に加えて、Gitやアプリ開発の進め方も順に学びたい方には、Claude Codeを題材にした入門書があります。出版社の目次で、権限ルールと設定の確認を扱うことを確認して選びました。

権限モードの違い(2026年9月22日の公式ドキュメント)
モード動き
default(Manual)各ツールの最初の使用時に確認する
acceptEditsファイル編集と mkdir・mv・cp などを作業フォルダー内で自動許可
plan読み取りと読み取り専用コマンドだけ。ファイルは編集しない
auto依頼に沿うかを自動で検査して承認する
dontAsk確認が必要な操作は自動で拒否。allowで許可済みの操作は動く
bypassPermissions確認を省く。隔離した環境向け
10

権限が決まったら、変更内容をレビューする

確認が減っても、できあがったコードの正しさは別に確かめます。Claude Codeのコードレビュー手順では、指摘を実際の入力とテストで確認する方法を説明しています。

複数のAIを使う場合は、CodexとClaude Codeの引き継ぎ方で、作業対象やテスト結果を短いメモへ残す方法も確認できます。

QUICK ANSWERS

よくある疑問を、ここで。

使い始める前に、気になるところから。

allowに入れても確認が出るのはなぜですか?

askが一致している、別のコマンドを実行している、設定元が違うなどが考えられます。/permissionsで適用されたルールと設定元を確認します。deny→ask→allowの順で判定され、細かいallowが広いdenyやaskに勝つことはありません。

CLAUDE.mdへ「許可する」と書けば設定できますか?

CLAUDE.mdはAIへの指示で、ツールの実行権限を変更する設定ではありません。権限は/permissionsや設定ファイルで管理します。

Bashの例をWindowsでそのまま使えますか?

実際にBashツールを使うか、PowerShellツールを使うかで設定対象が異なります。確認表示に出るツール名とコマンドを先に確かめてください。

この記事の内容をもとにした、編集部からの提案です。

この記事を共有する

X(旧Twitter)(新しいタブで開きます)LINE(新しいタブで開きます)はてなブックマーク(新しいタブで開きます)

商品情報の提供:Supported by Rakuten Developers

SOURCES & EDITORIAL NOTE

出典と、この記事について

公式資料や、記事で参照した発表・報道をまとめています。仕様や料金は、利用する前に最新の案内をご確認ください。

確認した内容と条件は本文に記載しています。結果や使い勝手は、資料や環境によって異なります。編集方針を読む