Files
claude/docs/guides/archlinux-safety.md
2025-07-05 13:48:50 +09:00

2.1 KiB
Raw Permalink Blame History

Arch LinuxでのClaude Code安全利用ガイド

推奨セットアップ

1. systemd-nspawnコンテナ最も推奨

# インストール
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サンドボックス

# インストール
sudo pacman -S firejail

# 基本的な使用
firejail --noprofile --private claude

# より厳格な設定
firejail --noprofile --private --noroot --nosound --no3d claude

3. 安全なpacmanフック

/etc/pacman.d/hooks/claude-safety.hook:

[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スナップショット

# 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. 監査とロギング

# 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:

{
  "hooks": {
    "before_bash": "/usr/local/bin/claude-arch-safety-check.sh"
  }
}

緊急時の復旧

  1. Btrfsスナップショットから復元

    sudo btrfs subvolume list /
    sudo btrfs subvolume set-default <ID> /
    
  2. systemd-nspawnコンテナのリセット

    sudo rm -rf /var/lib/machines/claude-sandbox
    # 再作成
    
  3. パッケージの整合性チェック

    sudo pacman -Qkk