Claude & OpenCode - Berechtigung
Berechtigungs-Konfiguration für Claude Code und OpenCode
Diese Dokumentation ermöglicht es einem KI-Agenten, die Security-Permissions auf einem neuen Computer einzurichten.
Übersicht
Standardmäßig können KI-Assistenten (Claude Code, OpenCode) jede Datei im Projekt lesen – einschließlich
.env-Dateien mit API-Keys, Stripe-Keys und Client-Credentials. Diese Einstellungen blockieren den Zugriff auf sensible Dateien und verhindern destruktive Befehle.
1. Claude Code Konfiguration
Datei:
~/.claude/settings.jsonVollständige Konfiguration
{ "permissions": { "deny": [ "Read(.env)", "Read(.env.*)", "Read(**/.env)", "Read(**/.env.*)", "Bash(cat .env*)", "Bash(cat */.env*)", "Bash(rm -rf *)", "Bash(git push --force*)", "Bash(git reset --hard*)", "Read(**/id_rsa*)", "Read(**/id_ed25519*)", "Read(**/id_ecdsa*)", "Read(**/id_dsa*)", "Read(**/.ssh/id_*)", "Read(**/.aws/credentials)", "Read(**/.aws/config)", "Read(~/.claude/settings.json)", "Edit(~/.claude/settings.json)", "Write(~/.claude/settings.json)" ] } }Einrichtungsbefehl
Falls die Datei nicht existiert, erstelle sie:
mkdir -p ~/.claude cat > ~/.claude/settings.json << 'EOF' { "permissions": { "deny": [ "Read(.env)", "Read(.env.*)", "Read(**/.env)", "Read(**/.env.*)", "Bash(cat .env*)", "Bash(cat */.env*)", "Bash(rm -rf *)", "Bash(git push --force*)", "Bash(git reset --hard*)", "Read(**/id_rsa*)", "Read(**/id_ed25519*)", "Read(**/id_ecdsa*)", "Read(**/id_dsa*)", "Read(**/.ssh/id_*)", "Read(**/.aws/credentials)", "Read(**/.aws/config)", "Read(~/.claude/settings.json)", "Edit(~/.claude/settings.json)", "Write(~/.claude/settings.json)" ] } } EOFFalls bereits Hooks vorhanden sind
Wenn die Datei bereits existiert und Hooks enthält, füge nur den
permissions-Block hinzu:{ "hooks": { "PreToolUse": [ { "matcher": "Bash", "hooks": [ { "type": "command", "command": "/path/to/existing/hook.sh" } ] } ] }, "permissions": { "deny": [ "Read(.env)", "Read(.env.*)", "Read(**/.env)", "Read(**/.env.*)", "Bash(cat .env*)", "Bash(cat */.env*)", "Bash(rm -rf *)", "Bash(git push --force*)", "Bash(git reset --hard*)", "Read(**/id_rsa*)", "Read(**/id_ed25519*)", "Read(**/id_ecdsa*)", "Read(**/id_dsa*)", "Read(**/.ssh/id_*)", "Read(**/.aws/credentials)", "Read(**/.aws/config)", "Read(~/.claude/settings.json)", "Edit(~/.claude/settings.json)", "Write(~/.claude/settings.json)" ] } }
2. OpenCode Konfiguration
Datei:
~/.config/opencode/opencode.jsonWichtiger Hinweis
OpenCode schützt
.env-Dateien bereits standardmäßig. Die folgenden Regeln erweitern den Schutz um SSH-Keys, AWS-Credentials und destruktive Befehle.Permission-Block zum Hinzufügen
Füge dies zum bestehenden
"permission"-Objekt hinzu:"permission": { "read": { "*": "allow", ".env": "deny", ".env.*": "deny", "**/.env": "deny", "**/.env.*": "deny", "**/id_rsa*": "deny", "**/id_ed25519*": "deny", "**/id_ecdsa*": "deny", "**/id_dsa*": "deny", "**/.ssh/id_*": "deny", "**/.aws/credentials": "deny", "**/.aws/config": "deny" }, "edit": { "~/.claude/settings.json": "deny", "~/.config/opencode/opencode.json": "deny" }, "bash": { "cat .env*": "deny", "cat */.env*": "deny", "rm -rf *": "deny", "git push --force*": "deny", "git reset --hard*": "deny" } }Vollständige Minimal-Konfiguration
Falls keine
opencode.jsonexistiert:mkdir -p ~/.config/opencode cat > ~/.config/opencode/opencode.json << 'EOF' { "$schema": "https://opencode.ai/config.json", "permission": { "read": { "*": "allow", ".env": "deny", ".env.*": "deny", "**/.env": "deny", "**/.env.*": "deny", "**/id_rsa*": "deny", "**/id_ed25519*": "deny", "**/id_ecdsa*": "deny", "**/id_dsa*": "deny", "**/.ssh/id_*": "deny", "**/.aws/credentials": "deny", "**/.aws/config": "deny" }, "edit": { "~/.claude/settings.json": "deny", "~/.config/opencode/opencode.json": "deny" }, "bash": { "cat .env*": "deny", "cat */.env*": "deny", "rm -rf *": "deny", "git push --force*": "deny", "git reset --hard*": "deny" } } } EOF
3. Was wird geschützt
| Kategorie | Geschützte Dateien/Befehle |
|---|---|
| Environment Files | .env, .env.local, .env.production, etc. |
| SSH Keys | id_rsa, id_ed25519, id_ecdsa, id_dsa |
| AWS Credentials | ~/.aws/credentials, ~/.aws/config |
| KI-Config | Claude/OpenCode Settings-Dateien |
| Destruktive Befehle | rm -rf *, git push --force, git reset --hard |
4. Syntax-Unterschiede
| Aspekt | Claude Code | OpenCode |
|---|---|---|
| Struktur | "deny": ["Pattern"] |
"pattern": "deny" |
| Tools | Read(), Bash(), Edit() |
read, bash, edit |
| Wildcards | ** für rekursiv |
** für rekursiv, * für beliebige Zeichen |
| Defaults | Keine | .env bereits protected |
5. Verifikation
Teste nach der Einrichtung:
# Claude Code settings prüfen
cat ~/.claude/settings.json | grep -A 5 "permissions"
# OpenCode settings prüfen
cat ~/.config/opencode/opencode.json | grep -A 5 "permission"
6. Wartung
Bei Updates der KI-Tools können sich die Konfigurationsformate ändern. Prüfe:
- Claude Code: https://docs.anthropic.com/en/docs/claude-code
- OpenCode: https://opencode.ai/docs/permissions/