# Arch LinuxでのClaude Code安全利用ガイド ## 推奨セットアップ ### 1. systemd-nspawnコンテナ(最も推奨) ```bash # インストール sudo pacman -S arch-install-scripts systemd-container # コンテナ作成 sudo mkdir -p /var/lib/machines/claude-sandbox sudo pacstrap -c /var/lib/machines/claude-sandbox base base-devel git nodejs npm python # コンテナ起動 sudo systemd-nspawn -bD /var/lib/machines/claude-sandbox # ホストディレクトリをバインド sudo systemd-nspawn -bD /var/lib/machines/claude-sandbox \ --bind-ro=/home/$USER/projects:/projects ``` ### 2. Firejailサンドボックス ```bash # インストール sudo pacman -S firejail # 基本的な使用 firejail --noprofile --private claude # より厳格な設定 firejail --noprofile --private --noroot --nosound --no3d claude ``` ### 3. 安全なpacmanフック `/etc/pacman.d/hooks/claude-safety.hook`: ```ini [Trigger] Operation = Install Operation = Upgrade Operation = Remove Type = Package Target = * [Action] Description = Claude Code安全チェック When = PreTransaction Exec = /usr/local/bin/claude-pacman-check.sh ``` ### 4. ZFSまたはBtrfsスナップショット ```bash # Btrfsの場合 sudo btrfs subvolume snapshot -r / /.snapshots/$(date +%Y%m%d-%H%M%S) # 自動スナップショット sudo pacman -S snapper sudo snapper -c root create-config / sudo snapper -c root create --description "Before Claude Code" ``` ### 5. 監査とロギング ```bash # auditdで監視 sudo pacman -S audit sudo systemctl enable --now auditd # 特定のコマンドを監査 sudo auditctl -a always,exit -F path=/usr/bin/rm -F perm=x ``` ## Claude Code設定 `~/.claude/settings.json`: ```json { "hooks": { "before_bash": "/usr/local/bin/claude-arch-safety-check.sh" } } ``` ## 緊急時の復旧 1. **Btrfsスナップショットから復元** ```bash sudo btrfs subvolume list / sudo btrfs subvolume set-default / ``` 2. **systemd-nspawnコンテナのリセット** ```bash sudo rm -rf /var/lib/machines/claude-sandbox # 再作成 ``` 3. **パッケージの整合性チェック** ```bash sudo pacman -Qkk ```