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

104 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 <ID> /
```
2. **systemd-nspawnコンテナのリセット**
```bash
sudo rm -rf /var/lib/machines/claude-sandbox
# 再作成
```
3. **パッケージの整合性チェック**
```bash
sudo pacman -Qkk
```