AI・Claude Code

【Claude Code】–dangerously-skip-permissionsとは?確認をスキップする方法と危険性、auto modeとの違い、禁止する設定

Claude Codeの--dangerously-skip-permissionsは、ファイルの編集やコマンドの実行の前に出る権限確認(「実行してよいですか?」の確認)をすべてスキップするオプションです。

確認が多くて作業が止まるのが面倒で、このオプションを調べている人も多いと思います。ただ、今のClaude Codeには、確認を大きく減らしつつ危険な操作だけを止めるauto modeがあり、ターミナルではこれが最初から有効になっています。この記事では、--dangerously-skip-permissionsの使い方と危険性、代わりの方法、チームで使えないようにする設定をまとめます。

この記事の内容は、2026年10月時点のClaude Codeの公式ドキュメント(権限モード、設定、管理設定のページ)で確認しています。Claude Codeは更新が速いので、細かい挙動は公式ドキュメントもあわせて確認してください。

先に結論

やりたいこと おすすめ
確認を減らして、作業を止めずに進めたい auto mode(ターミナルでは最初から有効。Shift+Tabで切り替え)
ファイルの編集だけ確認なしにしたい acceptEdits(Shift+Tabで切り替え)
よく使うコマンドだけ確認なしにしたい 許可ルール(/permissionsで追加)
コンテナの中で、完全に放置して動かしたい --dangerously-skip-permissions
チームや会社で使えないようにしたい permissions.disableBypassPermissionsModeを"disable"に

--dangerously-skip-permissionsは、公式ドキュメントで「コンテナやVMなど、隔離された環境でだけ使う」とされています。普段の手元の開発で確認を減らしたいだけなら、auto modeを使うのが安全です。

–dangerously-skip-permissionsとは

Claude Codeには、どこまで確認なしで実行するかを決める権限モードがあります。--dangerously-skip-permissionsは、そのうちのbypassPermissionsモードで起動するオプションで、次のコマンドと同じ意味です。

claude --dangerously-skip-permissions
# 同じ意味
claude --permission-mode bypassPermissions

このモードでは、ファイルの編集、シェルのコマンド、ネットワークへのアクセスが、確認なしですぐに実行されます。.gitや.claude、.zshrcのような、通常は必ず確認が出る「保護されたパス」への書き込みも確認なしになります。

使うときの決まりは次のとおりです。

  • 最初の1回だけ警告が出ます。責任を負うことに同意すると、~/.claude/settings.jsonにskipDangerousModePermissionPrompt: trueが書き込まれ、次からは出なくなります。同意しないとClaude Codeは終了します
  • LinuxとmacOSでは、rootやsudoでは起動できません。「--dangerously-skip-permissions cannot be used with root/sudo privileges for security reasons」と表示されます(公式が認識するサンドボックスの中では、このチェックは省かれます)
  • 起動したあとから切り替えることはできません。起動時にこのオプションを付けるか、--allow-dangerously-skip-permissionsを付けて起動します。後者は、Shift+Tabで切り替えられる候補にbypassPermissionsを加えるだけで、最初からは有効にしません

それでも確認が出る・止まる操作

bypassPermissionsでも、すべてが素通りになるわけではありません。公式ドキュメントでは、次のものはこのモードでも止まるとされています。

  • 拒否ルール(permissions.deny)に当てはまる操作。拒否ルールは、bypassPermissionsを含むすべてのモードで効きます
  • 確認ルール(ask)に当てはまる操作。明示的に「毎回確認する」と決めたものは確認が出ます
  • 重要なパスを消すrm / rmdir。rm -rf /やrm -rf ~のような操作です。ターミナルでは2分のカウントダウン付きで確認が出て、答えなければ実行されません

逆に言うと、拒否ルールで決めていない操作は、どんなものでも確認なしで実行されます。

なぜ危険なのか

公式ドキュメントには、次のような注意書きがあります。

  • bypassPermissionsは、プロンプトインジェクションや意図しない操作を何も防がない
  • インターネットにつながらないコンテナやVM、dev containerなど、ホストに被害が出ない隔離された環境でだけ使う

具体的には、次のようなことが起こりえます。

  • Claudeが指示を取り違えて、必要なファイルを消す・上書きする
  • リモートのブランチを消す、本番のデータベースにつながるコマンドを実行する
  • 読み込んだREADMEやWebページに、Claudeを誘導する文(プロンプトインジェクション)が仕込まれていて、.envの中身などを外に送ってしまう

手元のMacやWindowsでそのまま使うと、Claudeが触れる範囲には、プロジェクトのコードだけでなく、ホームディレクトリの設定ファイルやSSHの鍵、クラウドの認証情報も含まれます。確認を飛ばすと、これらへの操作も止まらなくなります。

スポンサーリンク

確認を減らしたいだけなら:代わりの方法

auto mode(いちばんのおすすめ)

auto modeは、確認の代わりに、別のモデル(分類器)が操作をチェックするモードです。普段の操作は確認なしで進み、頼んだ範囲を超える操作や、知らない外部サービスへのアクセス、読み込んだ内容に誘導されたような操作だけが止められます。

Claude Code v2.1.283以降では、ターミナルとVS Codeで起動すると、最初からauto modeになります。ステータスバーに⏵⏵ auto mode onと出ていれば、すでにauto modeです。確認がたくさん出る場合は、Shift+Tabで切り替えてみてください。

# 明示的に auto mode で起動する
claude --permission-mode auto

auto modeを使うには、対応しているモデル(AnthropicのAPIではClaude Opus 4.6以降、Sonnet 4.6以降など)であることなどの条件があります。条件を満たさない場合は、確認が出る通常のモード(Manual)で起動します。

auto modeも、安全を保証するものではないと公式に書かれています。方向性を信頼できる作業に使い、重要な操作は自分で確認しましょう。

権限モードの比較

モード 確認なしで実行されるもの 向いている場面
default(Manual) 読み取りだけ すべて自分で確認したい
acceptEdits 読み取り、ファイルの編集、mkdirなどのよく使うファイル操作 編集内容をあとで見直す前提で進めたい
plan 読み取り(+auto modeが使えるときは分類器が許可したコマンド) 変更する前に調査と計画をしたい
auto すべて(裏で安全チェックあり) 長い作業、確認の多さを減らしたい
dontAsk 読み取りと、事前に許可したものだけ。それ以外は自動で拒否 CIやスクリプト
bypassPermissions すべて 隔離されたコンテナやVMだけ

ターミナルでは、Shift+Tabを押すたびにモードが切り替わります。

よく使うコマンドだけ許可する

「npm run testは毎回許可している」というようなコマンドは、許可ルールに入れておけば確認が出なくなります。/permissionsで追加するか、設定ファイルに書きます。

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

ルールは拒否 → 確認 → 許可の順に評価されます。拒否ルールに当てはまるものは、許可ルールがあっても実行されません。

どうしても使うなら:コンテナの中で

CIのように完全に無人で動かしたい場合は、公式ドキュメントでも--dangerously-skip-permissionsを使う例が載っています。その場合は、コンテナやVMの中で、rootではないユーザーで動かします。

claude -p "テストを実行して、失敗したものを直して" --dangerously-skip-permissions

公式には、Claude Codeをrootではないユーザーで動かすdev containerの設定例が用意されています。手元のPCで直接使うのではなく、こうした隔離された環境で使いましょう。

なお、決められたコマンドだけを実行させたいCIなら、--dangerously-skip-permissionsより、--permission-mode dontAskと許可するツールの指定を組み合わせるほうが安全です。

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

–dangerously-skip-permissionsを禁止する設定

チームや会社で使えないようにしたい場合は、設定ファイルでpermissions.disableBypassPermissionsModeを"disable"にします。permissionsの中に書くのがポイントです。

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

この設定は、どの設定ファイルに書いても効きます。

設定ファイル 場所 効く範囲
ユーザー設定 ~/.claude/settings.json 自分のPCのすべてのプロジェクト
プロジェクト設定 .claude/settings.json そのプロジェクト(Gitで共有できる)
ローカル設定 .claude/settings.local.json そのプロジェクトの自分だけ
管理設定 下の表を参照 そのPC全体。ほかの設定で上書きできない

本当に強制したい場合は、管理設定(managed settings)に置きます。管理設定は、ユーザーやプロジェクトの設定で上書きできません。ファイルを置く場所は次のとおりです。

OS 管理設定の場所
macOS /Library/Application Support/ClaudeCode/managed-settings.json
Linux / WSL /etc/claude-code/managed-settings.json
Windows C:\Program Files\ClaudeCode\managed-settings.json

公式ドキュメントにある管理設定の例は、.envなどの読み取りを拒否しつつ、bypassPermissionsを禁止するものです。

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

allowManagedPermissionRulesOnlyをtrueにすると、ユーザーやプロジェクトの設定に書かれた許可ルールが無視され、管理設定のルールだけが使われます。

この記事の以前の版では、disableBypassPermissionsModeをpermissionsの外(設定ファイルのいちばん上の階層)に書く例を載せていました。公式ドキュメントではpermissionsの中に書く形になっているので、修正しました。

auto modeもあわせて使えないようにしたい場合は、disableAutoModeを"disable"にします。

よくある質問

Q. 設定したのに –dangerously-skip-permissionsで起動できてしまいます

A. disableBypassPermissionsModeがpermissionsの中に書かれているかを確認してください。また、管理設定が置かれているPCでは、管理設定の内容が優先されます。

Q. 最初に出た警告をもう一度表示したいです

A. ~/.claude/settings.jsonのskipDangerousModePermissionPromptを消すか、falseにします。

Q. VS Codeの拡張機能でも使えますか?

A. 拡張機能の設定でAllow dangerously skip permissionsをオンにすると、モードの選択肢に「Bypass permissions」が出てきます。オフのままだと選べません。

Q. CLAUDE.mdに「確認せずに進めて」と書けばいいのでは?

A. 書いても権限確認はなくなりません。公式ドキュメントでも、権限のルールはClaude(モデル)ではなくClaude Codeが強制するもので、CLAUDE.mdの指示では変わらないとされています。確認を減らすには、権限モードか許可ルールを使います。

まとめ

  • --dangerously-skip-permissionsはbypassPermissionsモードで起動するオプション。すべての確認がスキップされる
  • それでも、拒否ルール・確認ルール・重要なパスのrmは止まる。逆にそれ以外は何でも実行される
  • 公式は隔離されたコンテナやVMでだけ使うよう案内している
  • 確認を減らしたいだけなら、auto mode(ターミナルでは最初から有効)、acceptEdits、許可ルールを使う
  • 禁止するなら、permissionsの中に"disableBypassPermissionsMode": "disable"。強制したいなら管理設定に置く

Claude Codeの導入方法や、ほかの設定については、こちらの記事にまとめています。

参考(公式ドキュメント・英語):

スポンサーリンク