Tous les modules

Module 6 / 12

Permissions & sécurité

Maîtriser les modes de permission, le sandboxing, et configurer des règles fines.

Intermédiaire10 min de lecture

Les modes de permission

Claude Code propose plusieurs modes qui déterminent le niveau de confirmation requis avant d'agir :

  • Normal (par défaut) : chaque action sensible (édition, commande shell) est confirmée par l'utilisateur.
  • Auto-accept edits : les éditions de fichiers sont acceptées automatiquement, les commandes shell sensibles restent confirmées.
  • Plan Mode : Claude Code ne fait que lire et analyser, propose un plan, et ne modifie rien jusqu'à validation explicite (voir module dédié).
  • Bypass / YOLO (dangereux) : toutes les confirmations sont désactivées — réservé à des environnements jetables et isolés (ex: conteneur sandbox).

On bascule entre les modes avec Shift+Tab en session, ou via la configuration.

settings.json : règles de permission fines

Le fichier .claude/settings.json (commitable, partagé avec l'équipe) ou .claude/settings.local.json (personnel, gitignored) permet de définir des règles d'autorisation/refus précises :

{
  "permissions": {
    "allow": [
      "Bash(npm run test:*)",
      "Bash(git status)",
      "Read(*)"
    ],
    "deny": [
      "Bash(git push --force*)",
      "Read(./.env)"
    ]
  }
}

Ces règles s'appliquent avant que le modèle ne décide quoi que ce soit : une commande explicitement deny ne sera jamais exécutée, même si Claude Code le proposait.

Pourquoi ne jamais désactiver les vérifications de sécurité

Désactiver les hooks de sécurité (--no-verify) ou contourner les permissions pour « aller plus vite » revient à supprimer le filet de sécurité justement conçu pour éviter des actions irréversibles (perte de commits, secrets exposés, déploiement cassé). La bonne pratique est de comprendre la cause racine d'un blocage plutôt que de le bypasser : un hook ou une permission qui bloque une action signale souvent un vrai problème (test cassé, commande dangereuse, fichier sensible).

Sandboxing et environnements isolés

Pour des tâches qui nécessitent plus de liberté (ex: exécuter du code généré, tester des commandes risquées), on peut isoler l'exécution dans un environnement jetable : conteneur Docker, VM, ou un worktree git séparé. Cela permet d'autoriser des actions plus larges sans risque pour l'environnement principal — c'est le même principe que les agents qui tournent avec isolation: "worktree" pour travailler sur une copie du repo.

Points clés à retenir

  • 4 modes : Normal, Auto-accept edits, Plan Mode, Bypass (à éviter hors sandbox).
  • settings.json définit des règles allow/deny précises, appliquées avant toute décision du modèle.
  • Ne jamais bypasser un hook de sécurité : comprendre la cause racine du blocage.
  • Les environnements isolés (sandbox, worktree) permettent plus de liberté sans risque.

Tester ce module

12 questions corrigées sur « Permissions & sécurité »