13</Note>13</Note>
14 14
15<h2 id="get-started">15<h2 id="get-started">
16 Get started16 Comece agora
17</h2>17</h2>
18 18
19O sandbox é integrado ao Claude Code e é executado em macOS, Linux e WSL2. Windows nativo não é suportado. No Windows, execute Claude Code dentro de uma distribuição WSL2.19O sandbox é integrado ao Claude Code e é executado em macOS, Linux e WSL2. Windows nativo não é suportado. No Windows, execute Claude Code dentro de uma distribuição WSL2.
57</Warning>57</Warning>
58 58
59<h3 id="set-up-linux-and-wsl2">59<h3 id="set-up-linux-and-wsl2">
60 Set up Linux and WSL260 Configure o Linux e o WSL2
61</h3>61</h3>
62 62
63No Linux e WSL2, o sandbox depende de dois pacotes:63No Linux e WSL2, o sandbox depende de dois pacotes:
115 <Accordion title="Notas do WSL2">115 <Accordion title="Notas do WSL2">
116 Verifique sua versão do WSL com `wsl -l -v` do PowerShell. Se você vir `Sandboxing requires WSL2`, sua distribuição está executando WSL1. Atualize-a para WSL2 ou execute Claude Code sem sandboxing.116 Verifique sua versão do WSL com `wsl -l -v` do PowerShell. Se você vir `Sandboxing requires WSL2`, sua distribuição está executando WSL1. Atualize-a para WSL2 ou execute Claude Code sem sandboxing.
117 117
118 No WSL2, WSL entrega um lançamento de um binário do Windows como `cmd.exe`, `powershell.exe` ou qualquer coisa em `/mnt/c/` para o host do Windows através de um socket Unix, portanto se um comando em sandbox pode lançar um segue as configurações [Unix-socket](/docs/pt/settings-reference#sandbox-network-allowunixsockets) do sandbox: o filtro seccomp opcional tem que ser instalado para bloquear o socket em primeiro lugar. Para permitir esses lançamentos, defina `allowAllUnixSockets`; para mantê-los fora do sandbox completamente, adicione o comando a [`excludedCommands`](/docs/pt/settings-reference#sandbox-excludedcommands).118 No WSL2, WSL entrega um lançamento de um binário do Windows como `cmd.exe`, `powershell.exe` ou qualquer coisa em `/mnt/c/` para o host do Windows através de um socket Unix, portanto, se um comando em sandbox pode ou não lançar um deles depende das configurações de [Unix-socket](/docs/pt/settings-reference#sandbox-network-allowunixsockets) do sandbox: o filtro seccomp opcional tem que ser instalado para bloquear o socket em primeiro lugar. Para permitir esses lançamentos, defina `allowAllUnixSockets`; para mantê-los fora do sandbox completamente, adicione o comando a [`excludedCommands`](/docs/pt/settings-reference#sandbox-excludedcommands).
119 </Accordion>119 </Accordion>
120</AccordionGroup>120</AccordionGroup>
121 121
122<h3 id="sandbox-modes">122<h3 id="sandbox-modes">
123 Sandbox modes123 Modos de sandbox
124</h3>124</h3>
125 125
126Claude Code oferece dois modos de sandbox. Em ambos, o sandbox impõe as mesmas restrições de sistema de arquivos e rede; a diferença é apenas se os comandos em sandbox são aprovados automaticamente ou requerem permissão explícita.126Claude Code oferece dois modos de sandbox. Em ambos, o sandbox impõe as mesmas restrições de sistema de arquivos e rede; a diferença é apenas se os comandos em sandbox são aprovados automaticamente ou requerem permissão explícita.
127 127
128<h4 id="auto-allow-mode">128<h4 id="auto-allow-mode">
129 Auto-allow mode129 Modo auto-allow
130</h4>130</h4>
131 131
132Quando um comando pode ser colocado em sandbox, Claude Code o executa dentro do sandbox e o aprova automaticamente, sem pedir sua permissão. Comandos que não podem ser colocados em sandbox, como aqueles que precisam de acesso à rede para hosts não permitidos, voltam ao fluxo de permissão regular, onde Claude Code verifica suas [permission rules](/docs/pt/permissions) e bloqueia qualquer comando que essas regras não permitam, com um prompt no modo Manual.132Quando um comando pode ser colocado em sandbox, Claude Code o executa dentro do sandbox e o aprova automaticamente, sem pedir sua permissão. Comandos que não podem ser colocados em sandbox, como aqueles que precisam de acesso à rede para hosts não permitidos, voltam ao fluxo de permissão regular, onde Claude Code verifica suas [permission rules](/docs/pt/permissions) e bloqueia qualquer comando que essas regras não permitam, com um prompt no modo Manual.
145</Info>145</Info>
146 146
147<h4 id="regular-permissions-mode">147<h4 id="regular-permissions-mode">
148 Regular permissions mode148 Modo de permissões regular
149</h4>149</h4>
150 150
151Todos os comandos Bash passam pelo fluxo de permissão regular, mesmo quando em sandbox. Isso fornece mais controle, mas requer mais aprovações.151Todos os comandos Bash passam pelo fluxo de permissão regular, mesmo quando em sandbox. Isso fornece mais controle, mas requer mais aprovações.
152 152
153<h4 id="the-unsandboxed-retry-escape-hatch">153<h4 id="the-unsandboxed-retry-escape-hatch">
154 The unsandboxed retry escape hatch154 A válvula de escape da nova tentativa fora do sandbox
155</h4>155</h4>
156 156
157Alguns comandos não podem ser executados dentro do sandbox, como ferramentas que são incompatíveis com ele ou que precisam de um host que você não permitiu. Claude Code relata violações de sandbox no resultado do comando bloqueado, nomeando o caminho ou host que o sandbox negou, para que Claude veja o que o sandbox bloqueou. Em vez de falhar na tarefa ou exigir que você desative o sandboxing, Claude Code inclui um escape hatch: Claude analisa a violação e pode tentar novamente o comando com o parâmetro `dangerouslyDisableSandbox`.157Alguns comandos não podem ser executados dentro do sandbox, como ferramentas que são incompatíveis com ele ou que precisam de um host que você não permitiu. Claude Code relata violações de sandbox no resultado do comando bloqueado, nomeando o caminho ou host que o sandbox negou, para que Claude veja o que o sandbox bloqueou. Em vez de falhar na tarefa ou exigir que você desative o sandboxing, Claude Code inclui um escape hatch: Claude analisa a violação e pode tentar novamente o comando com o parâmetro `dangerouslyDisableSandbox`.
168Antes da v2.1.260, o modo strict sandbox colocava em sandbox comandos shell-mode em cada sessão.168Antes da v2.1.260, o modo strict sandbox colocava em sandbox comandos shell-mode em cada sessão.
169 169
170<h4 id="temporary-directories">170<h4 id="temporary-directories">
171 Temporary directories171 Diretórios temporários
172</h4>172</h4>
173 173
174O diretório temporário da sessão é gravável dentro do sandbox por padrão, junto com o diretório de trabalho. A menos que você [desabilite isolamento de sistema de arquivos](#disable-filesystem-isolation), Claude Code define `$TMPDIR` para este diretório para comandos em sandbox, portanto ferramentas que escrevem arquivos temporários funcionam sem configuração extra. Comandos não em sandbox herdam o `$TMPDIR` do seu shell inalterado, portanto enquanto isolamento de sistema de arquivos está ativado, comandos em sandbox e não em sandbox resolvem `$TMPDIR` para diretórios diferentes. Para passar arquivos temporários entre os dois, escreva-os no diretório de trabalho em vez disso.174O diretório temporário da sessão é gravável dentro do sandbox por padrão, junto com o diretório de trabalho. A menos que você [desabilite isolamento de sistema de arquivos](#disable-filesystem-isolation), Claude Code define `$TMPDIR` para este diretório para comandos em sandbox, portanto ferramentas que escrevem arquivos temporários funcionam sem configuração extra. Comandos não em sandbox herdam o `$TMPDIR` do seu shell inalterado, portanto enquanto isolamento de sistema de arquivos está ativado, comandos em sandbox e não em sandbox resolvem `$TMPDIR` para diretórios diferentes. Para passar arquivos temporários entre os dois, escreva-os no diretório de trabalho em vez disso.
175 175
176<h2 id="configure-sandboxing">176<h2 id="configure-sandboxing">
177 Configure sandboxing177 Configure o sandboxing
178</h2>178</h2>
179 179
180Personalize o comportamento do sandbox através de seu arquivo `settings.json`. Consulte [Settings](/docs/pt/settings-reference#sandbox-settings) para a referência de configuração completa.180Personalize o comportamento do sandbox através de seu arquivo `settings.json`. Consulte [Settings](/docs/pt/settings-reference#sandbox-settings) para a referência de configuração completa.
237Para negar aos comandos em sandbox acesso de leitura a diretórios home e volumes montados enquanto mantém os diretórios de trabalho legíveis, defina [`permissions.blockReadsOutsideWorkingDirectories`](/docs/pt/settings-reference#permissions-blockreadsoutsideworkingdirectories) em vez de escrever regras de caminho.237Para negar aos comandos em sandbox acesso de leitura a diretórios home e volumes montados enquanto mantém os diretórios de trabalho legíveis, defina [`permissions.blockReadsOutsideWorkingDirectories`](/docs/pt/settings-reference#permissions-blockreadsoutsideworkingdirectories) em vez de escrever regras de caminho.
238 238
239<h3 id="disable-filesystem-isolation">239<h3 id="disable-filesystem-isolation">
240 Disable filesystem isolation240 Desative o isolamento do sistema de arquivos
241</h3>241</h3>
242 242
243Defina `sandbox.filesystem.disabled` como `true` para pular o isolamento do sistema de arquivos enquanto mantém o isolamento de rede. O exemplo abaixo desativa o isolamento do sistema de arquivos enquanto mantém uma lista de permissão de domínios de rede:243Defina `sandbox.filesystem.disabled` como `true` para pular o isolamento do sistema de arquivos enquanto mantém o isolamento de rede. O exemplo abaixo desativa o isolamento do sistema de arquivos enquanto mantém uma lista de permissão de domínios de rede:
265</Warning>265</Warning>
266 266
267<h4 id="which-settings-can-disable-it">267<h4 id="which-settings-can-disable-it">
268 Which settings can disable it268 Quais configurações podem desativá-lo
269</h4>269</h4>
270 270
271Como desativar o isolamento do sistema de arquivos amplia o que os comandos em sandbox podem fazer, Claude Code honra `filesystem.disabled` apenas dessas fontes de configuração:271Como desativar o isolamento do sistema de arquivos amplia o que os comandos em sandbox podem fazer, Claude Code honra `filesystem.disabled` apenas dessas fontes de configuração:
272 272
273* Configurações de usuário, configurações gerenciadas e o sinalizador CLI `--settings` podem defini-lo. Configurações de projeto em `.claude/settings.json` e `.claude/settings.local.json` não podem, portanto um projeto verificado não pode desativar o isolamento do sistema de arquivos.273* Configurações de usuário, configurações gerenciadas e o sinalizador CLI `--settings` podem defini-lo. Configurações de projeto em `.claude/settings.json` e `.claude/settings.local.json` não podem, portanto um projeto verificado não pode desativar o isolamento do sistema de arquivos.
274* Quando as configurações gerenciadas configuram `sandbox.filesystem` de forma alguma, ou listam qualquer entrada `sandbox.credentials.files` com `"mode": "deny"`, apenas as configurações gerenciadas podem definir a chave. Isso mantém as restrições de sistema de arquivos implantadas pelo administrador em vigor; para relaxar tal implantação, defina `"disabled": true` nas configurações gerenciadas.274* Quando as configurações gerenciadas configuram `sandbox.filesystem` de qualquer forma, ou listam qualquer entrada `sandbox.credentials.files` com `"mode": "deny"`, apenas as configurações gerenciadas podem definir a chave. Isso mantém as restrições de sistema de arquivos implantadas pelo administrador em vigor; para relaxar tal implantação, defina `"disabled": true` nas configurações gerenciadas.
275* Quando [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/docs/pt/env-vars) está definido, Claude Code ignora `filesystem.disabled` de cada fonte, incluindo configurações gerenciadas, e mantém o isolamento do sistema de arquivos ativado.275* Quando [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/docs/pt/env-vars) está definido, Claude Code ignora `filesystem.disabled` de cada fonte, incluindo configurações gerenciadas, e mantém o isolamento do sistema de arquivos ativado.
276 276
277Se uma entrada `credentials.files` gerenciada fixa `filesystem.disabled`, bloqueando a chave para configurações gerenciadas para que os desenvolvedores não possam desativar o isolamento do sistema de arquivos, depende do `mode` da entrada e do que acontece com a entrada quando o sandbox inicia:277Se uma entrada `credentials.files` gerenciada fixa `filesystem.disabled`, bloqueando a chave para configurações gerenciadas para que os desenvolvedores não possam desativar o isolamento do sistema de arquivos, depende do `mode` da entrada e do que acontece com a entrada quando o sandbox inicia:
286Um recuo acontece quando o sandbox inicia, depois que Claude Code já leu as configurações em que a verificação de pino é executada, portanto uma entrada recuada nunca fixa. A validação reescreve uma entrada inválida para `deny` enquanto as configurações carregam, portanto uma entrada degradada fixa como uma que você escreveu como `deny`.286Um recuo acontece quando o sandbox inicia, depois que Claude Code já leu as configurações em que a verificação de pino é executada, portanto uma entrada recuada nunca fixa. A validação reescreve uma entrada inválida para `deny` enquanto as configurações carregam, portanto uma entrada degradada fixa como uma que você escreveu como `deny`.
287 287
288<h4 id="what-changes-when-filesystem-isolation-is-off">288<h4 id="what-changes-when-filesystem-isolation-is-off">
289 What changes when filesystem isolation is off289 O que muda quando o isolamento do sistema de arquivos está desativado
290</h4>290</h4>
291 291
292Definir `filesystem.disabled` remove as proteções que a camada do sistema de arquivos em si aplica. Proteções que outras camadas aplicam continuam se aplicando:292Definir `filesystem.disabled` remove as proteções que a camada do sistema de arquivos em si aplica. Proteções que outras camadas aplicam continuam se aplicando:
305* [`autoAllowBashIfSandboxed`](/docs/pt/settings-reference#sandbox-autoallowbashifsandboxed) ainda padrão para `true`, portanto comandos em sandbox continuam executando sem prompts. Defina-o como `false` para solicitar comandos em sandbox.305* [`autoAllowBashIfSandboxed`](/docs/pt/settings-reference#sandbox-autoallowbashifsandboxed) ainda padrão para `true`, portanto comandos em sandbox continuam executando sem prompts. Defina-o como `false` para solicitar comandos em sandbox.
306 306
307<h3 id="protect-credentials">307<h3 id="protect-credentials">
308 Protect credentials308 Proteja credenciais
309</h3>309</h3>
310 310
311A configuração `sandbox.credentials` declara arquivos de credenciais e variáveis de ambiente a proteger de comandos em sandbox. Cada entrada nomeia um caminho de arquivo ou uma variável de ambiente e um `mode`. O bloco `credentials` dedicado mantém as regras de credenciais agrupadas e separadas das regras gerais do sistema de arquivos. Requer Claude Code v2.1.187 ou posterior.311A configuração `sandbox.credentials` declara arquivos de credenciais e variáveis de ambiente a proteger de comandos em sandbox. Cada entrada nomeia um caminho de arquivo ou uma variável de ambiente e um `mode`. O bloco `credentials` dedicado mantém as regras de credenciais agrupadas e separadas das regras gerais do sistema de arquivos. Requer Claude Code v2.1.187 ou posterior.
348`sandbox.credentials` afeta apenas comandos Bash em sandbox. Para remover credenciais de todos os subprocessos independentemente do sandboxing, defina [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/docs/pt/env-vars).348`sandbox.credentials` afeta apenas comandos Bash em sandbox. Para remover credenciais de todos os subprocessos independentemente do sandboxing, defina [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/docs/pt/env-vars).
349 349
350<h3 id="mask-credentials">350<h3 id="mask-credentials">
351 Mask credentials351 Mascare credenciais
352</h3>352</h3>
353 353
354Mascaramento vai além de uma entrada `deny` em [Protect credentials](#protect-credentials). Em vez de bloquear uma credencial, Claude Code mostra aos comandos em sandbox um espaço reservado, o sentinela, e o [sandbox proxy](#network-isolation) troca o valor real em solicitações de saída para hosts que você permite. Para arquivos, a substituição é comportamento do Linux e WSL2; [macOS bloqueia o arquivo em vez disso](#mask-credential-files).354Mascaramento vai além de uma entrada `deny` em [Protect credentials](#protect-credentials). Em vez de bloquear uma credencial, Claude Code mostra aos comandos em sandbox um espaço reservado, o sentinela, e o [sandbox proxy](#network-isolation) troca o valor real em solicitações de saída para hosts que você permite. Para arquivos, a substituição é comportamento do Linux e WSL2; [macOS bloqueia o arquivo em vez disso](#mask-credential-files).
355 355
356<h4 id="mask-environment-variables">356<h4 id="mask-environment-variables">
357 Mask environment variables357 Mascare variáveis de ambiente
358</h4>358</h4>
359 359
360`"mode": "mask"` protege uma credencial mantendo as ferramentas que se autenticam com ela funcionando. `deny` remove a variável inteiramente, o que também quebra ferramentas que precisam dela, como `gh` ou `npm`. Requer Claude Code v2.1.199 ou posterior.360`"mode": "mask"` protege uma credencial mantendo as ferramentas que se autenticam com ela funcionando. `deny` remove a variável inteiramente, o que também quebra ferramentas que precisam dela, como `gh` ou `npm`. Requer Claude Code v2.1.199 ou posterior.
408* `onExtractNoMatch` controla o que acontece quando o padrão não corresponde a nada:408* `onExtractNoMatch` controla o que acontece quando o padrão não corresponde a nada:
409 * `warn`, o padrão, avisa e passa a variável através desmascarada409 * `warn`, o padrão, avisa e passa a variável através desmascarada
410 * `deny` desativa a variável dentro do sandbox410 * `deny` desativa a variável dentro do sandbox
411 * `error` para a configuração do sandbox até você corrigir a configuração411 * `error` interrompe a inicialização do sandbox até você corrigir a configuração
412* `decode: "jwt"`: para uma variável contendo um JSON Web Token (JWT). Claude Code verifica se o valor é um JWT e o substitui por um token falso estruturalmente válido, portanto o código dentro do sandbox que decodifica o token continua funcionando. Adicione `maskClaims` para listar reivindicações de carga útil de nível superior para mascarar individualmente em vez de substituir o token inteiro; as outras reivindicações permanecem legíveis. Quando o valor não se verifica como um JWT, ou nenhuma reivindicação listada corresponde, Claude Code passa a variável através desmascarada com um aviso. `decode` não pode ser combinado com `extract`.412* `decode: "jwt"`: para uma variável contendo um JSON Web Token (JWT). Claude Code verifica se o valor é um JWT e o substitui por um token falso estruturalmente válido, portanto o código dentro do sandbox que decodifica o token continua funcionando. Adicione `maskClaims` para listar reivindicações de carga útil de nível superior para mascarar individualmente em vez de substituir o token inteiro; as outras reivindicações permanecem legíveis. Quando o valor não se verifica como um JWT, ou nenhuma reivindicação listada corresponde, Claude Code passa a variável através desmascarada com um aviso. `decode` não pode ser combinado com `extract`.
413 413
414Consulte as [linhas `credentials.envVars[]` na referência de configurações](/docs/pt/settings-reference#sandbox-settings) para a lista de campos completa.414Consulte as [linhas `credentials.envVars[]` na referência de configurações](/docs/pt/settings-reference#sandbox-settings) para a lista de campos completa.
415 415
416<h4 id="re-sign-aws-requests">416<h4 id="re-sign-aws-requests">
417 Re-sign AWS requests417 Reassine solicitações da AWS
418</h4>418</h4>
419 419
420Solicitações AWS carregam assinaturas SigV4 sobre o conteúdo da solicitação, portanto mascara `AWS_ACCESS_KEY_ID` e `AWS_SECRET_ACCESS_KEY` juntos. O proxy detecta uma solicitação SigV4 pela sentinela da chave de acesso e a re-assina depois de substituir os valores reais. Mascarar apenas o segredo deixa solicitações assinadas com o espaço reservado, que o proxy não pode detectar, portanto falham na AWS; Claude Code avisa sobre este caso na inicialização, mas não quando apenas a ID da chave de acesso é mascarada. Uma solicitação detectada que o proxy não pode re-assinar, como uma faltando seu cabeçalho `x-amz-date`, falha com um erro de proxy em vez de alcançar o servidor com uma assinatura quebrada.420Solicitações AWS carregam assinaturas SigV4 sobre o conteúdo da solicitação, portanto mascara `AWS_ACCESS_KEY_ID` e `AWS_SECRET_ACCESS_KEY` juntos. O proxy detecta uma solicitação SigV4 pela sentinela da chave de acesso e a re-assina depois de substituir os valores reais. Mascarar apenas o segredo deixa solicitações assinadas com o espaço reservado, que o proxy não pode detectar, portanto falham na AWS; Claude Code avisa sobre este caso na inicialização, mas não quando apenas a ID da chave de acesso é mascarada. Uma solicitação detectada que o proxy não pode re-assinar, como uma faltando seu cabeçalho `x-amz-date`, falha com um erro de proxy em vez de alcançar o servidor com uma assinatura quebrada.
455| Assinaturas assimétricas SigV4A | `sigv4a` | Não há HMAC de chave compartilhada para recomputar |455| Assinaturas assimétricas SigV4A | `sigv4a` | Não há HMAC de chave compartilhada para recomputar |
456 456
457<h4 id="mask-credential-files">457<h4 id="mask-credential-files">
458 Mask credential files458 Mascare arquivos de credenciais
459</h4>459</h4>
460 460
461Entradas de arquivo também aceitam `"mode": "mask"`, que requer Claude Code v2.1.221 ou posterior. O que um comando em sandbox vê depende da plataforma:461Entradas de arquivo também aceitam `"mode": "mask"`, que requer Claude Code v2.1.221 ou posterior. O que um comando em sandbox vê depende da plataforma:
501 501
502 * `warn`, o padrão, avisa e pula a entrada, portanto comandos em sandbox podem ler o arquivo real desmascarado. O padrão se adequa a credenciais que podem estar legitimamente ausentes; se o segredo pode estar presente mas o padrão pode perdê-lo, use `deny`502 * `warn`, o padrão, avisa e pula a entrada, portanto comandos em sandbox podem ler o arquivo real desmascarado. O padrão se adequa a credenciais que podem estar legitimamente ausentes; se o segredo pode estar presente mas o padrão pode perdê-lo, use `deny`
503 * `deny` torna o arquivo ilegível em vez disso503 * `deny` torna o arquivo ilegível em vez disso
504 * `error` para a configuração do sandbox até você corrigir a configuração504 * `error` interrompe a inicialização do sandbox até você corrigir a configuração
505 505
506 Claude Code trata `deny` como `error` sempre que o bloqueio de leitura não seria aplicado: quando você [desativa o isolamento do sistema de arquivos](#disable-filesystem-isolation), e quando uma entrada `filesystem.allowRead` de qualquer fonte de configuração reabre o caminho do arquivo.506 Claude Code trata `deny` como `error` sempre que o bloqueio de leitura não seria aplicado: quando você [desativa o isolamento do sistema de arquivos](#disable-filesystem-isolation), e quando uma entrada `filesystem.allowRead` de qualquer fonte de configuração reabre o caminho do arquivo.
507* `maskDuplicates` também substitui cópias verbatim de cada valor de credencial mascarado, uma captura `extract` ou um token verificado por `decode`, encontrado fora dos intervalos correspondidos, para um segredo repetido onde a correspondência não alcança. Ele corresponde substrings brutas, portanto um valor curto ou comum seria substituído em todos os lugares que aparece; reserve-o para segredos longos e de alta entropia. Padrão: false.507* `maskDuplicates` também substitui cópias verbatim de cada valor de credencial mascarado, uma captura `extract` ou um token verificado por `decode`, encontrado fora dos intervalos correspondidos, para um segredo repetido onde a correspondência não alcança. Ele corresponde substrings brutas, portanto um valor curto ou comum seria substituído em todos os lugares que aparece; reserve-o para segredos longos e de alta entropia. Padrão: false.
641O [modo auto-allow](#sandbox-modes) do sandbox é separado do [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode): auto-allow aprova comandos Bash porque o limite do sandbox os contém, enquanto modo auto usa um classificador para revisar ações. Os dois funcionam independentemente e podem ser combinados. Para escolher um limite de isolamento para execuções autônomas, consulte [Ambientes de sandbox](/docs/pt/sandbox-environments#how-isolation-relates-to-permission-modes). Para uma tabela de emparelhamentos comuns de modo de permissão e sandbox com os sinalizadores que iniciam cada um, consulte [Configurações comuns](/docs/pt/permission-modes#common-setups).641O [modo auto-allow](#sandbox-modes) do sandbox é separado do [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode): auto-allow aprova comandos Bash porque o limite do sandbox os contém, enquanto modo auto usa um classificador para revisar ações. Os dois funcionam independentemente e podem ser combinados. Para escolher um limite de isolamento para execuções autônomas, consulte [Ambientes de sandbox](/docs/pt/sandbox-environments#how-isolation-relates-to-permission-modes). Para uma tabela de emparelhamentos comuns de modo de permissão e sandbox com os sinalizadores que iniciam cada um, consulte [Configurações comuns](/docs/pt/permission-modes#common-setups).
642 642
643<h2 id="configure-the-sandbox-for-your-organization">643<h2 id="configure-the-sandbox-for-your-organization">
644 Configure the sandbox for your organization644 Configure o sandbox para sua organização
645</h2>645</h2>
646 646
647Administradores podem exigir sandboxing para cada usuário, impedir que desenvolvedores ampliem a política e rotear tráfego de sandbox através de um proxy corporativo.647Administradores podem exigir sandboxing para cada usuário, impedir que desenvolvedores ampliem a política e rotear tráfego de sandbox através de um proxy corporativo.
648 648
649<h3 id="enforce-sandboxing-with-managed-settings">649<h3 id="enforce-sandboxing-with-managed-settings">
650 Enforce sandboxing with managed settings650 Imponha o sandboxing com configurações gerenciadas
651</h3>651</h3>
652 652
653Para exigir o sandbox para cada desenvolvedor, entregue as chaves `sandbox` através de [managed settings](/docs/pt/managed-settings#delivery-mechanisms), seja como um arquivo gerenciado pelo seu MDM ou através de [server-managed settings](/docs/pt/server-managed-settings) no Claude.ai.653Para exigir o sandbox para cada desenvolvedor, entregue as chaves `sandbox` através de [managed settings](/docs/pt/managed-settings#delivery-mechanisms), seja como um arquivo gerenciado pelo seu MDM ou através de [server-managed settings](/docs/pt/server-managed-settings) no Claude.ai.
676O sandbox não é executado no Windows nativo, portanto se sua frota inclui hosts Windows, escope esta configuração para macOS e Linux ou tenha esses usuários executarem Claude Code dentro do WSL2 ou um container.676O sandbox não é executado no Windows nativo, portanto se sua frota inclui hosts Windows, escope esta configuração para macOS e Linux ou tenha esses usuários executarem Claude Code dentro do WSL2 ou um container.
677 677
678<h3 id="keep-developers-from-widening-the-policy">678<h3 id="keep-developers-from-widening-the-policy">
679 Keep developers from widening the policy679 Impeça que desenvolvedores ampliem a política
680</h3>680</h3>
681 681
682Para chaves booleanas como `enabled` e `failIfUnavailable`, Claude Code usa o valor gerenciado e ignora qualquer coisa que um desenvolvedor defina localmente. Para chaves de array como `excludedCommands` e `allowRead`, Claude Code mescla entradas de cada escopo que a sessão carrega, portanto um desenvolvedor pode anexar entradas que ampliem a política.682Para chaves booleanas como `enabled` e `failIfUnavailable`, Claude Code usa o valor gerenciado e ignora qualquer coisa que um desenvolvedor defina localmente. Para chaves de array como `excludedCommands` e `allowRead`, Claude Code mescla entradas de cada escopo que a sessão carrega, portanto um desenvolvedor pode anexar entradas que ampliem a política.
688`excludedCommands` não tem um equivalente de lockdown apenas gerenciado, portanto um desenvolvedor sempre pode anexar entradas que executem comandos adicionais fora do sandbox. Mantenha a lista gerenciada estreita.688`excludedCommands` não tem um equivalente de lockdown apenas gerenciado, portanto um desenvolvedor sempre pode anexar entradas que executem comandos adicionais fora do sandbox. Mantenha a lista gerenciada estreita.
689 689
690<h3 id="custom-proxy-configuration">690<h3 id="custom-proxy-configuration">
691 Custom proxy configuration691 Configuração de proxy personalizado
692</h3>692</h3>
693 693
694Para organizações que exigem segurança de rede avançada, você pode implementar um proxy personalizado para:694Para organizações que exigem segurança de rede avançada, você pode implementar um proxy personalizado para:
727 727
728 Após a falha, Claude pode [oferecer executar novamente o comando fora do sandbox](#the-unsandboxed-retry-escape-hatch); aprove essa nova tentativa ou execute o comando git você mesmo em outro terminal. Se você definiu `allowUnsandboxedCommands` como `false`, Claude não pode oferecer a nova tentativa, então execute o comando você mesmo. Se o mesmo comando git falhar frequentemente, adicione-o a [`excludedCommands`](/docs/pt/settings-reference#sandbox-excludedcommands).728 Após a falha, Claude pode [oferecer executar novamente o comando fora do sandbox](#the-unsandboxed-retry-escape-hatch); aprove essa nova tentativa ou execute o comando git você mesmo em outro terminal. Se você definiu `allowUnsandboxedCommands` como `false`, Claude não pode oferecer a nova tentativa, então execute o comando você mesmo. Se o mesmo comando git falhar frequentemente, adicione-o a [`excludedCommands`](/docs/pt/settings-reference#sandbox-excludedcommands).
729* **Bubblewrap falha ao iniciar dentro de um container**: em um container sem privilégios, bubblewrap não consegue montar um sistema de arquivos `/proc` fresco, então comandos em sandbox falham com um erro `bwrap` como `Can't mount proc on /newroot/proc: Operation not permitted`. Defina [`enableWeakerNestedSandbox`](/docs/pt/settings-reference#sandbox-enableweakernestedsandbox) como `true` para que o sandbox interno faça bind-mount do `/proc` existente do container em vez disso. Use esta configuração apenas quando o container externo já fornece o limite de isolamento que você precisa, pois expõe informações de processo a comandos em sandbox que uma montagem `/proc` fresca ocultaria.729* **Bubblewrap falha ao iniciar dentro de um container**: em um container sem privilégios, bubblewrap não consegue montar um sistema de arquivos `/proc` fresco, então comandos em sandbox falham com um erro `bwrap` como `Can't mount proc on /newroot/proc: Operation not permitted`. Defina [`enableWeakerNestedSandbox`](/docs/pt/settings-reference#sandbox-enableweakernestedsandbox) como `true` para que o sandbox interno faça bind-mount do `/proc` existente do container em vez disso. Use esta configuração apenas quando o container externo já fornece o limite de isolamento que você precisa, pois expõe informações de processo a comandos em sandbox que uma montagem `/proc` fresca ocultaria.
730* **Arquivos de somente leitura de 0 bytes aparecem em caminhos de configurações `.claude`, e "Sim, e não pergunte novamente" não salva**: no Linux e WSL2, o sandbox mantém uma negação de gravação em um arquivo que ainda não existe criando um espaço reservado de somente leitura de 0 bytes lá enquanto um comando em sandbox é executado. O sandbox remove o espaço reservado depois. Se uma sessão for encerrada antes dessa limpeza ser executada, por exemplo por SIGKILL, os espaços reservados permanecem. Sessões posteriores os vinculam como somente leitura novamente a cada início, então uma gravação de configurações como salvar uma escolha de permissão falha onde um está.
731
732 Execute `claude doctor` para listar os arquivos de espaço reservado restantes. O aviso [`Stale sandbox mask files left by a killed session`](/docs/pt/errors#stale-sandbox-mask-files-left-by-a-killed-session) nomeia até três deles e conta o resto. Delete cada arquivo com `rm` enquanto nenhuma outra sessão Claude Code está sendo executada nesse projeto. Antes da v2.1.257, Claude Code deixava os mesmos espaços reservados para trás sem sinalizá-los.
730* **`--dangerously-skip-permissions` falha como root**: este sinalizador é bloqueado ao executar como root ou via sudo no Linux e macOS, porque acesso root combinado com nenhum prompt de permissão pode modificar qualquer arquivo ou serviço no sistema. A verificação é ignorada automaticamente dentro de um sandbox reconhecido. Para executar autonomamente em um container, use a configuração [dev container](/docs/pt/devcontainer), que executa Claude Code como um usuário não-root.733* **`--dangerously-skip-permissions` falha como root**: este sinalizador é bloqueado ao executar como root ou via sudo no Linux e macOS, porque acesso root combinado com nenhum prompt de permissão pode modificar qualquer arquivo ou serviço no sistema. A verificação é ignorada automaticamente dentro de um sandbox reconhecido. Para executar autonomamente em um container, use a configuração [dev container](/docs/pt/devcontainer), que executa Claude Code como um usuário não-root.
731 734
732<h2 id="limitations">735<h2 id="limitations">