Claude CodeのPermission設定とは?使う利点や権限設定の方法も紹介
Claude CodeのPermission設定って何?
正直、毎回承認するの面倒…すべて許可しちゃダメなのかな…
Claude Codeを使い始め、コマンド実行やファイル編集のたびに求められる確認作業を面倒に感じている人は多いですよね。
ただ、確認しないまま勢いで実行許可を出していては、意図しない操作でファイルの削除や情報漏洩などのリスクが生じる可能性があります。
そこでこの記事ではClaude Codeの実行確認を担う、Permission設定の特徴を解説します。安全に使うおすすめ設定も紹介するので、ぜひ参考にしてください。
Claude Codeの特徴をおさらいしておきたい人は、次の記事を参考にしてください。

- 初心者には確認しながら実行できるdefaultモードがおすすめ
- settings.jsonを使えばPermission設定を永続化できる
- bypassPermissionsは信頼できる環境限定で使うべき設定
『ClaudeCodeに興味はあるけど、どうやって使えばいいんだろう…』
そんな方へ、
- ClaudeCodeに作業や仕事を任せる方法
- ClaudeCodeを使いこなすたった1つのコツ
- 業務効率化や収入獲得に活かすClaudeCodeの実演
を、無料のオンラインセミナーで凝縮してお伝えします!
パソコンはもちろん、スマホから気軽に参加OK。この時間が、あなたを変える大きなきっかけになりますよ。
Claude CodeのPermission設定とは

Claude Codeには、AIがどの操作を実行してよいかを制御するPermission(パーミッション)設定という仕組みがあります。
ファイルの読み書きやBashコマンドの実行など、システムに影響を与える操作には確認や許可が必要です。Permission設定を正しく理解することが、安全性を保ちながらClaude Codeを効率よく活用できます。
ここからは下記の2点に分けて、Permission設定の基本を解説します。
Permissionの必要性
Permission設定が必要な理由は、意図しない操作から開発環境を守るためです。
Claude Code、ユーザーの指示をもとにファイル編集やコマンド実行を支援できるツールです。そのため、設定によってはファイルの削除コマンドやネットワーク通信など、システムへ影響する操作も実行できます。
たとえば、プロジェクトのルートディレクトリで誤った削除コマンドを実行すると、重要なファイルが消える可能性があります。Permission設定は、そのような操作を実行する前に確認を求める安全装置です。
許可の範囲をあらかじめ決めておくことで、安全性を保ちながら開発効率を高められるのが特徴といえます。
Permissionの実行例
実際にClaude Codeを動かすと、次のような許可確認が表示されます。
```
Claude wants to run: npm install
Allow? [y/n]
```
このプロンプトは、AIが`npm install`を実行しようとした際に表示される確認画面です。
- y :実行を許可
- n :実行を拒否
このように、重要な操作を人間が確認できる仕組みによって、意図しないコマンド実行を防げます。この仕組みを自動化したり、特定のコマンドだけ許可したりするのがPermission設定の目的です。
使う前におさえたいPermissionの基礎用語

Permission設定を正しく使うには、関連する用語を把握しておく必要があります。用語を混同したまま設定すると、意図しない許可や拒否につながる可能性があります。
ここからは下記のPermission関連の基礎用語を、4つにまとめて解説します。
Permissionモードとは
Permissionモードとは、Claude Codeがどの操作で確認を求めるかを制御する設定です。
モードによって「毎回確認する」「一部のみ自動許可する」「確認を省略する」といった動作が変わります。
初期値であるdefaultモードでは、コマンド実行やファイル編集の前に確認プロンプトが表示されます。
作業効率を重視する場合は自動許可の範囲を広げることもできますが、安全性とのバランスを考えて設定することが重要です。
Bash許可
Bash許可とは、Claude CodeによるBashコマンドをどこまで許可するかを決める設定です。
開発作業では、ファイル操作やパッケージインストールなど、多くの処理がBashコマンドを通じて行われます。そのため、Permission設定の中でも特に重要な項目です。
たとえば、`git`や`npm`など特定のコマンドのみ許可、あるいはすべてのBash実行を拒否するといった細かい制御が可能です。必要なコマンドだけ許可することで、安全性を保ちながら開発を効率化できます。
`–permission-mode`フラグ
`–permission-mode`フラグは、Claude Codeの起動時にPermissionモードを指定するためのオプションです。
たとえば、次のような形式で使います。
```
claude --permission-mode default
claude --permission-mode bypassPermissions
```
設定ファイルを書き換えなくても、一時的に動作モードを変更できるのが特徴です。
「通常は安全重視で使い、特定の作業だけ自動許可に切り替える」といった使い分けに向いています。
permission-prompt
permission-promptとは、Claude Codeが操作前に表示する「許可確認プロンプト」のことです。
通常はターミナル上に番号付きの選択肢として表示され、ユーザーが矢印キーで選択してEnterで決定します(「Yes」「Yes, and don’t ask again」「No」などから選択)。Permissionモードによっては、この確認を自動化したり省略したりすることも可能です。
もし確認プロンプトが表示されない場合は、現在のPermissionモードや設定ファイルを確認しましょう。意図せず自動許可設定になっているケースもあります。
Claude Code・Permissionモードの種類
Claude Codeには複数のPermissionモードが用意されています。モードによって、どの操作を自動許可するかが変わるため、安全性と作業効率のバランスを考えて選ぶことが重要です。
ここからは下記のPermissionモードの種類を、6つにまとめて解説します。
default(標準)モード
default はClaude Codeの標準Permissionモードです。
ファイル編集やBashコマンド実行など、変更を伴う操作を行う際に確認プロンプトが表示されます。
初めてClaude Codeを使う人には、このモードが最もおすすめです。AIがどのような操作を実行しようとしているかを確認しながら使えます。
安全性が高い反面、確認回数が多くなる点はデメリットです。
acceptEdits(ファイル編集を自動許可)
acceptEditsは、ファイル編集系の操作を自動許可するモードです。
コード修正や新規ファイルの作成に加え、作業ディレクトリ内に限り
- mkdir
- touch
- mv
- cp
- rm
- rmdir
- sed
といったファイル操作系Bashコマンドも確認なしで実行されます。それ以外の一般的なBashコマンドには確認が入ります。
一方で、一般的なBashコマンド実行には確認が必要です。
リファクタリングやコード生成作業を効率化したい場面でよく使われます。
plan(読み取り専用)モード
plan は、コード解析や設計確認に特化した読み取り専用モードです。
Claude Codeはファイルの閲覧・分析や、調査目的のコマンド実行は行えますが、ソースコードの編集は行いません(コマンド実行時はdefaultモードと同様に確認プロンプトが表示されます)。「まずはコードベースを調査したい」あるいは「変更前に設計方針だけ相談したい」といった場面に向いています。
安全性が高いため、初めて触るプロジェクトでも安心して使えます。
dontAsk(未許可操作を自動拒否)
dontAsk は、事前に許可されていない操作を自動的に拒否するモードです。
通常のPermissionモードでは確認プロンプトが表示されますが、dontAskでは未許可操作を即座にブロックします。CI/CDや自動化環境のように「決められた操作しか実行させたくない」ケースに向いています。
事前に allow ルールを細かく設定しておく必要があるため、上級者向けのモードです。
bypassPermissions(全操作を自動許可)
bypassPermissionsは、Permission確認をスキップして操作を実行するモードです。
許可プロンプトがほぼ表示されなくなるため、長時間の自動作業を高速に進められます。ただし、安全確認を大幅に省略するため、利用は隔離環境や検証環境に限定することが鉄則です。
公式ドキュメントでも、コンテナやVM環境でのみ利用することが推奨されています。
auto(安全チェック付き自動実行)
auto は、自動化と安全性のバランスを取るためのモードです。
Claude Code側の安全チェックを利用しながら、多くの操作を自動実行できます。確認プロンプトを減らしつつ、危険性が高い操作のみチェックしたい場合に向いています。
長時間タスクやエージェント的な運用で利用されることが増えているモードです。
Claude Code・Permissionの設定方法

Permission設定を行う方法は主に3つあります。用途に合わせた設定方法を選ぶことで、効率的な開発環境を構築できます。
ここからは下記の設定方法を、3つにまとめて解説します。
`–permission-mode`フラグで実行時に指定する
最も手軽な方法は、Claude Codeの起動時に`–permission-mode`フラグを指定する方法です。
```
claude --permission-mode bypassPermissions
```
このコマンドで起動すると、そのセッションのみbypassPermissionsモードで動作します。
設定ファイルを書き換えずに一時的にモードを変更できるため、次のような場面で便利です。
- 一時的に自動化したい
- 特定タスクだけ高速化したい
- 動作確認を試したい
セッション終了後は元の設定に戻るため、危険な設定を常用しにくい点もメリットです。
お試しで動作を確認する際に活用しましょう。
settings.json`で永続設定する
毎回フラグを指定する手間を省きたい場合は、`settings.json`に設定を書き込む方法がおすすめです。
一般的には、次の場所に設定ファイルを配置します。
```
~/.claude/settings.json # ユーザー全体の設定
.claude/settings.json # プロジェクト固有の設定(プロジェクトルート)
```
記述例は次の通りです。
```json
{
"permissions": {
"defaultMode": "acceptEdits",
"allow": [
"Bash(git:*)",
"Bash(npm:*)"
],
"deny": [
"Bash(rm -rf:*)",
"Bash(sudo:*)"
]
}
}
```
この例では、以下の設定になっています。
- ファイル編集を自動許可
- git と npm 系コマンドを許可
- 危険な削除コマンドや sudo を拒否
Permissionルールを保存しておくことで、毎回確認する手間を減らしながら、安全性も維持できます。
なお、Claude Codeはアップデートによって設定キーが変更される場合があるため、最新仕様は公式ドキュメントも確認しましょう。
プロジェクトごとに設定を分ける
プロジェクト単位でPermission設定を切り替えることも可能です。
プロジェクトのルートに`.claude/settings.json`を配置すると、そのプロジェクト専用のPermission設定として扱われます。
```
my-project/
├── .claude/
│ └── settings.json ← このプロジェクト専用の設定
└── src/
```
たとえば、以下のように使い分けられます。
- 本番系プロジェクト → default や plan
- 検証用プロジェクト → acceptEdits
- 自動化環境 → auto
通常は、プロジェクト固有設定がユーザー全体設定より優先されます。チーム開発でも設定を共有しやすくなるため、リポジトリ単位でPermission設定を管理するケースも増えています。
Permission・Bash許可/拒否のカスタマイズ

allowとdenyを使ってBash許可ルールを調整することで、 Claude Codeの権限を細かく制御可能です。必要なコマンドだけを許可し、危険な操作を制限することで、安全性を保ちながら作業効率を高められます。
ここからは下記のカスタマイズ方法を、3つにまとめて解説します。
コマンドを個別許可する書き方
特定のコマンドだけを自動許可したい場合は、`settings.json`の`allow`ルールに追加します。
```json
{
"permissions": {
"allow": [
"Bash(git:*)",
"Bash(ls:*)",
"Bash(npm install)"
]
}
}
```
この例では、以下を設定しています。
- Bash(git:*) → gitから始まるコマンドを許可
- Bash(ls:*) → ls系コマンドを許可
- Bash(npm install) → npm installのみ許可
ワイルドカード(`*`)を活用することで、複数のサブコマンドをまとめて許可可能です。よく使う安全なコマンドを事前に登録しておくと、確認プロンプトを減らせるため作業効率が向上します。
危険なコマンドを制限する
リスクが高い操作については、denyルールで明示的に制限しておくと安全です。
```json
{
"permissions": {
"deny": [
"Bash(rm -rf:*)",
"Bash(sudo:*)",
"Bash(chmod 777:*)"
]
}
}
```
たとえば、以下は誤実行時の影響が大きいコマンドです。
- rm -rf → ファイルやディレクトリを強制削除
- sudo → 管理者権限で実行
- chmod 777 → 危険な権限変更
また、必要に応じて curl や wget などのネットワーク系コマンドを制限するケースもあります。
とくに、本番環境や社内システムを扱う場合は、外部通信を慎重に管理することが重要です。
セキュリティリスクを避ける考え方
Permission設定では「必要最小限だけ許可する」という考え方が基本です。
最初から広範囲を自動許可するのではなく、次の流れで調整すると、安全に運用しやすくなります。
- まずは default モードで使う
- 頻繁に許可している安全な操作を確認する
- 必要なものだけ allow に追加する
また、以下のようにプロジェクトの重要度に応じてモードを変えることにより安全性と効率を両立できます。
- 本番系プロジェクト → defaultやplan
- 検証環境 → acceptEdits
- 自動化環境 → auto
とくに、破壊的操作はdenyルールで事前に制限しておくと安心です。
Claude Codeのおすすめ設定を詳しく知りたい人は、次の記事を参考にしてください。

Claude Code・Permissionのおすすめ設定

Claude CodeのPermission設定は、用途に応じて使い分けるのがおすすめです。
安全性を優先するか、作業効率を重視するかによって最適な設定は変わります。
ここからは下記のおすすめ設定を、3つにまとめて解説します。
安全性重視:defaultで確認しながら使う
Claude Codeを初めて使う人や、重要なプロジェクトを扱う場合は、defaultモードを使うのがおすすめです。
```json
{
"permissions": {
"defaultMode": "default",
"deny": [
"Bash(rm -rf:*)",
"Bash(sudo:*)"
]
}
}
```
この設定では、重要な操作ごとに確認プロンプトが表示されます。
確認回数は増えますが、以下のようなメリットがあります。
- AIがどのような操作を提案しているか把握できる
- 意図しないコマンド実行を防ぎやすい
- Permission設定に慣れやすい
とくに`rm -rf`や`sudo`はdenyリストに入れておくことで、万が一AIが誤ったコマンドを提案しても自動的にブロックされます。安全性を最優先にしたい人向けの設定です。
開発効率重視:ファイル編集のみ自動化
「コード編集は自動化したいが、コマンド実行は自分で確認したい」という人には、acceptEditsモードが向いています。
```json
{
"permissions": {
"defaultMode": "acceptEdits",
"allow": [
"Bash(git status:*)",
"Bash(git diff:*)",
"Bash(ls:*)"
],
"deny": [
"Bash(rm -rf:*)",
"Bash(sudo:*)",
"Bash(curl:*)"
]
}
}
```
この設定では、以下の運用が可能です。
- ファイル編集やコード生成は自動化
- Bashコマンドは必要に応じて確認
- git や ls など安全な操作は自動許可
とくに、リファクタリングやコード修正を頻繁に行う場合に便利です。安全性と効率のバランスを取りやすいため、多くの開発者にとって扱いやすい設定といえます。
全操作を自動化する際の注意点
bypassPermissionsを使うとPermission確認を大幅に省略できます。
```json
{
"permissions": {
"defaultMode": "bypassPermissions"
}
}
```
長時間の自動タスクを高速に実行できる一方で、安全確認が少なくなるため注意が必要です。
利用する際は、少なくとも次の条件を満たしていることが望ましいです。
- 実行内容を理解している
- 影響範囲を把握している
- 本番環境ではない
- コンテナやVMなど隔離環境を利用している
とくに、本番環境や共有開発環境での利用は慎重に判断しましょう。
また、.claude/settings.json をそのままリポジトリ共有すると、他メンバーにも強いPermission設定が適用される可能性があります。
そのため、チーム開発では共有設定にbypassPermissionsを含めない運用が安全です。
Claude CodeのPermission設定によく抱く疑問

Permission設定を使い始めると「設定はどこまで分けられるのか」「確認プロンプトが出ないのはなぜか」などの疑問が生じることがあります。事前によくある疑問への答えを事前に知っておくと、設定時のつまずきを防げます。
ここからは下記のよくある疑問を、4つにまとめて解説します。
プロジェクトごとに設定は分けられる?
プロジェクトごとに異なるPermission設定を適用可能です。
プロジェクトのルートディレクトリに`.claude/settings.json`を配置すると、そのプロジェクト専用の設定として扱われます。
```
project-a/
├── .claude/
│ └── settings.json ← defaultモード(本番に近い重要プロジェクト)
project-b/
├── .claude/
│ └── settings.json ← acceptEdits(実験用プロジェクト)
```
通常は、プロジェクト設定がユーザー全体設定より優先されます。プロジェクトの重要度に応じてモードを変える運用が、実務では最も安全で効率的な管理方法です。
許可設定は後から変更できる?
Permission設定はいつでも変更できます。
`settings.json`を直接編集するか、起動時の–permission-modeを変更するだけで即座に反映されます。設定ファイルを保存した後、次回Claude Codeを起動した時点から新しい設定が適用されます。
実行中のセッションには変更が反映されない点に注意が必要です。設定を変えたら一度Claude Codeを終了して、再起動することで確実に新しい設定が読み込まれます。
`permission-prompt`が表示されないときは?
確認プロンプト(permission-prompt)が表示されない場合は、現在のPermissionモードを確認しましょう。
bypassPermissionsやacceptEditsでは、一部またはすべての確認が自動化されるため、プロンプトが表示されない場合があります。
設定確認の例は次の通りです。
```
cat ~/.claude/settings.json
cat .claude/settings.json
```
意図せず自動許可モードになっている場合は、`settings.json`の`defaultMode`を`default`に変更することで確認プロンプトが表示されやすくなります。プロジェクト設定とユーザー設定の両方を確認するのを忘れないようにしましょう。
チームでの設定を共有するには?
チーム開発でPermission設定を共有するには、プロジェクトのルートに`.claude/settings.json`を配置してGitで管理する方法がおすすめです。
```
my-project/
├── .claude/
│ └── settings.json ← チーム共通設定をコミット
├── src/
└── package.json
```
これにより、チーム全体で共通のPermissionルールを利用できます。
ただし、bypassPermissionsのような強い自動化設定を共有設定へ含めるのは慎重に判断しましょう。共有設定では、defaultモードやacceptEditsモードを基本にするのが原則です。
個人的な設定(特定の人だけ自動化したいなど)は、ユーザー設定ファイル(`~/.claude/settings.json`)で管理し、Gitには含めない運用が安全です。チームの`.gitignore`に個人設定のパスを追加しておくと管理しやすくなります。
まとめ
この記事では、Claude CodeのPermission設定の仕組みと使い方を解説しました。
Claude Codeでは、Permission設定によってAIが実行できる操作を制御できます。特に初心者のうちは、確認プロンプトを表示しながら操作できる default モードを使うのがおすすめです。
一方で、bypassPermissions のような強力な自動化モードは便利ですが、安全確認が大幅に省略されるため、検証環境や隔離環境など信頼できる環境でのみ利用するのが基本です。チーム開発では、共有設定に強い自動化設定を含めず、安全性を優先したPermission設計を心がけましょう。
まずは default モードでClaude Codeに慣れ、よく使う安全な操作だけを少しずつ自動化していくのがおすすめです。
