--sandbox executa o CLI com isolamento em nível de sistema operacional, aplicando os escopos ativos de permissão de leitura e gravação no próprio sistema operacional e, opcionalmente, restringindo o tráfego de rede.
Como o sandbox funciona
- Os caminhos graváveis são derivados dos escopos de permissão
Write(...)concedidos, mais o diretório do workspace - Os caminhos legíveis são derivados dos escopos
Read(...)concedidos (padrões da plataforma, como/usr/bin, são sempre legíveis) - Escopos concedidos no meio da sessão expandem dinamicamente o sandbox para os comandos subsequentes
Filtragem de rede
sandbox do seu arquivo de configuração (apenas na configuração do usuário). Quando --sandbox está ativo e a filtragem de domínio está configurada, um proxy de rede gerenciado é iniciado na interface de loopback, e o sandbox restringe todo o tráfego dos processos filhos para passar por ele.
Sintaxe de padrão de domínio:
Exemplo:
A filtragem de domínio se aplica quando o sandbox está ativo (
--sandbox). Sem --sandbox, a seção do sandbox é ignorada.Comandos excluídos
git que precisam acessar credenciais ou hooks bloqueados pelo sandbox. A seção de configuração sandbox.excluded permite excluir do isolamento do sandbox os comandos correspondentes, usando a mesma sintaxe de regra Exec(...) de permissão:
Exemplo:
Exec(git push *) prevalece sobre Exec(git *)), e, quando tanto a configuração do usuário quanto as Configurações da equipe se aplicam, prevalece a decisão mais restritiva (deny > ask > allow). Comandos sem nenhuma regra correspondente — inclusive quando sandbox.excluded não está configurado — sempre são executados dentro do sandbox.
- Somente regras
Exec(...)têm suporte emsandbox.excluded; qualquer outro tipo de regra (por exemplo,Read(...),Write(...)) é ignorado com um aviso. - A exclusão é fail-closed: se um comando não puder ser resolvido com segurança (por exemplo, se não puder ser analisado), ele permanece dentro do sandbox.
- As exclusões se aplicam ao caminho de execução padrão de cada comando. Comandos executados por meio de um shell PTY persistente (sessões interativas ou quando
pty_for_noninteractive_execestá ativado) sempre permanecem dentro do sandbox.
Aplicação obrigatória no Enterprise
Modo de imposição do sandbox
--sandbox em toda a sua organização:
- Opcional (padrão) — Os usuários escolhem se querem informar
--sandbox. Sem imposição. - Obrigatório — A flag
--sandboxé aplicada a todos os usuários, mesmo que eles não a informem na linha de comando. Todas as sessões de CLI são executadas com sandbox de sistema de arquivos em nível de SO, que aplica escopos de permissão de leitura/gravação.
Filtragem de domínios no Enterprise
- Lista de permissões de domínios — Quando definida, somente os domínios desta lista podem ser acessados pelo proxy de rede do sandbox. Esta lista é definitiva: ela substitui completamente qualquer
allowed_domainsconfigurado pelo usuário. Os usuários não podem adicionar domínios extras para contornar as restrições do administrador. - Lista de bloqueio de domínios — Domínios que são sempre bloqueados. Os domínios bloqueados no Enterprise são aditivos: eles são mesclados com o
denied_domainslocal do usuário, tornando a lista combinada mais restritiva.
Como o
denied_domains local do usuário é preservado e mesclado de forma aditiva, o usuário pode bloquear um domínio que aparece na lista de permissões do Enterprise. Isso é intencional: o efeito combinado é sempre mais restritivo, nunca menos. Se isso causar problemas de acesso, o usuário deve remover a entrada conflitante da configuração local.Comandos excluídos no Enterprise
- Excluded allow / ask — regras
Exec(...)para comandos que podem ser executados fora do sandbox em toda a organização, automaticamente ou após uma confirmação. - Excluded deny — regras
Exec(...)para comandos que nunca devem ser executados fora do sandbox. Umdenyda equipe tem precedência sobre qualquerallowouaskem nível de usuário para comandos correspondentes, então os usuários não podem excluir comandos que seus administradores restringiram.
deny > ask > allow).
Exemplo: bloquear todas as exclusões, exceto gh. Um deny curinga com uma exceção allow mantém todos os comandos dentro do sandbox, exceto gh, independentemente do que os usuários configurarem localmente. Esses valores vão na configuração de comandos excluídos das Configurações da equipe (não no arquivo de configuração do usuário, portanto não há uma chave sandbox de nível superior):
Exec(gh *) prevalece sobre o curinga Exec(**), os comandos gh são executados fora do sandbox, enquanto todo o restante permanece dentro — e o curinga deny no nível da equipe se sobrepõe a quaisquer regras allow ou ask no nível do usuário para outros comandos.
Leitura adicional
- Configurações da equipe — imposição de sandbox no Enterprise e filtragem de domínios
- Referência do arquivo de configuração — a seção de configuração
sandboxem nível de usuário - Permissões — escopos de permissão que determinam a resolução de caminhos do sandbox

