--sandbox lance le CLI avec une isolation au niveau du système d’exploitation, en appliquant à ce niveau les périmètres d’autorisation de lecture et d’écriture actifs et, éventuellement, en restreignant le trafic réseau.
Comment fonctionne le sandbox
- Les chemins accessibles en écriture sont dérivés des périmètres d’autorisation
Write(...)accordés, ainsi que du répertoire de l’espace de travail - Les chemins accessibles en lecture sont dérivés des périmètres
Read(...)accordés (les chemins par défaut de la plateforme, comme/usr/bin, sont toujours lisibles) - Les périmètres accordés en cours de session étendent dynamiquement le sandbox pour les commandes suivantes
Filtrage réseau
sandbox de votre fichier de configuration (configuration utilisateur uniquement). Lorsque --sandbox est actif et qu’un filtrage par domaine est configuré, un proxy réseau géré démarre sur le loopback, et le sandbox force tout le trafic des processus enfants à transiter par celui-ci.
Syntaxe des motifs de domaine :
Exemple :
Le filtrage de domaine s’applique lorsque le sandbox est activé (
--sandbox). Sans --sandbox, la section sandbox est ignorée.Commandes exclues
git qui doivent accéder à des identifiants, ou des hooks bloqués par le sandbox. La section de configuration sandbox.excluded vous permet d’exclure du sandbox les commandes correspondantes à l’aide de la même syntaxe de règle Exec(...) que pour les permissions :
Exemple :
Exec(git push *) l’emporte sur Exec(git *)), et lorsque la configuration utilisateur et les Team Settings correspondent toutes deux, c’est le verdict le plus restrictif qui l’emporte (deny > ask > allow). Les commandes sans règle correspondante — y compris lorsque sandbox.excluded n’est pas configuré du tout — s’exécutent toujours dans le sandbox.
- Seules les règles
Exec(...)sont prises en charge danssandbox.excluded; tout autre type de règle (p. ex.,Read(...),Write(...)) est ignoré avec un avertissement. - Les exclusions appliquent un principe de sécurité par défaut : si une commande ne peut pas être résolue de façon sûre (p. ex., si elle ne peut pas être analysée), elle reste dans le sandbox.
- Les exclusions s’appliquent au chemin d’exécution
execpar défaut pour chaque commande. Les commandes exécutées via un shell PTY persistant (sessions interactives, ou lorsquepty_for_noninteractive_execest activé) restent toujours dans le sandbox.
Application au niveau Enterprise
Mode d’application du sandbox
--sandbox pour toute votre organisation :
- Facultatif (par défaut) — Les utilisateurs choisissent s’ils veulent passer
--sandbox. Aucune contrainte. - Obligatoire — Le flag
--sandboxest activé de force pour tous les utilisateurs, même s’ils ne le passent pas sur la ligne de commande. Toutes les sessions CLI s’exécutent avec un sandbox du système de fichiers au niveau du système d’exploitation, qui applique les périmètres d’autorisation en lecture/écriture.
Filtrage des domaines Enterprise
- Liste d’autorisation de domaines — Lorsqu’elle est définie, seuls les domaines figurant dans cette liste sont accessibles via le proxy réseau du sandbox. Cette liste fait autorité : elle remplace entièrement toute valeur
allowed_domainsconfigurée par l’utilisateur. Les utilisateurs ne peuvent pas ajouter d’autres domaines pour contourner les restrictions définies par les administrateurs. - Liste de refus de domaines — Domaines qui sont toujours bloqués. Les domaines refusés au niveau Enterprise sont additifs : ils sont fusionnés avec le
denied_domainslocal de l’utilisateur, ce qui rend la liste combinée plus restrictive.
Comme le
denied_domains local de l’utilisateur est conservé et fusionné de manière additive, un utilisateur peut refuser un domaine qui figure dans la liste d’autorisation Enterprise. C’est intentionnel : l’effet combiné est toujours plus restrictif, jamais moins. Si cela provoque des problèmes d’accès, l’utilisateur doit supprimer l’entrée en conflit de sa configuration locale.Commandes exclues au niveau Enterprise
- Exclusions
allow/ask— règlesExec(...)pour les commandes qui peuvent s’exécuter hors du sandbox dans toute l’organisation, automatiquement ou après un prompt. - Exclusion
deny— règlesExec(...)pour les commandes qui ne doivent jamais s’exécuter hors du sandbox. Undenyd’équipe l’emporte sur toutallowouaskau niveau utilisateur pour les commandes correspondantes ; les utilisateurs ne peuvent donc pas exclure des commandes que leurs administrateurs ont verrouillées.
deny > ask > allow).
Exemple : verrouiller toutes les exclusions sauf gh. Un deny générique avec une exception allow force toutes les commandes à rester dans le sandbox, sauf gh, quels que soient les réglages locaux des utilisateurs. Ces valeurs vont dans la configuration excluded-commands des paramètres d’équipe (et non dans le fichier de configuration utilisateur ; il n’y a donc pas de clé sandbox englobante) :
Exec(gh *) l’emporte sur le caractère générique Exec(**), les commandes gh s’exécutent en dehors du sandbox, tandis que tout le reste reste à l’intérieur — et le caractère générique deny au niveau de l’équipe prévaut sur toute règle allow ou ask au niveau de l’utilisateur pour les autres commandes.
Pour aller plus loin
- Team Settings — application forcée du sandbox au niveau Enterprise et filtrage des domaines
- Référence du fichier de configuration — la section de configuration
sandboxau niveau utilisateur - Autorisations — les périmètres d’autorisation qui déterminent la résolution des chemins du sandbox

