背景
- 2025年06月23日リリースされた最新版のGoogle Colaboratoryで、Geminiが使えたりターミナルが使えたりするようになった
- そのターミナルでClaude Codeを動かしている人を見かけた
- ...なんの躊躇いもなくclaude --dangerously-skip-permissionをぶっ放すことができるのでは?
目的
- Google Colaboratory上でclaude --dangerously-skip-permissionを実行
対応内容
一番下に簡略化した手順を置いているので、細かい手順に興味ない人はスクロールしてどうぞ
1. ユーザー作成
- Rootユーザーでの
dangerously-skip-permissions
の指定はClaude Code側に禁止されているため、新規のユーザーを作成
# 新しいユーザー「claude-user」を作成
/content# useradd -m -s /bin/bash claude-user
- ユーザーがsudoを利用可能にする
# sudoグループに追加し、sudoを利用可能に
/content# usermod -aG sudo claude-user
# グループに追加されていることを確認
/content# id claude-user
uid=1000(claude-user) gid=1000(claude-user) groups=1000(claude-user),27(sudo)
2. Node.js環境をインストール
- 1.で作成したユーザーでログイン
/content# su - claude-user
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
- Node Version ManagerであるnvmをcURL経由でインストール
claude-user@1b58147a2993:~$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.4/install.sh | bash
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 15916 100 15916 0 0 182k 0 --:--:-- --:--:-- --:--:-- 182k
=> Downloading nvm from git to '/home/claude-user/.nvm'
=> Cloning into '/home/claude-user/.nvm'...
remote: Enumerating objects: 382, done.
remote: Counting objects: 100% (382/382), done.
remote: Compressing objects: 100% (325/325), done.
remote: Total 382 (delta 43), reused 179 (delta 29), pack-reused 0 (from 0)
Receiving objects: 100% (382/382), 385.93 KiB | 1.54 MiB/s, done.
Resolving deltas: 100% (43/43), done.
* (HEAD detached at FETCH_HEAD)
master
=> Compressing and cleaning up git repository
=> Appending nvm source string to /home/claude-user/.bashrc
=> Appending bash_completion source string to /home/claude-user/.bashrc
=> Close and reopen your terminal to start using nvm or run the following to use it now:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
- そのままだとセッションにnvmが認識されないので、以下を実行
# 最新の環境を現在のセッションに適用
claude-user@1b58147a2993:~$ source ~/.bashrc
# 確認
claude-user@1b58147a2993:~$ nvm -v
0.39.4
- 最新のNode.jsをインストール
claude-user@1b58147a2993:~$ nvm install --lts
Installing latest LTS version.
Downloading and installing node v22.17.0...
Downloading https://nodejs.org/dist/v22.17.0/node-v22.17.0-linux-x64.tar.xz...
############################################################################################################################### 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v22.17.0 (npm v10.9.2)
Creating default alias: default -> lts/* (-> v22.17.0)
# 確認
claude-user@1b58147a2993:~$ nvm use --lts
Now using node v22.17.0 (npm v10.9.2)
Claude Codeをセットアップ
- インストール
claude-user@1b58147a2993:~$ npm install -g @anthropic-ai/claude-code
added 3 packages in 3s
2 packages are looking for funding
run `npm fund` for details
npm notice
npm notice New major version of npm available! 10.9.2 -> 11.4.2
npm notice Changelog: https://github.com/npm/cli/releases/tag/v11.4.2
npm notice To update run: npm install -g npm@11.4.2
npm notice
- 起動
claude-user@1b58147a2993:~$ claude
- ここから先は画像の方が分かりやすいので画像で説明
標準のColaboの画面だとターミナルが超分かりにくいので、設定>サイト>モード>darkを推奨
- 色選択
- 認証方法
- 月額課金しているので1を選択すると、ブラウザを開こうとするがColabo上だからか開けず、代わりに認証用リンクを出してくれる
- リンクをローカルマシン上のブラウザで開くとClaude chat accountとの認証が要求されるので承認
- 一時的な認証用のトークンが発行されるのでコピー
- Colaboのターミナルに戻り、ペーストしてエンター
- 問題なければ、いつものClaude CodeのSecurityNoteが表示されるのでもう一度エンター
(Claudeは間違う、プロンプロインジェクションに気を付けろって内容)
- 対象のディレクトリを信頼するかを聞かれる。もちろんyes
- インストール完了。一応、ちゃんと動くか確認
- 一部英語になっちゃうのはご愛嬌
claude --dangerously-skip-permissions
-
いざ、本番
-
先ほどのセッションを抜ける
> /exit
⎿ (no content)
╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ > │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
? for shortcuts
- claude --dangerously-skip-permissionsを実行
claude-user@1b58147a2993:~$ claude --dangerously-skip-permissions
- ちょっと怖かったので日本語訳
│ 警告: Claude Codeが「Bypass Permissions」モードで実行されています │
│ │
│ 「Bypass Permissions」モードでは、Claude Codeは潜在的に危険なコマンドを実行する前に、あなたの承認を求めません。 │
│ このモードは、インターネットアクセスが制限されており、かつ損傷した場合に容易に復元できるサンドボックス化されたコンテナまたは仮想マシンでのみ使用すべきです。│
│ │
│ 続行することで、「Bypass Permissions」モードでの操作によって生じるすべての責任を受け入れることになります。 │
│ │
│ 詳細はこちら: https://docs.anthropic.com/s/claude-code-security │
│ │
│ ❯ 1. いいえ、終了します │
│ 2. はい、同意します
- 2番を選択
- できた!!!
- 画面右下に Bypassing Permissions(権限の迂回)と書かれているのが目印
試してみた
- とはいえ、ブラウザは開けないので、ターミナル上で完結するRPGを作らせてみた
- 待ってるだけでできた。。。
- 戦闘が終わると動かなくなるので修正は必要だけど、コマンドラインのゲームはガンガン作れそう
- mizchiさんがやりたい気持ちが少しわかった。。。
対応内容(簡略化バージョン)
- Google Colaboratoryは、無料版だと12時間ごとにランタイムが初期化されるので、上記の手順を毎回やるのは流石に手間
- なので、最低限のまとまりに省略したのが以下(確認コマンド等も省略)
ユーザー登録とログイン
useradd -m -s /bin/bash claude-user
usermod -aG sudo claude-user
su - claude-user
上記を実行して新規ユーザーとしてログインした後、モジュール(Node.jsやclaude-code等)のインストールを実行する必要がある。逆に、すべてのコマンドを一括でペーストすると、後半のコマンドもrootからの実行と看做されてしまう
必要モジュールのインストールとClaudeの実行
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.4/install.sh | bash
source ~/.bashrc
nvm install --lts
npm install -g @anthropic-ai/claude-code
claude --dangerously-skip-permissions
- 上記2回のコピペをした後、Claudeの認証をすればそのまま使い始められる
余談
- ちなみに、GeminiCLIでも同じことができないか試したんですが、ブラウザが開けない場合に以下のようにずっと待ち続けるので、GCPやGeminiAPIのトークンを埋め込む方式でないと難しそうです。。。
参考元