--sandbox-Flag startet die CLI mit Isolation auf Betriebssystemebene, setzt die aktiven Berechtigungsbereiche „Read“ und „Write“ auf Betriebssystemebene durch und kann den Netzwerkverkehr optional einschränken.
Wie die Sandbox funktioniert
- Beschreibbare Pfade werden aus den gewährten
Write(...)-Berechtigungsbereichen und dem Workspace-Verzeichnis abgeleitet - Lesbare Pfade werden aus den gewährten
Read(...)-Bereichen abgeleitet (Plattformstandards wie/usr/binsind immer lesbar) - Bereiche, die während einer Sitzung gewährt werden, erweitern die Sandbox dynamisch für nachfolgende Befehle
Netzwerkfilterung
sandbox-Abschnitt Ihrer Konfigurationsdatei (nur in der Nutzerkonfiguration). Wenn --sandbox aktiv ist und eine Domänenfilterung konfiguriert wurde, wird auf der Loopback-Schnittstelle ein verwalteter Netzwerk-Proxy gestartet, und die Sandbox erzwingt, dass der gesamte Datenverkehr untergeordneter Prozesse über ihn geleitet wird.
Syntax für Domain-Muster:
Beispiel:
Die Domänenfilterung gilt, wenn die Sandbox aktiv ist (
--sandbox). Ohne --sandbox wird der Abschnitt zur Sandbox ignoriert.Ausgeschlossene Befehle
git-Befehle, die auf Anmeldedaten zugreifen müssen, oder Hooks, die die Sandbox blockiert. Im Konfigurationsabschnitt sandbox.excluded können Sie passende Befehle mithilfe derselben Exec(...)-Regelsyntax wie bei Berechtigungen von der Sandbox-Isolierung ausnehmen:
Beispiel:
Exec(git push *) Vorrang vor Exec(git *)), und wenn sowohl die Nutzerkonfiguration als auch die Team Settings zutreffen, gilt die restriktivere Entscheidung (deny > ask > allow). Befehle ohne passende Regel — auch wenn sandbox.excluded überhaupt nicht konfiguriert ist — werden immer in der Sandbox ausgeführt.
- In
sandbox.excludedwerden nurExec(...)-Regeln unterstützt; jeder andere Regeltyp (z. B.Read(...),Write(...)) wird mit einer Warnung ignoriert. - Ausschlüsse folgen dem Fail-Closed-Prinzip: Wenn ein Befehl nicht sicher ermittelt werden kann (z. B. weil er nicht geparst werden kann), bleibt er in der Sandbox.
- Ausschlüsse gelten für den Standard-Ausführungspfad pro Befehl. Befehle, die über eine persistente PTY-Shell ausgeführt werden (interaktive Sitzungen oder wenn
pty_for_noninteractive_execaktiviert ist), bleiben immer in der Sandbox.
Durchsetzung auf Enterprise-Ebene
Sandbox-Erzwingungsmodus
--sandbox in Ihrer Organisation fest:
- Optional (Standard) — Nutzer wählen, ob sie
--sandboxübergeben. Keine Erzwingung. - Required — Das Flag
--sandboxwird für alle Nutzer erzwungen, auch wenn sie es nicht in der Befehlszeile angeben. Alle CLI-Sitzungen werden mit einer Dateisystem-Sandbox auf Betriebssystemebene ausgeführt, die Lese-/Schreib-Berechtigungsbereiche erzwingt.
Enterprise-Domänenfilterung
- Domain-Allowlist — Wenn sie festgelegt ist, sind nur die Domains in dieser Liste über den Netzwerk-Proxy der Sandbox erreichbar. Diese Liste ist verbindlich: Sie ersetzt alle vom Nutzer konfigurierten
allowed_domainsvollständig. Nutzer können keine zusätzlichen Domains hinzufügen, um Admin-Einschränkungen zu umgehen. - Domain-Denylist — Domains, die immer blockiert werden. Auf Enterprise-Ebene ausgeschlossene Domains sind additiv: Sie werden mit den lokalen
denied_domainsdes Nutzers zusammengeführt, sodass die kombinierte Liste restriktiver ist.
Da die lokalen
denied_domains des Nutzers erhalten bleiben und additiv zusammengeführt werden, kann ein Nutzer eine Domain blockieren, die in der Enterprise-Allowlist enthalten ist. Das ist beabsichtigt: Die Gesamtwirkung ist immer restriktiver, nie weniger restriktiv. Falls das zu Zugriffsproblemen führt, sollte der Nutzer den widersprüchlichen Eintrag aus seiner lokalen Konfiguration entfernen.Auf Enterprise-Ebene ausgeschlossene Befehle
- Ausgeschlossenes
allow/ask—Exec(...)-Regeln für Befehle, die organisationsweit außerhalb der Sandbox ausgeführt werden dürfen – automatisch oder nach einer Rückfrage. - Ausgeschlossenes
deny—Exec(...)-Regeln für Befehle, die niemals außerhalb der Sandbox ausgeführt werden dürfen. Ein Team-denyhat bei übereinstimmenden Befehlen Vorrang vor jedemallowoderaskauf Nutzerebene, sodass Nutzer keine Befehle ausschließen können, die ihre Admins gesperrt haben.
deny > ask > allow).
Beispiel: Alle Ausschlüsse außer gh sperren. Ein allgemeines deny mit einer allow-Ausnahme sorgt dafür, dass jeder Befehl außer gh in der Sandbox bleibt – unabhängig davon, was Nutzer lokal konfigurieren. Diese Werte gehören in die excluded-commands-Konfiguration der Team Settings (nicht in die Nutzer-Konfigurationsdatei, daher gibt es keinen umschließenden sandbox-Schlüssel):
Exec(gh *) Vorrang vor dem Platzhalter Exec(**) hat, werden gh-Befehle außerhalb der Sandbox ausgeführt, während alles andere innerhalb der Sandbox bleibt — und der Platzhalter deny auf Teamebene überschreibt für andere Befehle alle allow- oder ask-Regeln auf Nutzerebene.
Weiterführende Informationen
- Team Settings — Sandbox-Erzwingung und Domänenfilterung auf Enterprise-Ebene
- Referenz zur Konfigurationsdatei — der Konfigurationsabschnitt
sandboxauf Nutzerebene - Berechtigungen — Berechtigungsbereiche, die die Auflösung von Sandbox-Pfaden steuern

