disableBypassPermissionsModeの設定手順

Claude Codeの権限設定と組織での利用禁止

執筆・編集:株式会社Nexa 編集部(下書きと機械検査はAI、公開前に人が確認)/約27分で読めます。公式ドキュメント・公式発表などの一次情報を確認したうえで執筆・更新しています。AIツールの仕様や料金は変わることがあるため、導入判断の前に各公式サイトの最新情報もご確認ください。記事の作り方と検査の方針

disableBypassPermissionsModeの値は”disable”です。代表的な置き場所は3通りで、組織で強制するならmanaged設定を使います。

  • 書き方: "permissions": { "disableBypassPermissionsMode": "disable" }(公式が定める値はtrueではなく"disable")
  • 置き場所: 各端末のmanaged-settings.json、またはclaude.aiの管理画面(Team・Enterprise)。自分の~/.claude/settings.jsonにも書ける
  • bypassPermissionsの位置づけ: 公式は、隔離したコンテナやVMでのみ使うよう案内している。確認を減らしたいだけなら、許可ルールやautoモードを先に検討する

対象読者: Claude Codeの権限設定を管理する情報システム担当者・開発者

今日やること: 現行の設定を確認し、不要なbypassPermissionsを外す。組織で使う場合は、disableBypassPermissionsModeを配布するかどうかを決める

確認日: 2026年10月2日に公式ページで確認。バージョン・実行環境による条件も本文に記載しています。

この記事の著者
株式会社Nexa 代表取締役川島 陸

一橋大学経済学部卒業後、フォーティエンスコンサルティング株式会社(旧 株式会社クニエ)にて法人向けAI導入支援等を経験。独立後、AI系メディア運営やDify/n8nの導入支援を経て、株式会社Nexaを創業。法人向けAI研修・AI導入支援・AI関連メディア運営を手掛ける。

Claude CodeのbypassPermissionsは、確認を省いてツールを実行する権限モードです。公式ドキュメントは、インターネットにつながらないコンテナやVMなど、隔離した環境でのみ使うよう案内しています。管理者がこのモードを禁止するには、permissions.disableBypassPermissionsModeに"disable"を設定します。本記事では、禁止する設定の書き方と置き場所を先に示し、続けて6つの権限モードの違い、CLIとVS Codeでの指定方法、使う場合の条件を、2026年10月2日に確認した公式ドキュメントに沿って解説します。

disableBypassPermissionsModeの書き方と置き場所

確認を省くモードを使えなくする設定は、次のとおりです。公式の設定リファレンスが定める値は、真偽値ではなく文字列の"disable"です。

{
  "permissions": {
    "disableBypassPermissionsMode": "disable"
  }
}

この設定が入っている間、Claude Codeは--dangerously-skip-permissionsフラグを拒否します。サブエージェントの定義にpermissionMode: bypassPermissionsと書かれていても無視され、サブエージェントは親セッションの権限モードで動きます(v2.1.223以降)。根拠は公式設定リファレンスです。

代表的な置き場所3通りの早見表

置き場所 具体的な場所 向いている場面
managed設定のファイル macOS: /Library/Application Support/ClaudeCode/managed-settings.json
Linux・WSL: /etc/claude-code/managed-settings.json
Windows: C:\Program Files\ClaudeCode\managed-settings.json
端末へファイルを配布できる組織
サーバー管理設定 claude.aiの管理画面「Admin Settings → Claude Code → Managed settings」にJSONで記述 端末管理の仕組みがない組織(Team・Enterpriseプラン。編集できるのはOwnerとPrimary Owner。配信対象の認証・接続条件あり)
自分の設定ファイル(個人用) ~/.claude/settings.json 個人が、自分で誤って使わないようにしておく場合

公式ドキュメントによると、この設定はどの設定ファイルに書いても働きます。ただし、組織の方針として強制する場合はmanaged設定に置きます。managed設定は、ユーザーやプロジェクトの設定、起動時のフラグでは上書きできないためです。このほか、macOSの構成プロファイル(com.anthropic.claudecode)や、Windowsのレジストリ(HKLM\SOFTWARE\Policies\ClaudeCode)で配布する方法もあります。

配布方法はmanaged設定の公式ガイドを参照してください。claude.aiからの配信には、Anthropic APIへの直接接続と対応する認証が必要です。別プロバイダーや独自の接続先では、同じ設定が自動配信されるとは限りません。詳しくはサーバー管理設定の配信条件で確認できます。

反映されたかを確認する方法

端末でClaude Codeを起動し、/statusを実行します。ファイルで配布した場合は、「Setting sources」の行にEnterprise managed settings (file)と表示されます。設定したのに確認を省くモードで起動できてしまう場合は、次の2点を確認してください。

  • 値が"disable"になっているか。公式が定める値はこの文字列だけで、trueと書いた場合の動作は公式ドキュメントに記載がありません
  • Windowsで旧パスのC:\ProgramData\ClaudeCode\managed-settings.jsonに置いていないか。公式は、このパスは読み込まないと明記しています

Claude Codeのpermission(パーミッション)とは

Claude CodeのManualモードは、ファイル編集や多くのシェルコマンド、ネットワーク操作の前に確認を求めます。読み取り専用操作や事前許可された操作などには例外があります。どの操作を確認なしで実行するかを決めるのが、権限モード(permission mode)です。

権限モードは土台にあたります。その上に許可ルール(allow・ask・deny)を重ねると、特定のツールやコマンドだけを許可したり禁止したりできます。通常の権限判定では、denyルールはbypassPermissionsを含むすべてのモードで効きます。判定順はdeny→ask→allowです。独自の判定を組み込むmod(拡張)の例外は、後半のHooks節で説明します。

6つのpermission modeの比較

2026年10月2日に確認した公式のモード一覧には、6つの権限モードが載っています。次の表は基本動作で、保護パスや明示的な確認ルールには例外があります。

モード 確認なしで実行される操作 公式が挙げる用途
default(画面の表示はManual) 読み取りのみ すべての操作を自分で確認したい作業
acceptEdits 読み取り、作業対象内のファイル編集、mkdir・mv・cpなどの一般的なファイル操作コマンド 変更をあとからまとめて確認する作業
plan 読み取りと調査。通常は計画承認まで編集をブロック(対話CLIでbypass利用可能な場合は例外) 変更する前にコードを調べる作業
auto 幅広い操作。シェルコマンドなどを別の分類モデルが審査し、不適切な操作を拒否する 長い作業、確認の回数を減らしたいとき
dontAsk 読み取りと、事前に許可した操作。確認が必要になる操作は拒否する 操作を固定したCIやスクリプト
bypassPermissions 原則すべて(明示的な拒否・確認などは残る) 隔離したコンテナやVMのみ

Planへの切り替えだけでは、bypassの危険を取り除けません。 対話CLIでbypassPermissionsが切り替え候補にある場合、Plan中も編集のブロックが適用されません。確認付きで調査したい場合は、bypassを有効にせず新しいセッションを起動してください。VS Codeのチャットパネルや-pなどの非対話実行では、Planのブロックが維持されます。

v2.1.283以降、ターミナルとVS Codeの対話セッションは、何も設定しなければautoで始まります。autoモードを使えない環境ではdefault(Manual)で始まります。claude -pによる非対話の実行はdefaultで始まります。

確認を減らしたいときは、まず必要な操作だけをallowで許可し、危険な操作をdenyで禁止します。bypassPermissionsは、インターネットから隔離され、認証情報や本番環境へ到達できないコンテナやVMなどに用途を限定してください。

Claude Codeの権限設定を、組織の禁止方針・開始モード・操作ごとのルールに分けた全体像
図1: 組織での禁止、開始モード、操作ごとのルールは役割が異なります。

--dangerously-skip-permissionsとbypassPermissionsの違い

この2つは別の機能ではありません。bypassPermissionsは権限モードの名前で、--dangerously-skip-permissionsはそのモードで起動するためのフラグです。公式のCLIリファレンスは、このフラグを--permission-mode bypassPermissionsと同等と説明しています。

  • --dangerously-skip-permissions: 起動時にコマンドラインで指定する。そのセッションだけ有効
  • "defaultMode": "bypassPermissions": 設定ファイルに書く。新しいセッションの開始モードになる
  • --allow-dangerously-skip-permissions: モードの切り替え候補に加えるだけで、起動時は別のモードで始まる

ターミナルの下部に⏵⏵ bypass permissions onと表示されていれば、そのセッションはbypassPermissionsモードです。Shift+Tabを押すと別のモードへ切り替わります。上のいずれかで有効にせずに起動したセッションから、途中でこのモードに入ることはできません。

bypassPermissionsでも確認・拒否される操作

「すべての確認が消える」わけではありません。公式ドキュメントは、次の動作を挙げています。

  • denyルールに一致する操作は、このモードでも実行されない
  • 明示的なaskルールに一致する操作は、確認が表示される
  • rm -rf /やrm -rf ~のように、重要なパスを対象にしたrm・rmdirは確認が表示される
  • allowルールは、このモードでは効果を持たない
  • LinuxとmacOSでは、通常はrootまたはsudoでの起動が拒否される。公式が認識するサンドボックス内では検査が省略される例外があるため、コンテナでも非rootユーザーで実行する

注意公式ドキュメントは、bypassPermissionsはプロンプトインジェクション(外部の文章に紛れた指示)や意図しない操作に対する保護を提供しない、と明記しています。.gitや.claudeなど、ほかのモードでは保護されるパスへの書き込みも、このモードでは確認なしで実行されます。

ターミナル(CLI)でのpermission設定方法

ターミナルからClaude Codeを使う場合、開始モードは起動時のフラグ、設定ファイル、組み込みの既定値の順に決まります。ただし、managed設定によるモード禁止は起動フラグでも解除できません。

起動時オプションで指定する方法(一時的な設定)

権限モードは--permission-modeフラグで指定します。指定できる値は、default・acceptEdits・plan・auto・dontAsk・bypassPermissionsと、defaultの別名のmanualです。

# 編集前に計画を確認する
claude --permission-mode plan

# 隔離したコンテナやVMの中で、確認を省いて起動する(次の2つは同じ意味)
claude --permission-mode bypassPermissions
claude --dangerously-skip-permissions

確認を省くモードで対話セッションを初めて起動すると、確認なしで行われる操作の責任を受け入れるかを尋ねる警告が表示されます。受け入れない場合、Claude Codeは終了します。

CIで決まった操作だけを実行したい場合は、確認を省くモードではなくdontAskと許可リストを組み合わせます。公式ドキュメントの例は次のとおりです。

claude -p "run the test suite" --permission-mode dontAsk --allowedTools "Bash(npm test)" "Read"

settings.jsonで開始モードを指定する方法

毎回同じモードで始めたい場合は、設定ファイルのpermissions.defaultModeに書きます。普段の開発で確認を減らす場合は、acceptEditsと許可ルールの組み合わせが向いています。

{
  "permissions": {
    "defaultMode": "acceptEdits",
    "allow": ["Bash(npm test *)"],
    "deny": ["Read(./.env)", "Read(./secrets/**)"]
  }
}

隔離したコンテナやVMの中で、毎回確認を省くモードで始める場合に限り、その環境の~/.claude/settings.jsonに次のように書きます。普段使うPCの設定ファイルには書かないでください。そのPCの各プロジェクトに開始モードの既定値として適用されます。ただし、より優先度の高い指定や組織の禁止設定があれば、そちらに従います。

{
  "permissions": {
    "defaultMode": "bypassPermissions"
  }
}

この値が効くのは、ユーザー設定(~/.claude/settings.json)、--settingsフラグ、managed設定に書いた場合です。プロジェクトの.claude/settings.jsonと.claude/settings.local.jsonに書いたbypassPermissionsは無効で、セッションはManual(default)で始まります(v2.1.257以降)。

Claude CodeのbypassPermissionsを起動フラグとユーザー設定で指定した場合の適用範囲の違い
図2: 起動フラグはそのセッション、ユーザー設定のdefaultModeは新しいセッションの初期値です。

既存の設定ファイルがある場合は、ファイル全体を上書きせず、permissionsの部分だけを書き足してください。現在のルールと、各ルールがどのファイルに由来するかは、Claude Code内で/permissionsを実行すると確認できます。

設定ファイルの優先度(どの設定が優先されるか)

Claude Codeの設定には複数の階層があり、同じキーが複数の場所にある場合は、優先度の高い階層の値が使われます。

優先度 設定場所 用途
1(最高) managed設定(ファイル、MDM、claude.aiの管理画面) 組織全体の方針
2 コマンドラインのフラグ そのセッションだけの上書き
3 .claude/settings.local.json(プロジェクト) そのプロジェクトでの個人設定
4 .claude/settings.json(プロジェクト) チームで共有する設定
5(最低) ~/.claude/settings.json(ユーザー) 自分の全プロジェクトに共通の設定

permissions.allowのようなリストは、1つのファイルの値に置き換わるのではなく、各ファイルの内容が合算されます。また、どこかの階層でdenyされた操作を、別の階層で許可することはできません。

優先順位の根拠は公式の設定階層です。Read(./.env)などの拒否ルールは、あらゆるプロセスの読み取りを遮断する仕組みではありません。Pythonなどが内部でファイルを開く操作までOSレベルで制限するには、サンドボックスによる隔離も必要です(Read・Editルールの適用範囲)。

「設定したのに効かない」場合は、managed設定でdisableBypassPermissionsModeが指定されていないか、値をプロジェクト側の設定ファイルに書いていないかを確認してください。


AI導入に関するお困りごとは、株式会社NexaのAI顧問がサポートします。「何から始めればいいか分からない」という段階からご相談いただけます。

AI顧問の無料相談はこちら →


VS Code拡張機能でのpermission設定方法

VS Code拡張機能では、入力欄の下にあるモード表示をクリックして権限モードを切り替えます。画面の表示名と設定値の対応は次のとおりです。

画面の表示 設定値
Manual default
Edit automatically acceptEdits
Plan plan
Auto auto
Bypass permissions bypassPermissions

claudeCode.initialPermissionModeの設定方法

新しい会話の開始モードを固定するには、VS Codeのユーザー設定でclaudeCode.initialPermissionModeを指定します。設定画面(Cmd+,またはCtrl+,)を開き、「Extensions → Claude Code」から設定できます。

{
  "claudeCode.initialPermissionMode": "acceptEdits"
}

指定できる値は、default・manual・acceptEdits・plan・bypassPermissionsです。autoは指定できません。また、VS Codeはこの設定をユーザー設定から読み込み、ワークスペース側(.vscode/settings.json)に書いた値は無視します(v2.1.225以降)。

拡張機能は、次の順で最初に当てはまったものを、新しい会話の開始モードにします。

  1. claudeCode.initialPermissionModeの値
  2. 前回モード表示から選んだモード(Manual・Edit automatically・Autoの場合。PlanとBypass permissionsは、選んだ会話だけに適用される)
  3. managed設定、または~/.claude/settings.jsonのpermissions.defaultMode(v2.1.283より前は、Pro・Max・Teamプランのみ)
  4. 組み込みの既定値

拡張機能は、プロジェクトの.claude/settings.jsonと.claude/settings.local.jsonを、開始モードの判定には使いません。起動用のラッパー(claudeCode.claudeProcessWrapper)を指定した場合、上の3・4も適用されません。1・2で選ばなければManualで始まります。設定項目はVS Code拡張の公式設定表で確認できます。

モード一覧に「Bypass permissions」が表示されない理由

モード一覧にBypass permissionsが出ないのは、不具合ではなく仕様です。拡張機能の設定にある「Allow dangerously skip permissions」を有効にしない限り、このモードは一覧に表示されません。既定値は無効です。

無効のまま、claudeCode.initialPermissionModeやpermissions.defaultModeにbypassPermissionsを指定しても、会話はManualで始まります。

公式ドキュメントは、この設定を「インターネットにつながらないサンドボックスでのみ使う」と説明しています。普段の開発に使うPCでは、無効のままにしてください。組織がdisableBypassPermissionsModeを配布している場合は、有効にしても確認を省くモードには入れません。

VS Code Remote SSH環境での注意点と確認手順

ここでは、VS Code Remote SSH環境で「設定したモードが反映されない」場合の確認手順を整理します。公式の設定仕様から整理した一般的な切り分けであり、自社の実測・実践事例ではありません。

VS Code Remote SSH機能とは、ローカルのVS Codeから別のマシン(Mac miniやLinuxサーバーなど)にSSH接続し、リモートマシン上でコードを編集・実行できる機能です。Claude Code拡張機能をこの環境で使うことで、自宅PCからオフィスのマシンや専用の開発サーバーを操作できます。

問題の症状:再接続後に毎回パーミッション確認が表示される

SSH Remote環境でClaude Codeを使っていると、次のような症状が出ることがあります。

  • 手元のPCの~/.claude/settings.jsonにbypassPermissionsを書いても、リモート側の会話に反映されない
  • VS Codeの設定にclaudeCode.initialPermissionMode: bypassPermissionsを追加しても、Manualで始まる
  • モード表示からBypass permissionsを選んでも、再接続して新しい会話を開くと元に戻る

原因:ローカルとリモートで設定ファイルが別々に管理される

1つ目の原因は、Claude Codeの設定ファイルがマシンごとに別々であることです。公式ドキュメントは、~/.claude/settings.jsonを「そのマシン上の全プロジェクトに適用される設定」と説明しています。

場所 設定ファイル 反映されるもの
ローカルマシン(自分のPC) ~/.claude/settings.json ローカルで動かすClaude Code
リモートマシン(Mac miniなど) ~/.claude/settings.json SSH経由で動かすClaude Code

VS Codeの公式ドキュメントによると、Remote SSHでは、テーマなど画面に関わるものを除き、ほとんどの拡張機能がSSHホスト側で動きます。Claude Codeがリモートマシン側で動く場合、読み込まれるのはリモートマシンの設定ファイルです。この実行場所の説明はVS Code公式のRemote SSHガイドに基づきます。確認したClaude CodeのVS Codeガイドでは、Remote SSH固有の設定解決手順までは確認できませんでした。拡張機能の実行場所を先に確認してください。

2つ目と3つ目の原因は、確認を省くモードに固有のものです。前の章のとおり、拡張機能では「Allow dangerously skip permissions」を有効にしない限り、設定にbypassPermissionsと書いてもManualで始まります。また、モード表示から選んだBypass permissionsは、その会話だけに適用され、次の会話には引き継がれません。

確認手順:実行場所と開始モードの優先順位を調べる

最初に、接続先のマシンが隔離した環境かどうかを確認します。常時稼働のMac miniや開発サーバーのように、インターネットや認証情報に到達できるマシンは、公式が案内する隔離環境に当たりません。そのようなマシンでは確認を省くモードを使わず、acceptEditsと許可ルールで確認の回数を減らします。

SSHでリモートマシンに接続して設定する:

# リモートマシンにSSH接続
ssh <リモートマシンのホスト名>

# .claudeフォルダが存在しない場合は作成
mkdir -p ~/.claude

# 既存の設定を確認(ファイルがあれば、上書きせずに書き足す)
cat ~/.claude/settings.json

リモートマシン側の~/.claude/settings.jsonに、次の内容を書き足します。

{
  "permissions": {
    "defaultMode": "acceptEdits",
    "allow": ["Bash(npm test *)"],
    "deny": ["Read(./.env)"]
  }
}

設定後に新しい会話を開き、モード表示がEdit automaticallyになっていれば開始モードを確認できます。表示だけでは、すべての許可・拒否ルールの適用まで確認したことにはなりません。以前にモード表示から別のモードを選んでいた場合は、そちらが優先されます。その場合は、VS Codeのユーザー設定でclaudeCode.initialPermissionModeをacceptEditsに固定してください。VS Code公式は、ローカルのユーザー設定がSSH接続中も使われ、ホスト別のRemote設定で上書きできると説明しています。ただし、initialPermissionModeはワークスペース値を無視するというClaude Code固有の条件も確認してください。

接続先が隔離したコンテナやVMで、確認を省くモードを使う場合:

  1. リモート側の~/.claude/settings.jsonに"defaultMode": "bypassPermissions"を書く(プロジェクト側の設定ファイルは無効)
  2. 拡張機能の設定で「Allow dangerously skip permissions」を有効にする
  3. /statusで設定の読み込み元を確認し、その設定内のdisableBypassPermissionsModeと組織方針を管理者に確認する(禁止の解除を目的に変更しない)

反映されると、VS Codeではモード表示がBypass permissionsになり、ターミナルでは下部に⏵⏵ bypass permissions onと表示されます。

bypassPermissionsを安全に使うための注意点

確認を省くモードでは、誤ったコマンドも、外部の文章に紛れた指示も、確認なしで実行されます。使う環境の条件と、組織での管理方法を整理します。

どんな環境で使うべきか

公式ドキュメントは、このモードを「インターネットにつながらないコンテナ、VM、dev containerなど、Claude Codeがホスト環境を壊せない隔離した環境でのみ使う」よう案内しています。公式のdev containerガイドは、到達できる情報の持ち出しを完全には防げないと説明しています。コンテナ内のClaude Code認証情報も対象です。また、ホストと共有した作業フォルダは変更できるため、「コンテナならホストに影響しない」とは判断できません。

bypassPermissionsを使う前のチェックリスト(公式の注意点を基にした本記事の運用判断):

  • [ ] 隔離した環境で動かす(コンテナ・VMなど、ホスト環境から切り離されている)
  • [ ] 外向きの通信を絞る(通信を止めるか、必要な宛先だけを許可している)
  • [ ] 重要な情報に届かない(本番用の認証情報や重要データを持ち込まない。利用に必要な認証情報の漏えいリスクは残る)
  • [ ] 一般ユーザーで実行する(root・sudoは使わない)
  • [ ] 変更を元に戻せる(作業対象をGitで管理している)

5項目のうち1つでも満たせない環境では、確認を省くモードを使わず、次の代替手段で確認の回数を減らしてください。

Claude CodeのbypassPermissions利用前に隔離・通信・重要情報・実行権限・復元方法を確認する図
図3: 5項目は運用判断用の確認事項であり、満たしても安全を保証するものではありません。

確認を減らしたいときの代替手段

確認の回数を減らす方法は、確認を省くモードだけではありません。

  • 許可ルール: よく使うコマンドだけをallowに登録し、触れてほしくないファイルをdenyに登録する
  • acceptEdits: ファイル編集と一般的なファイル操作コマンドを確認なしにし、それ以外のコマンドは確認する
  • auto: 別のモデルが実行前に操作を確認し、依頼の範囲を超える操作などを止める

公式ドキュメントが、確認を省くモードの代わりとして挙げているのはautoモードです。ただし、autoモードについても「確認を減らすが、安全を保証するものではない」と説明しています。機密性の高い操作では、確認を残してください。

企業・チームでの管理方法(managed-settings.json)

複数人がClaude Codeを使う組織では、managed設定で全体の方針を配布できます。managed設定は最も優先度が高く、ユーザーやプロジェクトの設定では上書きできません。

{
  "permissions": {
    "deny": [
      "Read(./.env)",
      "Read(./secrets/**)"
    ],
    "disableBypassPermissionsMode": "disable"
  }
}

この例は、指定した2つのパスパターンに一致する読み取りを権限ルールで拒否し、確認を省くモードを使えなくします。任意のプログラムによる読み取りまで完全に防ぐものではありません。ファイルの置き場所は、冒頭の表のとおりです。autoモードも使えないようにする場合は、permissions.disableAutoModeに"disable"を指定します。

1つのmanaged設定は、配布された全員に同じ内容で適用されます。一部のグループだけ方針を変えたい場合は、そのグループの端末に別のファイルやプロファイルを配布します。claude.aiの管理画面からの配布は、グループ単位の指定にまだ対応していません。

Hooksを使ったより細かい権限の制御

Hooksは、ツールの実行前後に自分のコマンドを実行する仕組みです。PreToolUseのhookは権限の確認より前に動き、ツールの呼び出しを拒否する(deny)、確認を表示する(ask)、確認を省いて通す(allow)などの判断を返せます。現在の公式リファレンスには、後で再開できるよう保留するdeferも記載されています。次は、公式Hooksリファレンスに載っている、rm -rfを含むコマンドを止める設定例です。

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "if": "Bash(rm *)",
            "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/block-rm.sh",
            "args": []
          }
        ]
      }
    ]
  }
}

呼び出されるスクリプト(.claude/hooks/block-rm.sh)は次のとおりです。jqのインストールと、chmod +xによる実行権限の付与が必要です。

#!/bin/bash
# .claude/hooks/block-rm.sh
COMMAND=$(jq -r '.tool_input.command')

if echo "$COMMAND" | grep -q 'rm -rf'; then
  jq -n '{
    hookSpecificOutput: {
      hookEventName: "PreToolUse",
      permissionDecision: "deny",
      permissionDecisionReason: "Destructive command blocked by hook"
    }
  }'
else
  exit 0  # no decision; normal permission flow applies
fi

hookが何も出力せずに終了コード0で終わった場合は、判断なしとして扱われ、通常の権限確認に進みます。また、hookがallowを返しても、denyルールとaskルールは引き続き評価されます。このサンプルはrm -rfという文字列の検知例で、すべての削除操作を防ぐ保証はありません。独自の権限判定を行うmodを導入した環境では、askや非managed hookの拒否を後から変更できる場合もあります。denyがmodに優先するかも管理設定・契約プランなどの条件で変わるため、公式のHooksとmodの判定順を確認してください。

\ AI活用の「次の一手」を一緒に考えませんか /

AI顧問の無料相談はこちら

よくある質問

Q. disableBypassPermissionsModeの値はtrueですか?

公式の設定リファレンスが定める値は、文字列の"disable"です。"permissions": { "disableBypassPermissionsMode": "disable" }と書きます。trueと書いた場合の動作は、公式ドキュメントに記載がありません。設定後は/statusで、managed設定が読み込まれているかを確認してください。

Q. 「bypass permissions on」と表示されるのは、どういう状態ですか?

ターミナルの下部に⏵⏵ bypass permissions onと表示されている間、そのセッションは確認を省くモード(bypassPermissions)で動いています。Shift+Tabを押すと別のモードへ切り替わります。意図せず表示される場合は、起動時のフラグや、~/.claude/settings.jsonのpermissions.defaultModeを確認してください。

Q. bypassPermissionsに設定したのにVS Codeで確認が出る場合は?

拡張機能の設定にある「Allow dangerously skip permissions」が無効のままだと、bypassPermissionsを指定しても会話はManualで始まります。あわせて、値を書いた場所も確認してください。開始モードとして読み込まれるのは、VS Codeのユーザー設定のclaudeCode.initialPermissionModeと、managed設定または~/.claude/settings.jsonのpermissions.defaultModeです。ワークスペース側の設定と、プロジェクトの.claude/settings.jsonは使われません。なお、公式はこのモードを、隔離した環境でのみ使うよう案内しています。

Q. SSH Remote接続後に設定がリセットされるのを防ぐには?

まず、Claude Codeがどのマシンで動いているかを確認してください。リモート側で動く場合は、そのマシンの~/.claude/settings.jsonを確認します。手元のPCにある同名ファイルとは別です。また、モード表示から選んだBypass permissionsとPlanは、その会話だけに適用されます。毎回同じモードで始めたい場合は、claudeCode.initialPermissionModeで固定します。

Q. --dangerously-skip-permissionsとsettings.jsonのbypassPermissionsは同じ効果か?

入るモードは同じです。公式のCLIリファレンスは、--dangerously-skip-permissionsを--permission-mode bypassPermissionsと同等と説明しています。違いは適用される範囲で、フラグはそのセッションだけ、settings.jsonのdefaultModeは新しいセッションの開始モードになります。どちらも、隔離したコンテナやVMでのみ使ってください。

Q. 企業でClaude Codeを使う場合、特定のユーザーだけbypassPermissionsを制限できるか?

managed設定に"disableBypassPermissionsMode": "disable"を書くと、配布された全員が確認を省くモードを使えなくなります。managed設定は、ユーザーが自分の設定ファイルや起動時のフラグで上書きできません。一部のグループだけを対象にする場合は、そのグループの端末に別のファイルやプロファイルを配布します。claude.aiの管理画面からの配布は、グループ単位の指定にまだ対応していません。

Q. 確認の回数を減らしたいだけの場合は、何を使えばよいですか?

まず、よく使うコマンドをallowルールに登録します。次に、ファイル編集を確認なしにするacceptEdits、実行前に別のモデルが安全性を確認するautoを検討します。公式ドキュメントも、確認を省くモードの代わりとしてautoモードを挙げています。

まとめ

Claude Codeの権限設定について、主要なポイントをまとめます。

  • 禁止する設定: permissions.disableBypassPermissionsModeに"disable"を指定し、組織ではmanaged設定に置く
  • ターミナル版: --dangerously-skip-permissionsは--permission-mode bypassPermissionsと同等。設定ファイルの値は、プロジェクト側に書いても無効
  • VS Code拡張版: 「Allow dangerously skip permissions」を有効にしない限り、Bypass permissionsは表示されず、Manualで始まる
  • SSH Remote版: ローカルではなく、Claude Codeの実行先マシンの~/.claude/settings.jsonと拡張機能の設定を確認する
  • セキュリティ: bypassPermissionsは、隔離したコンテナやVMでのみ使う。確認を減らしたいだけなら、許可ルール・acceptEdits・autoモードを使う

「設定したのに効かない」場合は、値を書いた場所、開始モードの優先順位、managed設定の有無を切り分けてください。まずは/statusと/permissionsで、現在読み込まれている設定を確認してください。


AI導入に関するお困りごとをサポートします

株式会社NexaのAI顧問は、ツール選定から業務への適用、社内定着までを月額制でサポートします。特定のツールに限らず、「AIをどう使えばいいか分からない」という段階からご相談いただけます。

AI顧問の詳細・無料相談はこちら →





この記事で参照した外部情報

  1. 公式設定リファレンスcode.claude.com
  2. managed設定の公式ガイドcode.claude.com
  3. サーバー管理設定の配信条件code.claude.com
  4. 公式のモード一覧code.claude.com
  5. CLIリファレンスcode.claude.com
  6. 公式の設定階層code.claude.com
  7. Read・Editルールの適用範囲code.claude.com
  8. VS Code拡張の公式設定表code.claude.com
  9. VS Code公式のRemote SSHガイドcode.visualstudio.com
  10. 公式のdev containerガイドcode.claude.com
  11. 公式Hooksリファレンスcode.claude.com
  12. 公式のHooksとmodの判定順code.claude.com

本文中でリンクしている外部ページの一覧です(自動生成)。最終確認日は本記事の最終更新日 2026-10-02 で、リンク先の内容はその後変わることがあります。

AI導入を検討中の方へ

AIの力で、ビジネスを次のステージへ

まずはお気軽にご相談ください。貴社に最適なAI活用プランをご提案します。