26 points par GN⁺ 2026-01-21 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Comment utiliser en toute sécurité le flag --dangerously-skip-permissions de Claude Code
  • Après avoir évalué plusieurs environnements d’exécution isolés comme Docker, les VM et Firejail, l’auteur conclut qu’une machine virtuelle (VM) basée sur Vagrant est la solution la plus adaptée
  • Avec Vagrant, il est possible de conserver une isolation complète par VM, une configuration reproductible et le partage de dossiers locaux, tout en évitant les problèmes de Docker-in-Docker
  • Claude Code est configuré pour manipuler librement le système avec les privilèges sudo dans la VM, et sert concrètement à lancer des web apps, configurer des bases de données et automatiser des tests
  • Cette méthode est efficace pour éviter les dommages accidentels au système de fichiers et permet, si nécessaire, de réinitialiser proprement l’environnement en supprimant puis recréant la VM

Contexte

  • Lors de l’utilisation de Claude Code, l’auteur a voulu éliminer l’inconvénient de devoir confirmer chaque demande d’autorisation en essayant le flag --dangerously-skip-permissions
    • Ce flag exécute automatiquement sans approbation préalable toutes les opérations, y compris l’installation de paquets, les changements de configuration ou la suppression de fichiers
    • C’est efficace car cela évite d’interrompre le flux de travail, mais cela comporte un risque de corruption du système de fichiers
  • Pour l’éviter, il devient nécessaire d’exécuter Claude dans un environnement séparé du compte utilisateur de l’OS hôte

Méthodes envisagées

  • L’isolation via Docker a d’abord été étudiée, mais comme Claude doit construire des images Docker et lancer des conteneurs, une configuration Docker-in-Docker est nécessaire
    • Dans ce cas, le mode --privileged est requis, ce qui annule l’intérêt du sandboxing
    • L’empilement réseau et les problèmes de permissions sur les montages de volumes augmentent aussi la complexité et l’instabilité
  • Les autres alternatives examinées sont les suivantes
    • Exécution sur bare metal : des cas rapportés sur Reddit montrent des dommages graves, comme la suppression d’une base de données ou du répertoire personnel
    • sandbox-runtime : contrôle d’accès basé sur les ACL, empêchant Claude d’accéder à autre chose qu’au code, mais avec un manque de liberté totale
    • Firejail : présente des limitations similaires à Docker
    • Configuration manuelle d’une VM : manque de reproductibilité
    • VM dans le cloud : problèmes de coût, latence et nécessité d’uploader le code

Approche basée sur Vagrant

  • Vagrant permet d’obtenir à la fois une isolation complète par VM et une configuration reproductible
    • Les dossiers partagés permettent un accès proche d’un usage local
    • Il n’y a pas de problème de Docker-in-Docker, et la VM peut être supprimée puis recréée facilement si besoin
  • En utilisant VirtualBox 7.2.4, l’auteur a constaté un bug faisant monter le CPU à 100 %, puis en a confirmé la cause via une issue GitHub
  • La configuration finale du Vagrantfile présente les caractéristiques suivantes
    • image de base bento/ubuntu-24.04
    • 4 Go de mémoire et 2 CPU alloués
    • installation de Docker, Node.js, npm, git et unzip
    • installation globale de @anthropic-ai/claude-code
    • ajout de l’utilisateur vagrant au groupe Docker

Utilisation concrète

  • Depuis le répertoire du projet, exécuter vagrant upvagrant sshclaude --dangerously-skip-permissions
  • Au premier démarrage, le provisioning prend quelques minutes et il faut se connecter à Claude une seule fois par projet
  • En fin de travail, la VM peut être mise en veille avec vagrant suspend
  • Dans la VM, Claude reçoit les privilèges sudo et peut effectuer les tâches suivantes
    • lancer l’API d’une web app et la vérifier avec curl
    • installer un navigateur, inspecter manuellement l’application et générer des tests E2E
    • configurer une base PostgreSQL et tester les migrations
    • construire et exécuter des images Docker
  • Grâce à cet environnement, Claude peut exécuter des commandes, vérifier les sorties et gérer lui-même les itérations

Performances et sécurité

  • Sur Linux + VirtualBox, les ressources sont largement suffisantes et il n’y a pas de latence de synchronisation des fichiers
  • Ce qui peut être protégé
    • les dommages accidentels au système de fichiers
    • les installations de paquets incontrôlées et les modifications de configuration
  • Ce qui ne peut pas être protégé
    • la suppression du dossier du projet (synchronisation bidirectionnelle)
    • les attaques exploitant une faille d’évasion de VM
    • les problèmes au niveau réseau
    • l’exfiltration de données (la VM a accès à Internet)
  • Cette configuration sert à prévenir les accidents, et non à se défendre contre des attaques avancées
  • Comme le projet repose sur Git, la récupération reste facile en cas de dommages ; si nécessaire, une synchronisation unidirectionnelle via rsync permet une isolation plus stricte

Conclusion

  • Après résolution du bug CPU de VirtualBox, l’auteur obtient un environnement d’exécution sans friction
  • Claude Code peut être exécuté librement dans un sandbox VM complet
  • En cas de problème, il suffit de supprimer puis recréer la VM, avec une reproductibilité garantie par un simple Vagrantfile
  • Si vous utilisez le flag --dangerously-skip-permissions, la mise en place d’un environnement isolé de ce type est fortement recommandée

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.