Skip to content

サンドボックスモード有効時の読み取り専用ファイルシステムエラー修正

原文(日本語に翻訳)

サンドボックスモードが有効な場合に、bashコマンドが誤って「読み取り専用ファイルシステム」エラーで失敗する問題を修正しました。

原文(英語)

Fixed bash commands incorrectly reporting failure with "Read-only file system" errors when sandbox mode was enabled

概要

サンドボックスモードを有効にしている状態で、bashコマンドが実際には成功しているにもかかわらず、「Read-only file system」エラーで失敗したように報告される問題が修正されました。この問題は、bash統合が /tmp/claude-{random}-cwd にカレントディレクトリ追跡ファイルを書き込もうとする際に発生していました。

基本的な使い方

サンドボックスモードの確認

bash
# 設定ファイルでサンドボックスモードを確認
cat ~/.claude/settings.json | grep -A 5 "sandbox"

問題が修正されたか確認

bash
# サンドボックスモード有効でbashコマンドを実行
claude

# Claudeに依頼
> "ls -la を実行して"
> "現在のディレクトリのファイル一覧を表示して"

# エラーなく正常に動作すればOK

実践例

ファイル一覧の取得

以前はサンドボックスモードで失敗していたコマンドが、正常に動作するようになります:

bash
# Claudeセッション内で
> "プロジェクト内のすべてのTypeScriptファイルを探して"

# 内部的に実行されるコマンド
find . -name "*.ts"

# 以前: 「Read-only file system」エラーで失敗
# 現在: 正常に実行される

ビルドコマンドの実行

サンドボックスモードでもビルドコマンドが正常に動作します:

bash
> "npmでビルドを実行して"

# 内部的に実行
npm run build

# 以前: /tmp書き込みエラーで失敗
# 現在: 正常に実行される

テストの実行

テストコマンドもサンドボックス内で正常に動作:

bash
> "Jestでテストを実行して"

# 内部的に実行
npm test

# 正常に実行され、テスト結果が表示される

注意点

  • サンドボックスモードの設定: この修正により、サンドボックスモードを安心して有効にできるようになりました。セキュリティを重視する場合は、引き続きサンドボックスモードの使用をお勧めします。

  • 追加のディレクトリへの書き込み権限: 作業ディレクトリ外への書き込みが必要な場合は、Edit() allow ルールで明示的に権限を付与する必要があります:

    json
    {
      "permissions": {
        "allow": ["Edit(/path/to/directory/**)"]
      }
    }
  • バージョン確認: この修正が適用されているか確認するには claude --version を実行してください。

  • エラーが続く場合: 更新後もエラーが発生する場合は、~/.claude/settings.json のサンドボックス設定を確認してください。

関連情報