add
This commit is contained in:
104
docs/guides/archlinux-safety.md
Normal file
104
docs/guides/archlinux-safety.md
Normal file
@ -0,0 +1,104 @@
|
||||
# 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
|
||||
```
|
Reference in New Issue
Block a user