- So lässt sich das Flag
--dangerously-skip-permissions von Claude Code sicher nutzen
- Nach Prüfung verschiedener isolierter Ausführungsumgebungen wie Docker, VM und Firejail wurde eine Vagrant-basierte virtuelle Maschine (VM) als am besten geeignet bewertet
- Mit Vagrant bleiben vollständige VM-Isolation, reproduzierbare Konfiguration und Freigabe lokaler Ordner erhalten, während Probleme mit Docker-in-Docker vermieden werden
- Claude Code wurde so eingerichtet, dass es innerhalb der VM mit sudo-Rechten frei Systemmanipulationen durchführen kann und tatsächlich Web-Apps startet, Datenbanken einrichtet und Tests automatisiert
- Dieser Ansatz ist wirksam, um versehentliche Schäden am Dateisystem zu verhindern; bei Bedarf kann die VM gelöscht und neu erstellt werden, um sie sicher zurückzusetzen
Hintergrund
- Um die Unannehmlichkeit zu beseitigen, bei der Nutzung von Claude Code jedes Mal Berechtigungsanfragen bestätigen zu müssen, wurde versucht, das Flag
--dangerously-skip-permissions zu verwenden
- Dieses Flag führt alle Aufgaben wie Paketinstallation, Konfigurationsänderungen und Dateilöschung automatisch ohne vorherige Genehmigung aus
- Das ist effizient, weil der Arbeitsfluss nicht unterbrochen wird, birgt aber das Risiko von Dateisystemschäden
- Um dies zu vermeiden, wurde die Notwendigkeit erkannt, es in einer vom Host-OS-Konto getrennten Umgebung auszuführen
In Betracht gezogene Methoden
- Zunächst wurde Isolation mit Docker geprüft, doch da Claude Docker-Images bauen und Container ausführen muss, ist eine Docker-in-Docker-Konfiguration erforderlich
- In diesem Fall wird der Modus
--privileged benötigt, wodurch der Zweck des Sandboxing bedeutungslos wird
- Durch Netzwerkverschachtelung, Berechtigungsprobleme bei Volume-Mounts usw. nehmen Komplexität und Instabilität zu
- Als weitere Alternativen wurden folgende Optionen geprüft
- Ausführung auf Bare Metal: In Reddit-Beispielen gibt es schwere Schadensfälle wie das Löschen von Datenbanken oder Home-Verzeichnissen
sandbox-runtime: ACL-basierte Zugriffskontrolle, bei der Claude außerhalb des Codes keinen Zugriff hat, aber keine vollständige Freiheit besitzt
- Firejail: ähnliche Einschränkungen wie bei Docker
- Manuelle VM-Einrichtung: mangelnde Reproduzierbarkeit
- Cloud-VM: Probleme bei Kosten, Latenz und der Notwendigkeit, Code hochzuladen
Vagrant-basierter Ansatz
- Mit Vagrant wurden vollständige VM-Isolation und reproduzierbare Konfiguration sichergestellt
- Über freigegebene Ordner ist Zugriff wie lokal möglich
- Kein Docker-in-Docker-Problem, und die VM kann bei Bedarf leicht gelöscht und neu erstellt werden
- Bei der Nutzung von VirtualBox 7.2.4 wurde ein Bug mit 100 % CPU-Auslastung entdeckt; die Ursache wurde über ein GitHub-Issue bestätigt
- Die endgültige Konfiguration der Vagrantfile hat folgende Merkmale
- Verwendung des Basis-Images
bento/ubuntu-24.04
- Zuweisung von 4 GB Speicher und 2 CPUs
- Installation von Docker, Node.js, npm, git und unzip
- Globale Installation von
@anthropic-ai/claude-code
- Hinzufügen des Benutzers
vagrant zur Docker-Gruppe
Praktische Nutzung
- Im Projektverzeichnis in der Reihenfolge
vagrant up → vagrant ssh → claude --dangerously-skip-permissions ausführen
- Beim ersten Start dauert das Provisioning einige Minuten, und pro Projekt ist nur einmal ein Claude-Login erforderlich
- Nach Abschluss der Arbeit kann die VM mit
vagrant suspend angehalten werden
- Claude erhält innerhalb der VM sudo-Rechte und führt unter anderem folgende Aufgaben aus
- Ausführen der Web-App-API und Prüfung mit
curl
- Installation eines Browsers, anschließende manuelle App-Prüfung und Erstellung von E2E-Tests
- Einrichtung einer PostgreSQL-Datenbank und Testen von Migrationen
- Bauen und Ausführen von Docker-Images
- Dank dieser Umgebung kann Claude Befehle ausführen, Ausgaben prüfen und iterative Abläufe selbstständig verarbeiten
Leistung und Sicherheit
- Unter Linux + VirtualBox gibt es ausreichend Ressourcenreserven, ohne Verzögerungen bei der Dateisynchronisierung
- Schutz bietet die Lösung gegen
- versehentliche Dateisystemschäden
- unkontrollierte Paketinstallationen und Konfigurationsänderungen
- Kein Schutz besteht gegen
- Löschen des Projektordners (bidirektionale Synchronisierung)
- Angriffe durch Ausnutzung von VM-Escape-Schwachstellen
- Probleme auf Netzwerkebene
- Datenabfluss (die VM hat Internetzugang)
- Diese Konfiguration dient der Vermeidung von Unfällen und ist nicht zur Abwehr fortgeschrittener Angriffe gedacht
- Bei Git-basierten Projekten ist eine Wiederherstellung auch im Schadensfall einfach; bei Bedarf ist mit einseitiger Synchronisierung per
rsync eine noch strengere Isolation möglich
Fazit
- Nach Behebung des CPU-Bugs in VirtualBox ist eine reibungsarme Ausführungsumgebung entstanden
- Claude Code kann innerhalb einer vollständig isolierten VM-Sandbox frei ausgeführt werden
- Wenn Probleme auftreten, lässt sich die VM löschen und neu erstellen; ein einziges Vagrantfile sorgt für Reproduzierbarkeit
- Beim Einsatz des Flags
--dangerously-skip-permissions wird eine isolierte Umgebung wie diese dringend empfohlen
Noch keine Kommentare.