Acesso Total ao Disco no macOS e agentes de IA: o que a Apple disse
O que a Apple disse sobre o Acesso Total ao Disco (Full Disk Access) e o que isso significa para agentes de IA? Em 2 de outubro de 2026, a Apple publicou uma notícia curta para desenvolvedores, “Updates to Full Disk Access in macOS” (atualizações do Acesso Total ao Disco no macOS). Ela diz que o Acesso Total ao Disco “largely sidesteps” (contorna em grande parte) os controles que protegem os dados privados dos usuários, que “Some developers are using Full Disk Access in ways that could put users at risk” (alguns desenvolvedores estão usando o Acesso Total ao Disco de formas que podem colocar os usuários em risco) e que “Going forward, we will introduce additional controls to ensure that users who genuinely wish to grant an app this extraordinary level of access can only do so with very explicit user action.” (daqui em diante, a Apple vai introduzir controles adicionais para que quem realmente quiser conceder a um app esse nível extraordinário de acesso só possa fazê-lo com uma ação muito explícita). O motivo apresentado: “As AI agents become increasingly capable and autonomous, the risks associated with this level of access will grow substantially.” (à medida que os agentes de IA ficam mais capazes e autônomos, os riscos associados a esse nível de acesso vão crescer substancialmente).1 A notícia não cita nenhuma versão do macOS, nenhuma data, nenhum mecanismo e nenhum app. Para quem roda agentes em um Mac, o que importa hoje é como um agente acaba com esse acesso. Um agente de linha de comando roda sob o terminal que o iniciou. Na documentação da Apple que li, não há uma regra geral para isso, mas a página de manual do eslogger diz que rodar essa ferramenta “from an app, including Terminal.app or a third-party terminal emulator, requires the respective app to be authorized for Full Disk Access.” (a partir de um app, incluindo o Terminal.app ou um emulador de terminal de terceiros, exige que esse app esteja autorizado no Acesso Total ao Disco).2 Um engenheiro de suporte da Apple, em um post no fórum, resume assim: “The tool’s responsible code is Terminal.” (o código responsável pela ferramenta é o Terminal).3 Dê Acesso Total ao Disco ao seu terminal e todo agente que você iniciar nele poderá ler o que o terminal lê: Mail, Messages, dados do Safari e backups do Time Machine, segundo a lista da Apple.4 Os sandboxes dos fornecedores não mudam isso por padrão. No meu Mac, uma leitura que exige Acesso Total ao Disco funcionou a partir do shell do agente, funcionou de novo dentro do sandbox somente leitura do Codex e dentro do sandbox runtime da Anthropic, e só foi recusada quando uma regra do sandbox negava aquela pasta exata ou quando iniciei a mesma leitura fora do terminal.5
TL;DR
- O que a Apple disse. Em 2 de outubro de 2026, a Apple disse aos desenvolvedores que “will introduce additional controls” (vai introduzir controles adicionais) para que conceder Acesso Total ao Disco exija “very explicit user action” (uma ação muito explícita do usuário), e apontou os agentes de IA como o motivo pelo qual o risco “will grow substantially” (vai crescer substancialmente). A notícia não traz versão, data nem mecanismo. As notas de versão do beta 3 do macOS 27.2 não têm nenhuma linha sobre o assunto. Não encontrei nenhuma entrada do macOS 27.1 no feed de lançamentos nem no índice de notas de versão de 11 de outubro: o feed lista o macOS 27.0.1 (28 de setembro), lançado sem notas de versão para desenvolvedores, e depois o beta 3 do macOS 27.2; os próprios betas do 27.2 começaram em 16 de setembro.16789
- O que é o Acesso Total ao Disco. Um ajuste de Privacidade e Segurança (Privacy & Security) que permite a um app “access all files on your computer” (acessar todos os arquivos do computador), incluindo dados do Mail, Messages, Safari e Casa, backups do Time Machine e “certain administrative settings for all users on this Mac.” (certos ajustes administrativos de todos os usuários deste Mac). Um app não pode pedir esse acesso com um aviso; o usuário adiciona o app manualmente, ou um perfil de MDM o concede. No que li, a Apple o vinculou três vezes a ferramentas de backup e de disco: na WWDC19, na WWDC23 e em 2 de outubro.410211121
- Como os agentes o obtêm. Por dois caminhos. Um agente de linha de comando (Claude Code, Codex CLI, Gemini CLI, Hermes Agent, Aider) é verificado com base no app dentro do qual roda, então um terminal com Acesso Total ao Disco o repassa; a Apple afirma isso ferramenta por ferramenta em páginas de manual e por meio de seus engenheiros de suporte nos fóruns, nunca como uma regra geral documentada. Apps de agente para desktop têm entradas próprias, e dois fornecedores de agentes, a Nous Research com o Hermes e o OpenClaw, mandam os usuários concederem Acesso Total ao Disco para que o agente possa ler o Messages.231314
- O que os sandboxes fazem. Os sandboxes Seatbelt do Claude Code, do Codex, do Gemini CLI e do Cursor confinam as gravações, e todos, exceto o perfil padrão do Gemini CLI, confinam a rede; as leituras padrão deles são amplas. No meu Mac, os dois sandboxes que rodei mantiveram a concessão de Acesso Total ao Disco intacta, e, pela descrição do controle de acesso obrigatório feita pelo engenheiro de suporte da Apple, nenhum deles consegue acrescentar uma. O sandbox do Claude Code vem desligado por padrão; o do Codex, ligado. No meu Mac, uma leitura protegida passou pelo sandbox somente leitura do Codex e pelo sandbox runtime da Anthropic; dentro dos sandboxes, ela só parou quando neguei a pasta pelo nome.151617185
- No meu Mac. A lista do Acesso Total ao Disco tem 75 linhas, entre elas três terminais, os apps ChatGPT, Cursor e Xcode, 30 binários do Claude Code numerados por versão, o
nodee quatro interpretadores Python, e a entrada do servidor SSH. O shell do agente dentro do Ghostty tinha acesso funcionando; a mesma leitura a partir de um job do launchd, sem nenhum terminal acima dele, foi recusada pelo TCC.195 - O que fazer agora. Veja quem tem o acesso; tire-o do terminal em que você roda agentes; nunca o dê a um interpretador; ligue o sandbox do fornecedor e negue as leituras de que você não precisa; rode qualquer agente que leia o Messages com um usuário separado do macOS, ou não rode; e mantenha a aprovação por envio para tudo o que fala em seu nome. Cada passo abaixo traz sua fonte e seu custo.420152122
- O que pode mudar. As palavras da Apple comportam um fluxo de concessão mais rígido, um escopo mais estreito, um tratamento diferente para concessões que passam de um app para os programas que ele inicia, e mudanças para Macs gerenciados. A seção 7 confronta cada uma com as mudanças próximas que a Apple já lançou no macOS 27 e no Xcode 27, com a condição de que cada uma depende. Nenhuma é uma previsão.1232425
1. O que a Apple disse em 2 de outubro, e o que não disse
O feed de notícias para desenvolvedores da Apple datou a notícia de sexta-feira, 2 de outubro de 2026, 09:00:19, horário do Pacífico, entre um aviso de 1º de outubro sobre a expiração de uma autoridade certificadora do Developer ID e os anúncios de 5 de outubro sobre o iPhone Duo e os recursos da App Store.26 A notícia tem dois parágrafos. Salvei o texto em 11 de outubro e o baixei de novo 19 minutos depois; tirando apóstrofos curvos versus retos, as duas cópias são idênticas, então ele não mudou entre minhas duas leituras.1
O primeiro parágrafo apresenta o problema. A Apple diz que oferece aos desenvolvedores “powerful APIs to build incredible capabilities into their apps for Apple products, backed by a set of controls designed to protect users’ private data,” (APIs poderosas para criar recursos incríveis em seus apps para produtos Apple, apoiadas por um conjunto de controles feitos para proteger os dados privados dos usuários) e em seguida: “Full Disk Access largely sidesteps these controls in order to allow backup apps to function properly on the Mac.” (o Acesso Total ao Disco contorna em grande parte esses controles para que os apps de backup funcionem direito no Mac). A frase seguinte é a acusação: “Some developers are using Full Disk Access in ways that could put users at risk,” (alguns desenvolvedores estão usando o Acesso Total ao Disco de formas que podem colocar os usuários em risco), expondo “everything on their systems,” (tudo o que há em seus sistemas), que a Apple detalha como “files, mail, messages, and even browsing history,” (arquivos, e-mails, mensagens e até o histórico de navegação), e fazendo isso “without users’ full knowledge and understanding.” (sem o pleno conhecimento e entendimento dos usuários). O parágrafo termina em pessoas que nunca concordaram com nada: “For communication apps, this can also compromise the privacy of the people users are communicating with.” (no caso de apps de comunicação, isso também pode comprometer a privacidade das pessoas com quem os usuários se comunicam).1
O segundo parágrafo é a promessa e o motivo, citado na íntegra:
“Going forward, we will introduce additional controls to ensure that users who genuinely wish to grant an app this extraordinary level of access can only do so with very explicit user action. Addressing this is critical. As AI agents become increasingly capable and autonomous, the risks associated with this level of access will grow substantially. We are committed to ensuring users clearly understand these risks before granting such access, so they can make informed decisions about their own data and privacy.”1
(Em português: daqui em diante, a Apple vai introduzir controles adicionais para garantir que os usuários que realmente queiram conceder a um app esse nível extraordinário de acesso só possam fazê-lo com uma ação muito explícita. Resolver isso é fundamental. À medida que os agentes de IA ficam mais capazes e autônomos, os riscos associados a esse nível de acesso vão crescer substancialmente. A Apple se compromete a garantir que os usuários entendam claramente esses riscos antes de conceder esse acesso, para que possam tomar decisões informadas sobre os próprios dados e a própria privacidade).
Três coisas nele merecem uma leitura atenta.
O assunto é a concessão, não a API. Todo verbo da promessa trata do momento em que um usuário concede o acesso: usuários “who genuinely wish to grant an app” (que realmente queiram concedê-lo a um app), “very explicit user action” (uma ação muito explícita do usuário), entender os riscos “before granting such access” (antes de conceder esse acesso). Nada na notícia diz que o Acesso Total ao Disco vai cobrir menos, que os apps que o têm serão revisados ou que ele vai deixar de existir. Minha leitura, identificada como tal: a notícia descreve uma mudança na forma de ligar a chave e não diz nada, em nenhum sentido, sobre o que a chave libera depois de ligada.
O motivo são os agentes, mas o alvo são os apps. A Apple cita “AI agents” (agentes de IA) uma única vez, como o motivo pelo qual o risco “will grow substantially” (vai crescer substancialmente). Não diz que os agentes são os apps que abusam do acesso hoje; aquela frase fala de “Some developers” (alguns desenvolvedores). Também não diz como um controle sobre a concessão a “an app” (um app) chegaria a um agente, que no Mac muitas vezes nem é um app, e sim um programa de linha de comando rodando dentro de um. A seção 3 trata justamente dessa lacuna.
“Communication apps” (apps de comunicação) é a categoria destacada pelo dano a terceiros. A Apple não cita nenhum app nem nenhum desenvolvedor. A notícia menciona dois tipos de software: os apps de backup, como o motivo de o acesso existir, e os apps de comunicação, o único tipo que ela associa a um dano que vai além do usuário: as pessoas do outro lado da conversa, que não concederam nada. A seção 3 mostra dois fornecedores de agentes cujas integrações com o Messages, segundo a própria documentação, precisam de Acesso Total ao Disco; se a Apple tinha algum deles em mente, a notícia não diz, e eu não presumo isso.
O que a notícia não diz
Lida pelo que falta, a notícia não traz:
- Nem versão do macOS nem data. “Going forward” (daqui em diante) é a única expressão de tempo.
- Nenhum mecanismo. Nenhum desenho de aviso, entitlement, API, regra da App Review ou mudança no gerenciamento de dispositivos.
- Nada sobre concessões existentes. Não diz se os apps que já estão na lista do Acesso Total ao Disco continuam lá nem se os usuários serão consultados de novo.
- Nada sobre Macs gerenciados. Não menciona MDM, embora o MDM possa conceder Acesso Total ao Disco hoje (seção 2).
- Nenhuma ação para desenvolvedores. Nenhum prazo, nenhum link para documentação, nenhuma data até a qual os apps precisem mudar.
Procurei nos lugares onde a Apple colocaria um mecanismo. O índice de notas de versão do macOS, lido em 11 de outubro, lista exatamente duas entradas do macOS 27, “macOS 27.2 Golden Gate Beta 3 Release Notes” e “macOS 27 Golden Gate Release Notes”. Não encontrei nenhuma entrada do macOS 27.1 nesse índice nem no feed de lançamentos da Apple, lido no mesmo dia, que lista o macOS 27.0.1 (26A434), datado de 28 de setembro, e depois o beta 3 do 27.2. A atualização 27.0.1 não tem página de notas de versão para desenvolvedores; o endereço que essa página usaria retornou HTTP 404 quando o testei, assim como os endereços do 27.1 e do beta do 27.1.87 As notas do beta 3 do 27.2 (o beta, build 26B5101f, está datado de 5 de outubro no feed de lançamentos da Apple, três dias depois da notícia) têm seis seções (General, AppKit, Display Settings, Notifications, Shortcuts, StoreKit Testing in Xcode), e nenhuma menciona Acesso Total ao Disco, TCC ou Privacidade e Segurança; o mais próximo disso é uma linha do AppKit dizendo que um padrão de prévia para desenvolvedores sobre a privacidade da área de transferência “has been removed.” (foi removido).67 A newsletter de outubro da Apple para desenvolvedores, publicada quatro dias depois da notícia, trata dos envios para o iPhone Duo, dos labs e da documentação, e não diz nada sobre Acesso Total ao Disco nem sobre agentes.27 As quatro sessões da WWDC26 que a Apple classifica em Privacy & Security, incluindo uma intitulada “Secure your app: mitigate risks to agentic features” (proteja seu app: reduza os riscos de recursos agênticos), não mencionam o Acesso Total ao Disco.2829
O único outro texto da Apple sobre agentes e acesso a arquivos
Um documento da Apple fala, sim, de permissões de arquivos para agentes de IA, e ele trata do Xcode, não do macOS. As notas de versão do Xcode 27 dizem: “Coding Intelligence now includes a new security layer that monitors and controls filesystem access by coding agents and any processes they spawn. This can be enabled in Coding Intelligence settings.” (o Coding Intelligence agora inclui uma nova camada de segurança que monitora e controla o acesso ao sistema de arquivos por agentes de programação e por quaisquer processos que eles iniciem; ela pode ser ativada nos ajustes do Coding Intelligence).24 Essa é a entrada inteira. Ela não diz o que a camada permite ou bloqueia, se vem ativada por padrão (a expressão “can be enabled”, pode ser ativada, sugere que não), como se relaciona com o TCC nem se cobre agentes fora do Xcode. As mesmas notas descrevem um servidor MCP em prévia que permite a “code-signed agents” (agentes com assinatura de código) usar projetos de uma árvore de diretórios “for extended periods of time without being asked for additional permissions,” (por longos períodos sem que precisem pedir permissões adicionais) e uma flag, --unsafe-always-allow-all-agents, que segundo a Apple “is not a recommended configuration for at-desk use.” (não é uma configuração recomendada para uso diante do computador).24 Nenhuma das duas entradas menciona o Acesso Total ao Disco.
A sessão da WWDC26 sobre recursos agênticos é o mais próximo de um modelo de ameaças para agentes no material da Apple que li. Ela cita a “Simon Willison’s Lethal Trifecta” (a tríade letal de Simon Willison), segundo a qual o usuário corre mais perigo quando um agente tem “access to private data, exposure to untrusted content, and the ability to externally communicate.” (acesso a dados privados, exposição a conteúdo não confiável e a capacidade de se comunicar com o exterior).29 O Acesso Total ao Disco é o primeiro desses três itens em uma única chave; essa é a minha leitura de por que a notícia de outubro diz que o risco cresce com os agentes, e não o raciocínio declarado da Apple.
2. O que é o Acesso Total ao Disco
O controle, nas palavras da Apple
O Acesso Total ao Disco é uma linha em Ajustes do Sistema (System Settings) > Privacidade e Segurança. O Manual do Usuário do Mac para o macOS 27 o descreve assim: “Allow apps to access all files on your computer, including data from other apps (for example, Mail, Messages, Safari, and Home), data from Time Machine backups, and certain administrative settings for all users on this Mac.” (permita que apps acessem todos os arquivos do computador, incluindo dados de outros apps, como Mail, Messages, Safari e Casa, dados de backups do Time Machine e certos ajustes administrativos de todos os usuários deste Mac).4 As linhas ao redor dizem outra coisa. Calendários, Contatos, Arquivos e Pastas (Files and Folders) e a maioria das demais terminam com “The listed apps have requested access.” (os apps da lista solicitaram acesso). A linha do Acesso Total ao Disco, por sua vez, diz “To add an app, click [the Add button] , select the app in the list, then click Open.” (para adicionar um app, clique no botão Adicionar, selecione o app na lista e clique em Abrir).4 A diferença é justamente o ponto: os apps pedem as outras permissões, e é o usuário quem precisa ir atrás desta.
O Apple Platform Security diz a mesma coisa em forma de tabela. A página sobre o controle do acesso de apps a arquivos lista “Full internal storage access” (acesso total ao armazenamento interno, o nome que ela dá ao mesmo controle) com um X em “User prompted by app” (o app pergunta ao usuário) e um visto em “User needs to edit system privacy settings” (o usuário precisa alterar os ajustes de privacidade do sistema); Arquivos e Pastas, ao contrário, é pedido pelo app.10 A referência de gerenciamento de dispositivos, escrita para administradores, descreve o serviço como acesso “to all protected files, including system administration files,” (a todos os arquivos protegidos, incluindo arquivos de administração do sistema) e o guia de implantação da Apple o lista como “System Policy All Files”, que “Allows specified apps access to data like Mail, Messages, Safari, Home, Time Machine backups, and certain administrative settings for all users of the Mac.” (permite que os apps especificados acessem dados como Mail, Messages, Safari, Casa, backups do Time Machine e certos ajustes administrativos de todos os usuários do Mac).3031
Há três coisas que a Apple não publica e que vale saber antes de raciocinar sobre esse controle:
- Não existe uma lista completa do que ele protege. Um engenheiro do Developer Technical Support da Apple, escrevendo nos fóruns de desenvolvedores da Apple (um post de funcionário, não documentação), diz “The exact list of file system locations protected by MAC is not documented and, as illustrated by the list above, can change over time.” (a lista exata de locais do sistema de arquivos protegidos pelo MAC não é documentada e, como mostra a lista acima, pode mudar com o tempo).20 MAC, aqui, é o controle de acesso obrigatório (mandatory access control), o mecanismo por baixo de tudo.
- Não é por usuário. O mesmo engenheiro: “Some MAC privileges are per user (Files and Folders) and some are system wide (Full Disk Access).” (alguns privilégios do MAC são por usuário, como Arquivos e Pastas, e outros valem para o sistema inteiro, como o Acesso Total ao Disco).20 Uma concessão feita com uma conta conectada vale para aquele programa em todas as contas.
- TCC é um nome que a Apple usa, mas mal define. O subsistema que guarda essas decisões é o TCC. O header do Endpoint Security no SDK do macOS 27 o escreve como “Transparency, Consent, and Control (TCC)”, um painel da Apple na WWDC26 disse “TCC stands for transparency, consent and control” (TCC significa transparência, consentimento e controle), e o post do engenheiro de suporte acrescenta que o TCC “has no API surface” (não tem nenhuma API exposta).323320 No banco de dados do TCC no meu Mac, as linhas do Acesso Total ao Disco ficam guardadas com o nome de serviço
kTCCServiceSystemPolicyAllFiles. Essa string não aparece em nenhum documento, página de manual ou header de SDK da Apple que verifiquei; os nomes documentados pela Apple são a chave de perfilSystemPolicyAllFilese a âncora de ajustesPrivacy_AllFiles.19302534
Como ele é concedido
Pelo usuário, manualmente. O usuário abre a linha do Acesso Total ao Disco, clica em Adicionar e escolhe o app.4 A Apple não documenta nenhuma forma de um app exibir um aviso pedindo esse acesso. O que a documentação da Apple oferece no lugar é um link que leva o usuário ao painel certo. Para apps com o entitlement de cliente do Endpoint Security (o header exige o entitlement com.apple.developer.endpoint-security.client de quem chama es_new_client), o header do Endpoint Security diz “The only supported way to check if an application is properly TCC authorized for Full Disk Access is to call es_new_client and handling ES_NEW_CLIENT_RESULT_ERR_NOT_PERMITTED,” (a única forma suportada de verificar se um aplicativo tem autorização do TCC para o Acesso Total ao Disco é chamar es_new_client e tratar ES_NEW_CLIENT_RESULT_ERR_NOT_PERMITTED) e que, “To direct the user to the Full Disk Access section in System Settings,” (para levar o usuário à seção do Acesso Total ao Disco nos Ajustes do Sistema) um app pode abrir x-apple.systempreferences:com.apple.settings.PrivacySecurity.extension?Privacy_AllFiles no macOS 13 e posteriores.25 Na WWDC19, a Apple descreveu o mesmo padrão: os apps “can test for authorization using FileManager or POSIX level APIs, and if necessary, can guide the user to the security and privacy preference pane, where the user can then approve the app if that’s what they want.” (podem testar a autorização com o FileManager ou com APIs de nível POSIX e, se necessário, guiar o usuário até o painel de preferências de segurança e privacidade, onde ele pode aprovar o app se quiser).11 Em 2018, um desenvolvedor pediu nos fóruns da Apple “an API call that causes a prompt to the logged-in user to grant the app Full Disk access because there’s no way to trigger a prompt like that right now, and that’s what backup apps need” (uma chamada de API que exiba ao usuário conectado um aviso para conceder Acesso Total ao Disco ao app, porque hoje não há como disparar um aviso assim, e é disso que os apps de backup precisam); o engenheiro de suporte da Apple respondeu: “Please do file an enhancement request.” (por favor, registre um pedido de melhoria).35 Em tudo o que li para este post, a documentação da Apple ainda descreve apenas o link, oito anos depois.
Existe uma conveniência. Desde o Catalina, um programa recusado por não ter Acesso Total ao Disco já aparece na lista, desligado: “executables that are denied access to files due to a lack of Full Disk Access approval are now prepopulated unchecked.” (executáveis que têm acesso a arquivos negado por falta de aprovação no Acesso Total ao Disco agora aparecem pré-incluídos e desmarcados).11 O usuário ainda precisa ligá-lo.
Por um perfil de MDM. Em um Mac gerenciado, o payload Privacy Preferences Policy Control (tipo com.apple.TCC.configuration-profile-policy, só macOS, desde o 10.14) pode concedê-lo. A página de manual do eslogger diz isso com todas as letras: “MDM servers can grant Full Disk Access authorization using the Privacy Preferences Policy Control payload, identified by payload type com.apple.TCC.configuration-profile-policy, and its service dictionary key SystemPolicyAllFiles.” (servidores MDM podem conceder a autorização do Acesso Total ao Disco usando o payload Privacy Preferences Policy Control, identificado pelo tipo com.apple.TCC.configuration-profile-policy, e sua chave de dicionário de serviço SystemPolicyAllFiles).236 Quando a chave Allowed da entrada de um app é true, a referência da Apple diz “access is granted” (o acesso é concedido) e acrescenta: “The user isn’t prompted and can’t change this value.” (o usuário não é consultado e não pode alterar esse valor).37 O comentário de exemplo do próprio guia de implantação da Apple para esse payload diz “Allows my organization’s app to interact with all files without prompting the user.” (permite que o app da minha organização interaja com todos os arquivos sem perguntar ao usuário).31 É uma assimetria real: para câmera, microfone, captura de tela e escuta do teclado, a referência da Apple diz que um perfil “can’t grant” (não pode conceder) o acesso e “can only deny it” (só pode negá-lo). Ela não diz nada parecido sobre SystemPolicyAllFiles.30
Duas páginas da Apple discordam sobre esse payload, e uma mudou este ano:
- Supervisão. O guia de implantação diz “Supervision is required if you apply this payload using a device management service.” (a supervisão é obrigatória se você aplicar este payload por um serviço de gerenciamento de dispositivos). A tabela de disponibilidade da referência para desenvolvedores lista “Requires supervision” (exige supervisão) como N/A.3136 Registro as duas e não escolho nenhuma.
- O macOS 27 descontinuou a parte por app. Na referência atual, o objeto
Identityque toda entrada de serviço usa, incluindo o Acesso Total ao Disco, está marcado como descontinuado no macOS 27.0, e cada uma das suas chaves diz “Deprecated: macOS 27+”. A entradaSystemPolicyAllFilesem si não tem nenhuma marca de descontinuação.3730 O substituto declarativo para o qual a Apple aponta outros serviços, a configuração de ajustes de apps, oferece padrões de privacidade para acessibilidade, Bluetooth, câmera, ditado, rede local, localização e microfone. Ele não tem chave de Acesso Total ao Disco, e seus padrões dependem de consentimento: “When set, the app displays a consent prompt listing all the configured defaults.” (quando configurados, o app exibe um aviso de consentimento listando todos os padrões configurados).3839 A Apple não relaciona isso à notícia de 2 de outubro, e eu também não; é um fato ao lado da história.
Por que ele existe: apps de backup, três vezes
Em cada um dos três lugares em que encontrei a Apple dizendo para quem é o Acesso Total ao Disco, ela citou o mesmo tipo de software. Na WWDC19, ao descrever os dois níveis de dados protegidos, a Apple colocou “things like mail or messages and Safari browsing history” (coisas como e-mail, mensagens e o histórico de navegação do Safari) no segundo nível e disse que esses dados “have a high barrier to access because the files are typically only accessed by specialized apps such as disk management or backup utilities.” (têm uma barreira alta de acesso porque esses arquivos normalmente só são acessados por apps especializados, como os de gerenciamento de disco ou utilitários de backup).11 Na WWDC23, ao apresentar a proteção de contêineres de apps, a Apple disse “For backup utilities or disk-management tools that have already been granted Full Disk Access, no additional prompt will be shown at time of access, since people have already chosen to allow these apps access to all files.” (para utilitários de backup ou ferramentas de gerenciamento de disco que já receberam Acesso Total ao Disco, nenhum aviso adicional será exibido no momento do acesso, porque as pessoas já escolheram permitir que esses apps acessem todos os arquivos).12 Em 2 de outubro, ela disse que o Acesso Total ao Disco contorna os controles de dados “in order to allow backup apps to function properly on the Mac.” (para que os apps de backup funcionem direito no Mac).1 Um agente não é um app de backup. Essa é toda a tensão em uma frase.
De onde ele veio
A maioria das fontes da Apple data o Acesso Total ao Disco do macOS Mojave, em 2018. O comunicado à imprensa da Apple de 4 de junho de 2018 dizia “New data protections require apps to get user permission before using the Mac camera and microphone or accessing personal data like user Mail history and Messages database.” (novas proteções de dados exigem que os apps obtenham permissão do usuário antes de usar a câmera e o microfone do Mac ou de acessar dados pessoais, como o histórico do Mail e o banco de dados do Messages).40 As notas de versão do Mojave 10.14, ainda no ar, usam o nome Application Data, que um desenvolvedor nos fóruns da Apple, em agosto de 2018, chamou de o nome usado nos betas anteriores:35 “Apps can’t access protected storage unless they’re added to the Application Data category located in the Privacy tab of System Preferences > Security & Privacy.” (os apps não podem acessar o armazenamento protegido a menos que sejam adicionados à categoria Application Data, na aba Privacidade de Preferências do Sistema > Segurança e Privacidade).41 O payload de gerenciamento de dispositivos e sua chave SystemPolicyAllFiles constam como introduzidos no macOS 10.14, e o post do engenheiro de suporte da Apple lista “Full Disk Access (macOS 10.14 and later)” (Acesso Total ao Disco, macOS 10.14 e posteriores).3620
Uma página da Apple dá outra data. O Apple Platform Security diz “In macOS 10.13 or later, apps that require access to the full storage device need to be explicitly added in System Settings (macOS 13 or later) or System Preferences (macOS 12 or earlier).” (no macOS 10.13 ou posterior, apps que precisam de acesso ao dispositivo de armazenamento inteiro precisam ser adicionados explicitamente nos Ajustes do Sistema, no macOS 13 ou posterior, ou nas Preferências do Sistema, no macOS 12 ou anterior).10 Todas as outras fontes da Apple que li dizem 10.14. Registro a divergência e não escolho nenhum lado.
O Catalina (10.15, lançado em 7 de outubro de 2019) ampliou o conjunto protegido. O comunicado à imprensa dele dizia “new data protections require all apps to get permission before accessing user documents,” (novas proteções de dados exigem que todos os apps obtenham permissão antes de acessar os documentos do usuário) e, na WWDC19, a Apple adicionou as pastas Mesa, Documentos e Downloads, o iCloud Drive, o armazenamento em nuvem de terceiros, volumes removíveis e volumes de rede à lista que exige consentimento, e disse “the universe of data that requires preapproval for Full Disk Access has been expanded to include trash.” (o universo de dados que exige pré-aprovação no Acesso Total ao Disco foi ampliado para incluir o lixo).4211 Versões posteriores acrescentaram a proteção de contêineres de apps (macOS 14) e a proteção de contêineres de grupos de apps (macOS 15), ambas sobre apps que leem dados de outros apps; para a primeira, a Apple disse que quem tivesse Acesso Total ao Disco não veria nenhum aviso adicional.2012
O macOS 27 voltou a andar na mesma direção. Suas notas de versão dizem que o acesso a “other developer teams’ app data containers and app group containers no longer prompts the user for authorization; such accesses are denied by default and can be managed by the user in Privacy & Security settings,” (contêineres de dados de apps e contêineres de grupos de apps de outros times de desenvolvimento não pede mais autorização ao usuário; esses acessos são negados por padrão e podem ser gerenciados pelo usuário nos ajustes de Privacidade e Segurança), que “XProtect may now restrict access to app data that is commonly targeted by malicious software,” (o XProtect agora pode restringir o acesso a dados de apps que costumam ser alvo de malware) e, sob TCC, “Apps can no longer access the local TCC database directly.” (os apps não podem mais acessar diretamente o banco de dados local do TCC).23 Em um problema conhecido, as próprias notas da Apple recomendam o Acesso Total ao Disco como paliativo: quando um processo sem bundle ID não pode receber acesso ao contêiner de outro time, “Workaround: Consider if the access is necessary. If required, grant Full Disk Access to the process for the duration of the requirement.” (contorno: avalie se o acesso é necessário; se for, conceda Acesso Total ao Disco ao processo enquanto durar essa necessidade).23 O post sobre as notas de versão do macOS 27 e o post sobre contêineres de outros times cobrem essas mudanças por completo.
3. Como um agente o obtém
Há duas formas de um agente de IA no Mac acabar podendo ler o que o Acesso Total ao Disco protege. Ele roda dentro de um app que tem a concessão, ou ele é um app que tem a concessão. A primeira é como a maioria dos agentes de linha de comando o obtém, e ninguém precisa clicar em nada para o agente em si.
O caminho do terminal
Quando você digita claude ou codex em um terminal, o macOS não pergunta se o Claude Code ou o Codex podem ler suas mensagens do Messages. Ele pergunta se o terminal pode. A Apple chama o programa verificado de “responsible” (responsável), e em nenhuma documentação da Apple que encontrei a regra para escolhê-lo aparece enunciada de forma geral. O que ela publicou é um conjunto de afirmações específicas que apontam todas na mesma direção:
eslogger(1), distribuído com o macOS 27: “eslogger requires the responsible process to have been authorized for Full Disk Access,” (o eslogger exige que o processo responsável tenha sido autorizado no Acesso Total ao Disco) e “Running eslogger from an app, including Terminal.app or a third-party terminal emulator, requires the respective app to be authorized for Full Disk Access in System Preferences > Security & Privacy > Privacy > Full Disk Access.” (rodar o eslogger a partir de um app, incluindo o Terminal.app ou um emulador de terminal de terceiros, exige que esse app esteja autorizado no Acesso Total ao Disco).2tmutil(8): “Full Disk Access privileges can be granted to the Terminal application used to run tmutil from the Privacy tab in the Security & Privacy preference pane.” (os privilégios de Acesso Total ao Disco podem ser concedidos ao aplicativo de terminal usado para rodar o tmutil, na aba Privacidade do painel Segurança e Privacidade).43fdesetup(8): desde o macOS 10.15, ativar o FileVault pela linha de comando exige, entre outras opções, que “The responsible application is authorized for” (o aplicativo responsável esteja autorizado no) Acesso Total ao Disco.44- A referência de gerenciamento de dispositivos da Apple: “Helper tools embedded within an application bundle automatically inherit the permissions of their enclosing app bundle.” (ferramentas auxiliares embutidas no pacote de um aplicativo herdam automaticamente as permissões do pacote do app que as contém).37
A afirmação mais direta vem de Quinn, engenheiro do Developer Technical Support da Apple, respondendo a uma thread do fórum de junho de 2024 sobre ferramentas de linha de comando e Acesso Total ao Disco. É um post de funcionário no site da Apple, não documentação, e eu o identifico assim toda vez que o uso. Ele lista quatro casos. Para uma ferramenta que o usuário roda a partir do Terminal, “The tool’s responsible code is Terminal.” (o código responsável pela ferramenta é o Terminal). Para uma ferramenta rodada via SSH, “The tool’s responsible code is the SSH server.” (o código responsável pela ferramenta é o servidor SSH). Para um auxiliar iniciado por um app, “The system treats the app as the responsible code.” (o sistema trata o app como o código responsável). Para um job do launchd, instalá-lo pelo SMAppService torna o app o código responsável; caso contrário, escreve ele, a lista de propriedades do job deve indicar o app com AssociatedBundleIdentifiers.3 Na mesma thread, ele acrescenta a ressalva que importa para quem pretende planejar em torno disso: “The exact algorithm it uses for this is not documented, has changed in the past, and may well change in the future.” (o algoritmo exato usado para isso não é documentado, já mudou no passado e pode muito bem mudar no futuro).3 Questionado em outra thread se o TCC “is looking for parent process rights” (procura os direitos do processo pai), ele se recusou a entrar no assunto porque é “both complex and subject to change.” (ao mesmo tempo complexo e sujeito a mudanças).45
O desenvolvedor que abriu a thread de junho de 2024 já tinha medido o efeito: “When this program is built and executed in Terminal.app with Terminal having FDA, the file opens successfully. Conversely, when FDA is revoked from Terminal and granted to the program, an error occurs due to insufficient privileges.” (quando o programa é compilado e executado no Terminal.app com o Terminal tendo FDA, o arquivo abre normalmente; já quando o FDA é revogado do Terminal e concedido ao programa, ocorre um erro por privilégios insuficientes).3 Esse é o relato de um desenvolvedor, não da Apple. A primeira metade bate com o que medi no meu próprio Mac (seção 5): a leitura funcionou com a concessão na cadeia de inicialização do terminal. Não testei a segunda metade; meu controle mudou o lugar de onde a leitura era iniciada, não qual app tinha a concessão.
Daí decorrem duas consequências, e nenhuma é exclusiva dos agentes.
Tudo o que você inicia naquele terminal recebe o acesso. O agente, o shell que ele abre, o git, o npm install, um executor de testes, um servidor MCP iniciado por stdio, um script que o modelo escreveu um minuto atrás: se eles rodam sob o terminal, é o terminal que o TCC verifica. O engenheiro de suporte da Apple diz isso diretamente sobre interpretadores: “if you have a script that needs to manipulate files on your desktop, you wouldn’t want to give the interpreter that privilege because then any script could do that.” (se você tem um script que precisa manipular arquivos na sua mesa, não vai querer dar esse privilégio ao interpretador, porque aí qualquer script poderia fazer isso).20 Um terminal com Acesso Total ao Disco é o mesmo problema um nível acima.
Outros apps podem pegá-lo emprestado. Em 2022, Jeff Johnson publicou “Every unsandboxed app has Full Disk Access if Terminal does” (todo app fora do sandbox tem Acesso Total ao Disco se o Terminal tiver), com código-fonte. O argumento dele: “unsandboxed apps can open executable shell scripts in Terminal, and those scripts will execute with the permissions not of the opening app but rather with the permissions of Terminal, i.e. Full Disk Access.” (apps fora do sandbox podem abrir scripts de shell executáveis no Terminal, e esses scripts rodam não com as permissões do app que os abriu, e sim com as do Terminal, ou seja, com Acesso Total ao Disco). A técnica, observa ele, “doesn’t work for sandboxed apps.” (não funciona com apps em sandbox).46 Todos os apps de agente para desktop que inspecionei no meu Mac rodam fora do sandbox: o app do Claude e o Cursor não têm o entitlement do App Sandbox, e o app do ChatGPT o tem definido como false.47 Minha leitura, não uma afirmação de Johnson: em um Mac em que o terminal tem Acesso Total ao Disco, qualquer um desses apps poderia alcançá-lo do mesmo jeito.
E o que dizem os próprios terminais? Não encontrei documentação do Ghostty nem do iTerm2 que diga o que os processos filhos recebem quando o terminal tem Acesso Total ao Disco: buscas de código no GitHub pela expressão na documentação do Ghostty e no repositório do iTerm2 não retornaram nada. Não fiz a mesma busca na documentação do Terminal da Apple nem na do Warp.48 O que os apps mostram é em nome de quem eles falam. As purpose strings deles, lidas dos apps instalados no meu Mac, são escritas em nome do que roda dentro deles: o aviso de AppleScript do Ghostty diz “A program running within Ghostty would like to use AppleScript,” (um programa rodando no Ghostty quer usar AppleScript) e o do iTerm2, “An application in iTerm2 wants to use AppleScript.” (um aplicativo no iTerm2 quer usar AppleScript).47 O macOS não tem purpose string para o Acesso Total ao Disco, já que os apps não podem pedi-lo com um aviso, mas as strings mostram o desenho: o terminal é o app sobre o qual o usuário é consultado.
Os editores com agentes embutidos funcionam do mesmo jeito, um nível adiante. A documentação do Cursor diz “Cursor runs shell commands directly in your terminal,” (o Cursor roda comandos de shell diretamente no seu terminal), o que eu leio, dentro do editor, como o terminal integrado do próprio Cursor.49 Pelo caso do auxiliar descrito pelo engenheiro de suporte (uma ferramenta iniciada por um app é atribuída ao app), o Cursor é então o app que o TCC enxerga para esses comandos. Essa é uma inferência minha; a documentação do Cursor não diz a qual app o TCC atribui o acesso.318
O caminho do SSH
Se você comanda um agente via SSH, o terminal do outro lado não é o código responsável; o servidor SSH é. O engenheiro de suporte da Apple: “The tool’s responsible code is the SSH server. You can set Full Disk Access on that using System Settings > General > Sharing > Remote Login > Allow full disk access for remote users.” (o código responsável pela ferramenta é o servidor SSH; você pode dar Acesso Total ao Disco a ele em Ajustes do Sistema > Geral > Compartilhamento > Sessão Remota > permitir acesso total ao disco para usuários remotos).3 A página de manual do eslogger cita o mesmo ajuste.2 O guia de configuração do OpenClaw mostra o cliente do lado do SSH como ele aparece no TCC, /usr/libexec/sshd-keygen-wrapper, e esse mesmo cliente consta na lista do Acesso Total ao Disco do meu Mac.1419
O que os fornecedores de agentes mandam você fazer
Dois projetos de agentes mandam os usuários, na própria documentação, concederem Acesso Total ao Disco para que o agente possa ler o Messages:
- Hermes Agent (Nous Research). A skill Apple iMessage aparece como “Bundled (installed by default),” (incluída, instalada por padrão) e os pré-requisitos dela dizem “Grant Full Disk Access for terminal (System Settings → Privacy → Full Disk Access)” (conceda Acesso Total ao Disco ao terminal) e “Grant Automation permission for Messages.app when prompted.” (conceda a permissão de Automação ao Messages.app quando solicitado).13 É uma instrução do fornecedor para dar Acesso Total ao Disco ao terminal e, portanto, a tudo o que roda nele. O guia do Hermes cobre o restante do agente.
- OpenClaw. A configuração de iMessage dele diz “Full Disk Access is required for the process context running OpenClaw/
imsg” (o contexto de processo que roda o OpenClaw precisa de Acesso Total ao Disco, por causa do banco de dados do Messages), “Automation permission is required to send messages through Messages.app,” (a permissão de Automação é necessária para enviar mensagens pelo Messages.app) e “Permissions are granted per process context.” (as permissões são concedidas por contexto de processo).14 A mesma página diz que, para ações avançadas como reações, edições e cancelar envio, “System Integrity Protection must be disabled,” (o System Integrity Protection precisa ser desativado), enquanto o envio e o recebimento básicos funcionam sem isso.14 A página de permissões do macOS do OpenClaw dá a mesma regra para as pastas Mesa, Documentos e Downloads: “grant access to the same process context that performs file operations (for example Terminal/iTerm, LaunchAgent-launched app, or SSH process).” (conceda o acesso ao mesmo contexto de processo que realiza as operações de arquivo, por exemplo Terminal/iTerm, um app iniciado por LaunchAgent ou um processo SSH).50
A Anthropic documenta um caso mais restrito. As sessões em segundo plano do Claude Code, segundo a documentação do agent view, rodam um processo host que “requests access to protected folders separately from your terminal,” (pede acesso a pastas protegidas separadamente do seu terminal) e, se uma sessão em segundo plano informar “Operation not permitted” em um local protegido, a solução é “grant access in System Settings under Privacy & Security > Files and Folders, or enable Full Disk Access for the entry.” (conceder o acesso nos Ajustes do Sistema, em Privacidade e Segurança > Arquivos e Pastas, ou ativar o Acesso Total ao Disco para essa entrada). Com o instalador nativo, diz a documentação, “the entry appears as Claude Code and the grant persists across updates.” (a entrada aparece como Claude Code e a concessão se mantém entre atualizações).51 Para o uso do computador, a Anthropic pede que os usuários confirmem que “your terminal app is listed and enabled” (seu app de terminal está na lista e ativado) em Gravação de Tela (Screen Recording), que é de novo o caminho do terminal, para outra permissão.52 Nenhuma das páginas da Anthropic sobre sandbox, permissões ou segurança menciona o Acesso Total ao Disco.1553
O caminho do app de desktop
Apps de agente para desktop recebem linhas próprias em Privacidade e Segurança, e o que eles pedem varia:
- ChatGPT para Mac (no meu Mac, o bundle ID dele é
com.openai.codex). Em 20 de agosto de 2026, a OpenAI adicionou um plugin do Apple Messages: “On Apple silicon Macs, the Apple Messages plugin in the ChatGPT desktop app can read and search iMessage, SMS, and RCS conversations and prepare or send messages through Messages.” (em Macs com Apple silicon, o plugin do Apple Messages no app de desktop do ChatGPT pode ler e pesquisar conversas de iMessage, SMS e RCS e preparar ou enviar mensagens pelo Messages).54 O guia de plugins da OpenAI diz apenas “Grant the requested macOS permissions before ChatGPT reads Messages.” (conceda as permissões do macOS solicitadas antes que o ChatGPT leia o Messages).22 Não encontrei nenhuma página da OpenAI que nomeie a permissão. O MacRumors, ao noticiar o lançamento, escreveu que “For the Messages integration to work, ChatGPT needs Full Disk Access in System Settings, as well as access to contact names and automation tools” (para a integração com o Messages funcionar, o ChatGPT precisa de Acesso Total ao Disco nos Ajustes do Sistema, além de acesso aos nomes dos contatos e às ferramentas de automação); isso é imprensa, usada aqui como pista, não como declaração da OpenAI.55 No meu Mac, o app do ChatGPT consta na tabela do Acesso Total ao Disco.19 O guia da OpenAI também traz o aviso que eu colocaria em primeiro lugar: “Persistent approval removes your final chance to review a message before ChatGPT sends it as you.” (a aprovação persistente tira sua última chance de revisar uma mensagem antes que o ChatGPT a envie em seu nome).22 Para o Computer Use, a OpenAI pede Gravação de Tela e Acessibilidade (Accessibility) e diz “File reads, file edits, and shell commands still follow the sandbox and approval settings for the task.” (leituras e edições de arquivos e comandos de shell continuam seguindo os ajustes de sandbox e aprovação da tarefa).56 - Claude para Mac. Não encontrei nenhuma página da Anthropic pedindo Acesso Total ao Disco. O Info.plist do app no meu Mac declara purpose strings para as pastas Mesa, Documentos e Downloads e para Apple Events, entre outras (“Claude needs this so commands you run in Claude can control other apps”, o Claude precisa disso para que os comandos que você roda no Claude possam controlar outros apps).47 O recurso de entrada rápida dele pede Gravação de Tela e Acessibilidade.57
- Cursor. Nenhuma das duas páginas do Cursor que salvei, Run Modes e Terminal, pede Acesso Total ao Disco; o Cursor consta na tabela do meu Mac.191849
- Uso do computador no Hermes Agent. Acessibilidade e Gravação de Tela vão para a identidade que o
hermes computer-use doctorindica, um app controlador separado, e não para o terminal.58 - VS Code com agentes. Não está instalado no meu Mac; não encontrei nenhuma página da Microsoft sobre Acesso Total ao Disco para os agentes dele.4759
Agentes por caminho
| Agente | Como chega aos dados protegidos | Acesso Total ao Disco na documentação do fornecedor | Sandbox do fornecedor no macOS, padrão |
|---|---|---|---|
| Claude Code (CLI) | Caminho do terminal; o host em segundo plano pode ter entrada própria | Só a nota sobre sessões em segundo plano | Seatbelt; desligado por padrão |
| Codex CLI | Caminho do terminal | Nada encontrado | Seatbelt; ligado, workspace-write, rede desligada |
| ChatGPT para Mac (Codex, Work, Messages, Computer Use) | Entradas próprias | “Requested macOS permissions” (permissões do macOS solicitadas); Acesso Total ao Disco citado só pela imprensa | Sandbox e política de aprovação do Codex para etapas de plugin e de shell; Messages e Computer Use também precisam de permissões do macOS |
| Claude para Mac | Entradas próprias | Nada encontrado | Não documentado para ações locais nas páginas que li |
| Hermes Agent | Caminho do terminal | Sim: concedê-lo ao terminal para o iMessage | Sem backend Seatbelt; local, “no isolation” (sem isolamento), por padrão |
| OpenClaw | O contexto de processo do gateway | Sim: obrigatório para o canal de iMessage | Backends de sandbox para ferramentas (Docker por padrão); desligado por padrão |
| Gemini CLI | Caminho do terminal | Nada encontrado | Perfis Seatbelt; desligado a menos que seja ativado |
| Aider | Caminho do terminal | Nada encontrado | Nenhum documentado |
| Cursor (agente e CLI) | Editor: o terminal do Cursor, portanto o Cursor; CLI: caminho do terminal | Nada encontrado | Seatbelt; leituras fora do workspace permitidas por padrão |
| Agentes do VS Code | O terminal do editor, portanto o VS Code | Nada encontrado | Sandbox do Agent Host (só sessões do Copilot Agent Host); desligado por padrão |
As fontes de cada célula estão nas seções 3 e 4.51166022561361146217481859 As entradas da segunda coluna para os dois editores são inferência minha a partir do caso do auxiliar descrito pelo engenheiro de suporte, não afirmações dos fornecedores. A terceira coluna mostra o padrão. Os dois fornecedores que citam o Acesso Total ao Disco fazem isso para chegar ao Messages, os dados cuja exposição, segundo a Apple, atinge também “the people users are communicating with” (as pessoas com quem os usuários se comunicam); a Apple não cita nenhum agente, e eu não afirmo que ela se referia a esses dois. Todos os outros agentes de linha de comando chegam aos mesmos dados, quando chegam, sem que a documentação deles diga que a concessão do terminal passa para eles, porque a concessão pertence ao terminal.
4. O que os sandboxes dos fornecedores fazem, e o que não conseguem fazer
Duas camadas que não sabem uma da outra
Todo agente de linha de comando cuja documentação de sandbox para macOS eu li o constrói sobre o Seatbelt, o sandbox de processos do sistema, acionado pelo sandbox-exec: Claude Code (“sandboxing uses the built-in Seatbelt framework”, o sandbox usa o framework Seatbelt embutido), Codex (“On macOS, sandboxing works out of the box using the built-in Seatbelt framework”, no macOS o sandbox funciona de imediato com o framework Seatbelt embutido), Gemini CLI (“Lightweight, built-in sandboxing using”, sandbox leve e embutido que usa o sandbox-exec) e Cursor (“Cursor uses Seatbelt through”, o Cursor usa o Seatbelt por meio do sandbox-exec).15161718 O Acesso Total ao Disco é TCC. O engenheiro de suporte da Apple descreve a relação: “App Sandbox and the mandatory access control system are both implemented using macOS’s sandboxing infrastructure,” (o App Sandbox e o sistema de controle de acesso obrigatório são implementados com a infraestrutura de sandbox do macOS), mas o controle de acesso obrigatório “is mandatory; it’s not an opt-in like the App Sandbox.” (é obrigatório; não é algo que se escolhe ativar, como o App Sandbox).20
Na prática, isso tem duas metades. Que um perfil Seatbelt não pode dar a um processo uma concessão do TCC que o app responsável dele não tem decorre da descrição do engenheiro de suporte da Apple, segundo a qual todos os processos, “including those running as root,” (incluindo os que rodam como root) estão sujeitos ao MAC; não testei isso. A outra metade eu medi no meu Mac na seção 5: nenhum sandbox mudou a concessão do terminal, e um perfil bloqueou a leitura protegida só quando ele próprio negava aquele caminho, por conta própria e numa situação em que o TCC teria permitido a leitura.205 Um agente em sandbox dentro de um terminal com Acesso Total ao Disco ainda pode ler o Messages se o perfil dele permitir leituras ali, e a maioria dos perfis padrão permite leituras em quase todo lugar.
Uma armadilha de nomes: o próprio código-fonte do Codex tem uma função chamada has_full_disk_read_access, e quando ela retorna true e não há raízes ilegíveis configuradas, o perfil Seatbelt gerado permite file-read* em todo lugar; com essas raízes, ele monta uma política de leitura que as exclui.63 Esse é o termo do Codex para uma política de leitura ampla no Seatbelt. Não é o Acesso Total ao Disco da Apple e não o concede.
Claude Code (Anthropic)
- Sandbox: desligado por padrão. “The sandbox is off by default. To turn it on, run /sandbox in a session, as Get started shows, or set sandbox.enabled to true in a settings file.” (o sandbox vem desligado por padrão; para ligá-lo, rode /sandbox em uma sessão ou defina sandbox.enabled como true em um arquivo de configurações).15
- Padrões quando ligado. As gravações vão para “The working directory, a per-user temp directory, and directories you’ve added.” (o diretório de trabalho, um diretório temporário por usuário e os diretórios que você adicionou). As leituras cobrem “Most of the machine, including credential files.” (a maior parte da máquina, incluindo arquivos de credenciais). A rede: “No direct route out” (nenhuma saída direta); as conexões passam por um proxy local cujos domínios permitidos “start empty.” (começam vazios).15 O sandbox é construído sobre “the open source @anthropic-ai/sandbox-runtime package.” (o pacote de código aberto @anthropic-ai/sandbox-runtime).15
- Dois modos de sandbox. Aprovação automática e permissões normais; “In both, the sandbox enforces the same filesystem and network restrictions; the difference is only in whether sandboxed commands are auto-approved or require explicit permission.” (nos dois, o sandbox aplica as mesmas restrições de sistema de arquivos e de rede; a diferença está só em se os comandos em sandbox são aprovados automaticamente ou exigem permissão explícita).15
- O que fica de fora. As ferramentas embutidas de arquivos e web “follow permission rules instead. A denyRead entry doesn’t stop the Read tool,” (seguem as regras de permissão; uma entrada denyRead não impede a ferramenta Read) e “command hooks, local MCP servers, plugin monitors, LSP servers, and helper commands such as your status line command and apiKeyHelper run with your full access.” (hooks de comando, servidores MCP locais, monitores de plugins, servidores LSP e comandos auxiliares, como o comando da sua linha de status e o apiKeyHelper, rodam com todo o seu acesso).15 Comandos que falham podem ser tentados de novo fora do sandbox, a menos que
allowUnsandboxedCommandsseja false.15 - Restringir as leituras.
sandbox.filesystem.denyReadeallowReadou, para “deny sandboxed commands read access to home directories and mounted volumes while keeping the working directories readable, set permissions.blockReadsOutsideWorkingDirectories.” (negar aos comandos em sandbox a leitura dos diretórios pessoais e dos volumes montados, mantendo legíveis os diretórios de trabalho, defina permissions.blockReadsOutsideWorkingDirectories).15 - Apple Events. “The sandbox blocks Apple Events by default,” (o sandbox bloqueia Apple Events por padrão) e ligar o
allowAppleEvents“removes code-execution isolation.” (remove o isolamento da execução de código).15 - Modos de permissão, um controle à parte:
default(rotulado Manual),acceptEdits,plan,auto,dontAskebypassPermissions. Sobre o último, a Anthropic diz “Only use this mode in isolated environments like containers or VMs where Claude Code can’t cause damage.” (use este modo apenas em ambientes isolados, como contêineres ou VMs, onde o Claude Code não possa causar danos).53
O guia do Claude Code cobre os arquivos de configuração em que essas chaves ficam.
Codex CLI (OpenAI)
- Sandbox: ligado por padrão. “The default permissions mode applies sandboxing automatically,” (o modo de permissões padrão aplica o sandbox automaticamente) e “The sandbox applies to spawned commands, not just to built-in file operations.” (o sandbox vale para os comandos iniciados, não só para as operações de arquivo embutidas).16
- Três modos.
read-only: “The agent can inspect files, but it can’t edit files or run commands without approval.” (o agente pode inspecionar arquivos, mas não pode editá-los nem rodar comandos sem aprovação).workspace-write: o agente pode “read files, edit within the workspace, and run routine local commands inside that boundary. This is the default low-friction mode for local work.” (ler arquivos, editar dentro do workspace e rodar comandos locais rotineiros dentro desse limite; é o modo padrão de baixo atrito para o trabalho local).danger-full-access: “The agent runs without sandbox restrictions.” (o agente roda sem restrições de sandbox).16 - Rede desligada por padrão. “By default, the agent runs with network access turned off,” (por padrão, o agente roda com o acesso à rede desligado) e o workspace-write “keeps network access turned off unless you enable it in your configuration.” (mantém o acesso à rede desligado, a menos que você o ative na sua configuração).60
- Acesso total. A OpenAI o define como
sandbox_mode = "danger-full-access"junto comapproval_policy = "never", e o menu do app de desktop o descreve como acesso irrestrito a “the internet and any file on your computer.” (a internet e qualquer arquivo do seu computador).16 - A documentação não detalha as leituras. A única afirmação da OpenAI sobre o escopo é que o sandbox “limits what it can touch (typically to the current workspace).” (limita o que ele pode tocar, normalmente ao workspace atual).60 Ela não informa o escopo de leitura do
read-onlynem doworkspace-write, e no meu Mac a execução 2 (read-only) e a execução 2c (minha configuração, sem modo definido) leram um arquivo bem fora do workspace, um que exige Acesso Total ao Disco.5 O código-fonte mostra por quê: a política base do Seatbelt começa com(deny default)e observa que “child processes inherit the policy of their parent,” (processos filhos herdam a política do pai) e, com acesso total de leitura e sem raízes ilegíveis, o perfil acrescenta(allow file-read*).63 Dá para restringir: perfis de permissão aceitam"read","write"ou"deny"por caminho, e os administradores têmpermissions.filesystem.deny_readnorequirements.toml, “Admin-enforced filesystem read denials” (negações de leitura do sistema de arquivos impostas pelo administrador); a OpenAI diz que “users cannot weaken them with local config.” (os usuários não podem enfraquecê-las com a configuração local).21
O guia do Codex cobre a fundo os perfis e as políticas de aprovação.
Hermes Agent (Nous Research)
- Sem sandbox do macOS; sete backends. “Hermes supports seven terminal backends” (o Hermes suporta sete backends de terminal):
local,docker,ssh,modal,daytona,vercel_sandboxesingularity.61 - Padrão: local, sem isolamento. “The default. Commands run directly on your machine with no isolation,” (o padrão; os comandos rodam diretamente na sua máquina, sem isolamento) e “By default, local tool subprocesses keep your real OS-user HOME.” (por padrão, os subprocessos locais das ferramentas mantêm o HOME real do seu usuário do sistema).61
- Regras de comando não são um sandbox. “Deny rules are a shell-command policy, not a complete shell interpreter or an OS capability sandbox.” (regras de negação são uma política de comandos de shell, não um interpretador de shell completo nem um sandbox de capacidades do sistema operacional).64
- Os contêineres são o limite. “For production gateway deployments, use docker, modal, daytona, or vercel_sandbox backend to isolate agent commands from your host system.” (em implantações de gateway em produção, use o backend docker, modal, daytona ou vercel_sandbox para isolar os comandos do agente do seu sistema host).64
Com o backend padrão, um agente Hermes lê tudo o que o terminal dele consegue ler, e a skill de iMessage incluída pede que você dê Acesso Total ao Disco a esse terminal.13
OpenClaw
- Sandbox: desligado por padrão, e só para ferramentas. “Sandboxing is off by default,” (o sandbox vem desligado por padrão) e “The Gateway process always stays on the host; only tool execution moves into the sandbox when enabled.” (o processo do Gateway sempre fica no host; só a execução de ferramentas vai para o sandbox quando ele está ligado). O OpenClaw é franco sobre isso: “This is not a perfect security boundary, but it materially limits filesystem and process access when the model does something dumb.” (não é um limite de segurança perfeito, mas limita de forma concreta o acesso ao sistema de arquivos e aos processos quando o modelo faz alguma besteira).62
- Modos.
agents.defaults.sandbox.modeaceitaoff(o padrão),non-mainouall; o backend padrão édocker, compodman,ssh,openshellecrabboxcomo alternativas; a rede do Docker é none por padrão.65 - Acesso ao workspace.
none(o padrão),roourw.66 - Válvula de escape. O
tools.elevatedé, nas palavras do OpenClaw, “an explicit escape hatch” (uma válvula de escape explícita) que rodaexecfora do sandbox.62
O Acesso Total ao Disco do canal de iMessage pertence ao contexto de processo do gateway, que nunca vai para o sandbox.1462
Os outros, em resumo
- Gemini CLI. Desligado, a menos que seja ativado com
-s, uma variável de ambiente ou um ajuste. No macOS, o perfil Seatbelt padrão,permissive-open, “denies operations by default; confines writes to the project directory while allowing broad file reads and network access” (nega operações por padrão; confina as gravações ao diretório do projeto e permite leituras amplas de arquivos e acesso à rede); o próprio arquivo do perfil diz(allow file-read*).strict-openestrict-proxiedacrescentam restrições de leitura.17 - Cursor. Seatbelt para “the full subprocess tree” (toda a árvore de subprocessos); rede “Blocked by default” (bloqueada por padrão); mas o Read Access tem System como padrão: “The agent can read files outside the workspace without approval. This is the default.” (o agente pode ler arquivos fora do workspace sem aprovação; esse é o padrão). O próprio ajuste Read Access exige o Cursor 3.23 ou posterior.18
- VS Code. O
chat.agent.sandbox.enabled, que vale só para sessões do Copilot Agent Host, aceitaoffouone temoffcomo padrão, e a Microsoft declara o limite sem rodeios: “Sandboxing is not a virtual machine or user-account boundary, and it does not replace endpoint security.” (o sandbox não é um limite de máquina virtual nem de conta de usuário, e não substitui a segurança de endpoint).59 - Aider. Nenhum sandbox documentado.48
A camada Seatbelt também já teve furos
Pesquisadores da Accomplish publicaram cinco fugas de sandbox contra ferramentas de agentes, em quatro relatórios datados de 23 de julho a 15 de setembro de 2026. Quatro foram corrigidas antes da publicação; a quinta foi reportada à Anthropic e fechada como “Informative” (informativa). Contra o Claude Code, com o sandbox ligado e o modo de permissão mais restritivo, um comando de um repositório “ran on our Mac anyway, outside the sandbox, with no permission prompt” (rodou no nosso Mac mesmo assim, fora do sandbox, sem aviso de permissão); a Anthropic corrigiu isso na 2.1.247.67 Contra a CLI do Cursor, a mesma causa raiz: “the Seatbelt profile wraps only the shell tool, while the harness’s own internal git runs unsandboxed and honors repository-supplied core.fsmonitor hooks.” (o perfil Seatbelt envolve só a ferramenta de shell, enquanto o git interno do próprio harness roda fora do sandbox e respeita hooks core.fsmonitor fornecidos pelo repositório).68 Contra o Codex, duas fugas reportadas em 12 de agosto de 2026, “Both were fixed inside of eight days” (ambas foram corrigidas em menos de oito dias); em uma delas, “launchd starts the application unsandboxed, outside Codex’s process tree.” (o launchd inicia o aplicativo fora do sandbox, fora da árvore de processos do Codex).69 Contra a VM do Claude Cowork, uma fuga para uma montagem de leitura e gravação do host, a partir da qual ela “reads and writes the host Mac’s filesystem directly, as the logged-in desktop user.” (lê e grava diretamente no sistema de arquivos do Mac host, como o usuário conectado).70 Nenhum dos quatro relatórios lê dados protegidos pelo Acesso Total ao Disco. Minha leitura, não uma afirmação dos pesquisadores: um processo que escapa do Seatbelt, mas continua na cadeia de inicialização do terminal, fica com as concessões do TCC do terminal; então, em um Mac cujo terminal tem Acesso Total ao Disco, esse tipo de fuga também alcança dados protegidos pelo Acesso Total ao Disco. Não encontrei nenhum postmortem, alerta de segurança ou relatório de pesquisadores sobre um agente que tenha lido Mail, Messages ou dados do navegador por meio de uma concessão de Acesso Total ao Disco contra a vontade do usuário.
5. No meu Mac: o que tem Acesso Total ao Disco, e como eu sei
Tudo nesta seção é medição minha, no meu próprio Mac, feita em 11 de outubro de 2026 a partir de uma sessão do Claude Code: macOS 27.0, build 26A428, com o System Integrity Protection ativado. Todos os comandos, menos dois, foram somente leitura: um teste enviou um job do launchd, que gravou a saída em dois arquivos, e depois removeu o job; outro instalou o sandbox-runtime 0.0.79 da Anthropic via npx -y para rodá-lo, com dois arquivos de configuração temporários gravados para as execuções dele. As sondas de gravação dentro dos sandboxes foram tentativas, e os sandboxes as recusaram; as sondas de rede foram tentativas que falharam, por uma causa que o registro não estabelece. Não mudei nenhum ajuste e não concedi nem revoguei nada.195 Descrevo o que encontrei por nomes de apps e serviços. Quando a evidência mostra que um programa está na lista do Acesso Total ao Disco, digo que ele consta na lista; digo que ele tem acesso apenas quando uma leitura mostra o acesso funcionando.
A cadeia de inicialização do agente
O shell em que o Claude Code roda comandos é um zsh, iniciado pelo claude, iniciado pelo meu shell de login, iniciado pelo login, iniciado pelo Ghostty, o app de terminal; o ambiente informa TERM_PROGRAM como ghostty.19 Pela regra do engenheiro de suporte da Apple, o código responsável por tudo nessa cadeia é o Ghostty.3
Lendo a lista
No que verifiquei, o macOS não documenta nenhum comando que liste quem tem Acesso Total ao Disco: o tccutil tem exatamente um comando, reset.34 A lista fica nos bancos de dados do TCC. A partir do shell do agente, o banco de dados por usuário não pôde ser aberto, e a pasta dele não apareceu na listagem da pasta Application Support do usuário. Não sei por quê. As notas de versão do macOS 27 dizem “Apps can no longer access the local TCC database directly,” (os apps não podem mais acessar diretamente o banco de dados local do TCC), o que pode ser o motivo, mas a nota não diz a qual banco de dados se refere, então deixo isso sem explicação.1923
O banco de dados do sistema inteiro abriu. Selecionei só duas colunas, o serviço e o cliente, filtrei pelo serviço do Acesso Total ao Disco e nunca li a coluna que registra se cada chave está ligada. Ele retornou 75 linhas.19 Conseguir abri-lo já é, por si só, uma evidência. Em 2022, Jeff Johnson mostrou que o Terminal com Acesso Total ao Disco “can read or write any restricted files, including the TCC database itself” (pode ler ou gravar quaisquer arquivos restritos, incluindo o próprio banco de dados do TCC); ele mostrou isso com o banco de dados por usuário, e o teste de controle abaixo mostra o mesmo para o banco de dados do sistema neste Mac.465 Isso também significa que, no macOS 27.0, apesar da nota de versão citada acima, o banco de dados do TCC do sistema ainda podia ser lido diretamente por um processo cuja cadeia de inicialização tinha a concessão.1923
Classifiquei as 75 linhas com uma regra por tipo, aplicadas em ordem: os três bundle IDs de terminais; qualquer caminho de cliente para um binário do Claude Code numerado por versão; os bundle IDs do ChatGPT, do Cursor e do Xcode; qualquer caminho de interpretador node ou python3.x; o cliente do servidor SSH; qualquer cliente que comece com com.apple. ou /System/; meus próprios builds de desenvolvimento; e todo o resto.1947 O que há em cada grupo:
- Terminais (3). Terminal, iTerm2 e Ghostty constam na lista.
- Claude Code (30). Trinta linhas separadas, cada uma com o caminho para uma versão do binário do Claude Code, de 2.1.177 a 2.1.296, a versão que esta sessão rodava.1947 A Anthropic diz que, com o instalador nativo, a entrada do host de sessões em segundo plano “appears as Claude Code and the grant persists across updates.” (aparece como Claude Code e a concessão se mantém entre atualizações).51 O banco de dados, neste Mac, guarda uma linha por versão. Não verifiquei como os Ajustes do Sistema as exibem nem se cada chave está ligada. Minha leitura, não verificada: são os pedidos do host de sessões em segundo plano, um por atualização.
- Hosts de agentes (3). O app do ChatGPT (bundle ID
com.openai.codex), o Cursor e o Xcode.1947 O Xcode está aqui porque o Xcode 27 hospeda agentes: as notas de versão dele dizem “Agents in Xcode can now be extended with plugins that contain skills, MCP servers, and ACP agent configurations” (os agentes do Xcode agora podem ser estendidos com plugins que contêm skills, servidores MCP e configurações de agentes ACP) e acrescentam suporte ao Agent Client Protocol.24 Não está documentado se o TCC atribui ao Xcode os processos que esses agentes iniciam, e o Xcode pode não se comportar como um terminal. Em 2024, o engenheiro de suporte da Apple, questionado sobre por que a concessão própria de uma ferramenta só era respeitada quando o Xcode a rodava, respondeu que “Xcode runs the tool in a way that makes it clear to the system that Xcode is not the responsible code for this process” (o Xcode roda a ferramenta de um jeito que deixa claro para o sistema que o Xcode não é o código responsável por esse processo); ao examinar a cadeia sob o depurador do Xcode, escreveu “I expect that one of these is breaking TCC’s responsible code search” (imagino que um destes esteja quebrando a busca do código responsável pelo TCC) e acrescentou: “I suspect that’s deliberate.” (suspeito que seja proposital).3 Então o Xcode consta na lista e hospeda agentes, mas, para as ferramentas que ele roda, o engenheiro da Apple descreve o contrário da regra do terminal. - Interpretadores (5). Um
nodedo Homebrew e quatro interpretadores Python do Homebrew. O engenheiro de suporte da Apple alerta exatamente contra isso: dar o privilégio ao interpretador, “then any script could do that.” (e aí qualquer script poderia fazer isso).20 O OpenClaw faz o mesmo alerta sobre onodepara Acessibilidade: tratar essa entrada “as broad permission for that Node runtime, not as permission for one npm package.” (como uma permissão ampla para aquele runtime do Node, não como permissão para um único pacote npm).50 - SSH (1).
sshd-keygen-wrapper, o cliente do lado do servidor SSH, que entendo ser a entrada controlada por “Allow full disk access for remote users” (permitir acesso total ao disco para usuários remotos).193 - Outros da Apple (3), meus próprios builds (5), todo o resto (25). O último grupo inclui utilitários de disco e de limpeza, uma suíte de segurança, clientes de VPN e de armazenamento em nuvem, atualizadores, software de impressora, jogos, um app de videoconferência e um app de mensagens. Alguns são utilitários de disco, o outro tipo de software que a Apple cita; nenhuma das 75 linhas é um app de backup.
Quarenta e duas das 75 linhas são algo sob o qual ou por meio do qual um agente pode rodar. Nenhuma delas é um app de backup.
Sete execuções: o sandbox e a concessão são camadas separadas
Para ver qual camada decide, rodei uma única sonda, a leitura de uma linha desse banco de dados do sistema, em condições diferentes, mais uma sonda de gravação dentro dos dois sandboxes e uma sonda de rede dentro do sandbox-runtime.5
- O shell do agente, sem sandbox. A leitura retornou a linha.
- Dentro do sandbox Seatbelt do Codex CLI 0.154.0, modo
read-only. A leitura retornou a linha. O mesmo sandbox recusou umtouchfora do workspace com “Operation not permitted” (execução 2b), então o sandbox estava funcionando; ele só não impede leituras ali. Com a minha própria configuração do Codex, que não define modo de sandbox e liga o acesso à rede, a leitura também retornou a linha (execução 2c). - Dentro do sandbox-runtime 0.0.79 da Anthropic, o pacote sobre o qual o sandbox do Claude Code é construído, sem negação de leitura (execução 3a): a leitura retornou a linha, enquanto a gravação fora da pasta permitida foi recusada e uma requisição de rede falhou (
curlcom código de saída 56; o registro não mostra por quê). ComdenyReadapontando para a pasta do TCC (execução 3b), a leitura falhou com “authorization denied”. - O controle. A mesma leitura com
sqlite3, enviada como job do launchd, de modo que nem o Ghostty nem o Claude Code estivessem em nenhum ponto da cadeia de inicialização: “authorization denied”.5
É o controle que dá sentido ao resto. O arquivo do banco de dados pertence ao root e, pelo modo, pode ser lido por todos (-rw-r--r--), então não foram as permissões de arquivo que recusaram a execução 4; foi o TCC.195 Mesmo binário, mesmo arquivo, mesmo usuário: funcionou a partir do shell do agente e falhou fora dele. O que o shell do agente tinha, ele tinha por causa da cadeia de inicialização. A regra do engenheiro de suporte aponta o terminal como o código responsável dessa cadeia.3 Há uma ressalva que não consigo eliminar com esses dados: a cadeia também contém um processo claude, e binários do Claude Code também constam na lista; nas execuções 3a e 3b, um processo node rodou o runtime do sandbox, e um node do Homebrew também consta na lista, embora não tenha ficado registrado qual node o npx usou. Minha medição mostra que o acesso vem da cadeia, e a regra do engenheiro de suporte diz que vem do terminal; ela não prova separadamente que foi a linha do Ghostty, e não uma linha do Claude Code ou do node, a que o TCC usou. O engenheiro de suporte da Apple diz que o algoritmo não é documentado.3
As execuções 3b e 4 imprimem o mesmo erro, embora camadas diferentes as tenham recusado. Quem lê “authorization denied” na saída de um agente não tem como saber, pela mensagem, se quem disse não foi o sandbox ou o TCC.5
Teste no seu Mac
A partir do shell que o seu agente usa, isto imprime a lista do Acesso Total ao Disco quando a cadeia de inicialização desse shell tem Acesso Total ao Disco. Falha com “authorization denied” quando a cadeia não tem, ou quando uma regra de sandbox nega a pasta, como na execução 3b. Lê duas colunas e não muda nada. Os resultados são linhas, não estados das chaves.
# Run from the same terminal (or editor terminal) you run agents in.
sqlite3 -readonly "/Library/Application Support/com.apple.TCC/TCC.db" \
"SELECT service, client FROM access WHERE service='kTCCServiceSystemPolicyAllFiles';"
echo "exit=$?"
Esta é a consulta que rodei no macOS 27.0, palavra por palavra.19 Para ver a qual app o TCC atribuiu um acesso, o guia de implantação da Apple oferece um fluxo de log, log stream --debug --predicate 'subsystem == "com.apple.TCC" AND eventMessage BEGINSWITH "AttributionChain"', apresentado “to try to identify” (para tentar identificar) em tempo real o app ou binário responsável.31 Não o rodei nessas medições, e é por isso que a seção 5 não consegue dizer se quem decidiu foi a linha do Ghostty ou outra da cadeia. A consulta ao banco de dados acima pode parar de funcionar em uma versão futura. A Apple não documenta nem o arquivo nem o esquema dele, e as notas do macOS 27 já dizem que os apps “can no longer access the local TCC database directly.” (não podem mais acessar diretamente o banco de dados local do TCC).23
6. O que fazer agora
Até minhas leituras de 11 de outubro, não encontrei nenhum mecanismo publicado nem nota de versão sobre os novos controles, então nada aqui é uma migração. É o que eu faria hoje em qualquer Mac que rode agentes, com a fonte de cada passo e o que ele custa. Ainda não fiz tudo isso no meu próprio Mac; a seção 5 é a foto do antes.
1. Veja quem tem Acesso Total ao Disco. Abra Ajustes do Sistema > Privacidade e Segurança > Acesso Total ao Disco e leia a lista.4 Procure terminais, editores, apps de agentes, binários de agentes, interpretadores e qualquer coisa que você não reconheça. A partir de um shell, a consulta da seção 5 imprime a lista se esse shell já tiver o acesso, o que serve também como teste de se o shell do seu agente o tem; uma falha também pode vir de uma regra de sandbox que nega a pasta, como na execução 3b.5 Custo: nenhum. Lembre-se de que um app que consta na lista não está necessariamente ligado.
2. Tire o acesso do terminal em que você roda agentes. Este é o passo que mais muda as coisas. O código responsável de uma ferramenta de linha de comando é o terminal, então a concessão do terminal é a concessão do agente.32 Se você precisa de Acesso Total ao Disco para tarefas de backup ou de administração pela linha de comando, que é para o que o tmutil e o fdesetup o documentam, mantenha um segundo app de terminal com a concessão e nunca inicie um agente nele.4344 (Essa última parte é sugestão minha, não da Apple. Jeff Johnson demonstrou com o Terminal da Apple que um app fora do sandbox pode pegar emprestada a concessão dele abrindo um script nele; pela minha leitura, o mesmo poderia valer para um segundo app de terminal que abra scripts.46) Custo: os locais protegidos começam a falhar com “Operation not permitted”, e os avisos de Arquivos e Pastas voltam. O controle por pasta da Apple cobre “Desktop, Documents, Downloads, network volumes, and removable volumes.” (Mesa, Documentos, Downloads, volumes de rede e volumes removíveis).10 A Anthropic documenta a mesma falha para as sessões em segundo plano do Claude Code e a solução, uma concessão de Arquivos e Pastas para essa entrada.51 O OpenClaw sugere manter os arquivos dentro do workspace dele para evitar concessões pasta por pasta.50
3. Verifique as entradas próprias do agente. O host em segundo plano do Claude Code pede acesso “separately from your terminal” (separadamente do seu terminal) e pode ter a própria entrada de Acesso Total ao Disco.51 No meu Mac, constam 30 binários do Claude Code numerados por versão, que leio, sem ter verificado, como as entradas desse host.19 Remova as que você não pretendia conceder e, onde uma sessão em segundo plano precisar de uma pasta, conceda Arquivos e Pastas no lugar. Os apps de agentes também têm linhas próprias; no meu Mac, os apps ChatGPT, Cursor e Xcode constam na lista.19 Custo: uma sessão em segundo plano que lê pastas protegidas falha até você conceder o acesso mais restrito.
4. Nunca conceda o acesso a um interpretador. O engenheiro de suporte da Apple: “if you have a script that needs to manipulate files on your desktop, you wouldn’t want to give the interpreter that privilege because then any script could do that.” (se você tem um script que precisa manipular arquivos na sua mesa, não vai querer dar esse privilégio ao interpretador, porque aí qualquer script poderia fazer isso). A solução dele é “package your script as a standalone program that MAC can use for its tracking.” (empacotar o script como um programa independente que o MAC possa usar para o rastreamento).20 A linha própria de um interpretador vale sempre que o interpretador for o código responsável, por exemplo um script rodado como job do launchd sem nenhum app associado; aí todo script Python ou Node iniciado assim por esse interpretador, servidores MCP incluídos, recebe a concessão inteira.32 Custo: para um script que realmente precisa do acesso, a “easiest solution” (solução mais fácil) dele é empacotá-lo como um programa independente que o MAC consiga rastrear, algo que, segundo ele, o AppleScript facilita e os scripts de shell não.20
5. Ligue o sandbox do fornecedor e negue as leituras de que você não precisa. Os padrões leem de forma ampla, então ligar o sandbox é necessário, mas não suficiente.
- Claude Code:
sandbox.enabled, depoispermissions.blockReadsOutsideWorkingDirectories(ou regrassandbox.filesystem.denyRead), e"allowUnsandboxedCommands": falsepara remover a nova tentativa fora do sandbox.15 Lembre-se de que a ferramenta Read, os hooks e os servidores MCP ficam fora dele.15 Custo: ferramentas que precisam de outros caminhos ou hosts falham até você permiti-los, e cada entrada emexcludedCommandsreabre a brecha.15 - Codex: fique em
workspace-writeouread-only; evitedanger-full-access; adicione regras de leitura"deny"a um perfil de permissão ou, para um time, definapermissions.filesystem.deny_readnorequirements.toml, o arquivo imposto pelo administrador, para que os usuários não possam enfraquecê-lo.1621 Custo: comandos que precisam de rede exigem aprovação ounetwork_access.60 - Gemini CLI: rode com
-seSEATBELT_PROFILE=strict-openoustrict-proxied, os dois perfis que a documentação descreve como restritivos para leituras.17 Custo: esses perfis restringem tanto leituras quanto gravações, então ferramentas que leem fora do projeto falham com eles até você escolher um perfil mais permissivo. - Cursor: mude o Read Access de System para Workspace; o ajuste exige o Cursor 3.23 ou posterior, e o Cursor no meu Mac é o 3.19.7.1847 Custo: leituras de arquivos fora do workspace pedem confirmação antes, e comandos em sandbox só enxergam o workspace, sua Read Allowlist e os caminhos do sistema de que as ferramentas comuns precisam.18
- VS Code: ligue o
chat.agent.sandbox.enabled; ele cobre só as sessões do Copilot Agent Host, “not the Local chat harness or the custom terminal tool override.” (não o harness de chat local nem a substituição personalizada da ferramenta de terminal).59 Custo: comandos que precisam de caminhos ou ferramentas fora dos padrões dele precisam ser permitidos, e mesmo assim a Microsoft diz que ele é “not a virtual machine or user-account boundary” (não é um limite de máquina virtual nem de conta de usuário) e deixa a rede de saída aberta por padrão, então ele estreita a brecha em vez de fechá-la.59 - Hermes Agent e OpenClaw: use um backend de contêiner. O Hermes recomenda um para gateways em produção; o sandbox do OpenClaw vem desligado por padrão e é, nas palavras dele, “not a perfect security boundary” (não é um limite de segurança perfeito), embora ele diga que o sandbox “materially limits filesystem and process access.” (limita de forma concreta o acesso ao sistema de arquivos e aos processos).6462 Custo: os comandos rodados no contêiner perdem o acesso irrestrito ao host (o Hermes descreve os backends como forma de isolar “agent commands from your host system”, os comandos do agente do seu sistema host), mas arquivos montados ou sincronizados continuam ao alcance: os backends Docker e Singularity do Hermes usam bind mounts, uma “live host filesystem view” (visão ao vivo do sistema de arquivos do host), o ajuste
docker_volumesdele compartilha diretórios do host, e o acesso ao workspace do OpenClaw pode serroourw, além do padrãonone.646166 O custo é fornecer explicitamente os arquivos de que uma tarefa precisa e auditar essas montagens. O que isso não cobre: o gateway do OpenClaw fica no host, então um canal de iMessage configurado mantém o Acesso Total ao Disco do contexto de processo do gateway; colocar as ferramentas em contêineres não remove essa exposição.6214 A skill de iMessage do Hermes lista pré-requisitos do host (Messages com sessão iniciada,imsginstalado, Acesso Total ao Disco para o terminal); não encontrei nenhuma página do Hermes sobre como a skill se comporta com um backend de contêiner.13
O limite: no meu Mac, nenhum sandbox mudou a concessão de Acesso Total ao Disco; um sandbox bloqueou a leitura protegida só quando o perfil dele negava aquele caminho pelo nome, e as camadas Seatbelt do Claude Code, da CLI do Cursor e do Codex já tiveram fugas publicadas, todas corrigidas.5676869
6. Coloque um agente que lê o Messages em um usuário próprio do macOS, ou abra mão dele. O próprio conselho de implantação do OpenClaw para o bot de iMessage é “Use a dedicated Apple ID and macOS user so bot traffic is isolated from your personal Messages profile.” (use um Apple ID e um usuário do macOS dedicados para que o tráfego do bot fique isolado do seu perfil pessoal do Messages).71 Faça desse usuário uma conta Padrão: a Apple diz que usuários padrão “can install apps and change their own settings, but can’t add other users or change other users’ settings.” (podem instalar apps e alterar os próprios ajustes, mas não podem adicionar outros usuários nem alterar os ajustes de outros usuários).72 No meu Mac, minhas pastas Library, Mail e Messages de usuário só podem ser lidas por mim, segundo os modos de arquivo, então um processo rodando como outro usuário padrão é recusado pelas permissões de arquivo comuns antes que o TCC seja consultado; essa é uma inferência minha a partir dos modos, não um teste que eu tenha feito.19 Duas ressalvas: o engenheiro de suporte da Apple diz que o Acesso Total ao Disco é “system wide” (do sistema inteiro), não por usuário, então um app que o recebeu em uma conta o tem em todas; e o guia da Apple diz que o ajuste alcança “certain administrative settings for all users on this Mac.” (certos ajustes administrativos de todos os usuários deste Mac).204 Custo: um segundo login, um segundo chaveiro e outro conjunto de ajustes, e um agente que não enxerga os arquivos da sua conta principal a menos que você os compartilhe.
7. Desligue “Allow full disk access for remote users” (permitir acesso total ao disco para usuários remotos) se não precisar disso. Se você comanda agentes via SSH, o servidor SSH é o código responsável e esse ajuste é a concessão dele.3 No meu Mac, o cliente dele consta na lista.19 Custo: shells remotos perdem o acesso aos locais protegidos.
8. Mantenha a aprovação por ação para tudo o que fala em seu nome. OpenAI: “Persistent approval removes your final chance to review a message before ChatGPT sends it as you. Use it only when you accept that risk.” (a aprovação persistente tira sua última chance de revisar uma mensagem antes que o ChatGPT a envie em seu nome; use-a só se você aceitar esse risco).22 Anthropic: reserve o bypassPermissions para “isolated environments like containers or VMs.” (ambientes isolados, como contêineres ou VMs).53 Custo: mais cliques, que é justamente a ideia.
9. Se você gerencia Macs, audite o que seus perfis concedem. Um perfil Privacy Preferences Policy Control pode conceder SystemPolicyAllFiles a qualquer bundle ID ou caminho, inclusive um terminal, e “The user isn’t prompted and can’t change this value.” (o usuário não é consultado e não pode alterar esse valor).237 No macOS 27, a parte por app desse payload está marcada como descontinuada, e o substituto declarativo não tem chave de Acesso Total ao Disco.3738 Não encontrei nenhuma forma documentada pela Apple de o MDM informar o Acesso Total ao Disco que um usuário concedeu manualmente. Custo: os perfis que você encontrar podem ser essenciais para um agente de backup ou de segurança; o próprio exemplo da Apple concede acesso ao app de uma organização “without prompting the user.” (sem perguntar ao usuário).31
O guia de loop engineering cobre a execução de agentes sem supervisão; cada passo acima vale com mais força quando não há ninguém diante do teclado para ler um aviso.
7. O que pode mudar: uma leitura, com condições
Tudo nesta seção é a minha leitura das palavras da Apple e das mudanças que a Apple já lançou ao lado delas. A Apple não anunciou nenhum mecanismo, e eu não prevejo nenhum. Cada formato abaixo é algo que o texto de 2 de outubro permite, a evidência que o torna mais ou menos plausível e a condição sob a qual ele afetaria os agentes.
Um fluxo de concessão mais rígido. Os verbos do próprio texto tratam de conceder: usuários “who genuinely wish to grant an app this extraordinary level of access can only do so with very explicit user action,” (que realmente queiram conceder a um app esse nível extraordinário de acesso só poderão fazê-lo com uma ação muito explícita) e que devem “clearly understand these risks before granting such access.” (entender claramente esses riscos antes de conceder esse acesso).1 A Apple já lançou antes um consentimento com explicação: os ajustes declarativos de apps do macOS 27 mostram aos usuários um aviso de consentimento com a justificativa obrigatória de uma organização antes de aplicar padrões de privacidade.3938 Condição: se o novo controle valer só para concessões novas, um terminal que já tem Acesso Total ao Disco continua com ele, e os agentes rodados nele não são afetados até o usuário redefini-lo. Se valer para concessões existentes, todo terminal com Acesso Total ao Disco também é afetado. A notícia não diz nem uma coisa nem outra.
Um escopo mais estreito. A Apple poderia deixar a chave como está e tirar dados de baixo dela. A Apple já redesenhou essas linhas antes: o Catalina acrescentou o Lixo ao que exige Acesso Total ao Disco, o macOS 14 e o 15 colocaram contêineres de apps e contêineres de grupos atrás de proteções próprias, e o macOS 27 nega por padrão os contêineres de outros times e permite que o XProtect restrinja “app data that is commonly targeted by malicious software.” (dados de apps que costumam ser alvo de malware).112023 Condição: se a Apple colocar os dados do Mail, do Messages ou do Safari atrás de um controle próprio que o Acesso Total ao Disco não cubra, o caminho do terminal deixa de chegar a eles mesmo onde o terminal mantém o Acesso Total ao Disco. A notícia não menciona estreitamento; a expressão “this extraordinary level of access” (esse nível extraordinário de acesso) descreve a concessão como ela é.
Um tratamento diferente para concessões herdadas. A lacuna entre “grant an app” (conceder a um app) e um agente que é filho de um app é o tema deste post, e a Apple tem duas peças já no lugar que poderiam tratá-la. O Xcode 27 já tem “a new security layer that monitors and controls filesystem access by coding agents and any processes they spawn,” (uma nova camada de segurança que monitora e controla o acesso ao sistema de arquivos por agentes de programação e por quaisquer processos que eles iniciem) e o Endpoint Security do macOS 27 acrescenta o es_new_descendants_client, que observa só “the entire subtree rooted at the calling process” (toda a subárvore cuja raiz é o processo chamador) e, segundo o header, “Does NOT require TCC approval,” (NÃO exige aprovação do TCC), embora, como o es_new_client, exija o entitlement com.apple.developer.endpoint-security.client.2425 O engenheiro de suporte da Apple acrescentou este último ao post dele sobre permissões de arquivos em 18 de setembro de 2026.20 Nenhum dos dois textos tem relação com o Acesso Total ao Disco. Condição, como leitura minha: um controle sobre “an app” (um app) recai sobre o terminal, e todo agente nele continua herdando o resultado, a menos que a Apple mude a atribuição do código responsável, que o engenheiro dela chama de não documentada e “subject to change” (sujeita a mudanças), ou vincule o novo controle a algo como o cliente de descendentes. Nenhum dos dois textos diz que ela fará isso.
Macs gerenciados. O MDM pode conceder Acesso Total ao Disco hoje sem perguntar ao usuário.37 No macOS 27, a parte por app desse payload está descontinuada, e o substituto declarativo dela não tem chave de Acesso Total ao Disco.3738 Condição: se a “very explicit user action” (ação muito explícita do usuário) valer para concessões via MDM, uma concessão silenciosa por perfil deixaria de ser possível; se não valer, os Macs gerenciados mantêm o caminho silencioso. A Apple não disse nada sobre nenhum dos dois pontos e não vinculou a descontinuação do macOS 27 à notícia de 2 de outubro.
Quando. A notícia diz “Going forward” (daqui em diante). As notas do beta 3 do macOS 27.2, para um beta datado de três dias depois, não trazem nada sobre o assunto, e não encontrei nenhuma entrada do macOS 27.1 no feed de lançamentos nem no índice de notas de versão de 11 de outubro: o feed lista o 27.0.1 (28 de setembro) e depois o beta 3 do 27.2, com os betas do 27.2 tendo começado em 16 de setembro, e o índice de notas de versão lista apenas o 27 e o beta 3 do 27.2.6879 A Apple colocou a descontinuação do TCC deste ano, “Apps can no longer access the local TCC database directly” (os apps não podem mais acessar diretamente o banco de dados local do TCC), nas notas de versão do macOS 27, sob um título de TCC.23 Condição: se os novos controles chegarem em uma versão que tenha notas para desenvolvedores, essas notas são onde a Apple colocou a descontinuação do TCC deste ano, e vou ler as notas de cada beta do macOS 27.x em busca de uma linha. Mas o macOS 27.0.1 já saiu sem nenhuma nota de versão para desenvolvedores, então uma mudança também poderia chegar em uma atualização pontual sem nenhuma linha em nenhuma página de notas.78 Se chegarem com o macOS 28, uma sessão da WWDC ou as notas de versão de um beta são onde a Apple já descreveu mudanças assim: a WWDC19 para as proteções do Catalina, as notas do macOS 27 para a descontinuação do TCC deste ano.1123 De qualquer forma, os passos da seção 6 não dependem da resposta.
Principais conclusões
Se você roda agentes em um Mac
- A Apple disse em 2 de outubro que conceder Acesso Total ao Disco vai exigir “very explicit user action” (uma ação muito explícita do usuário) e citou os agentes de IA como o motivo. Não deu versão, data nem mecanismo.1
- Seu agente de linha de comando tem o que o seu terminal tiver. As páginas de manual da Apple e o engenheiro de suporte dela dizem que o terminal é o código responsável; a Apple não documenta nenhuma regra geral.23
- Um sandbox de fornecedor não é um controle de Acesso Total ao Disco. No meu Mac, uma leitura protegida passou pelo sandbox somente leitura do Codex e pelo sandbox runtime da Anthropic; só uma negação de leitura na pasta exata, ou a inicialização fora do terminal, a interrompeu.5
- Tire o Acesso Total ao Disco do terminal em que você roda agentes, nunca o dê ao
nodeou aopythone ligue restrições de leitura, não só o sandbox.201521 - Se um agente lê o Messages, dê a ele um usuário próprio do macOS e mantenha a aprovação por envio.7122
Se você desenvolve agentes ou apps de agentes
- Não mande os usuários concederem Acesso Total ao Disco ao terminal ou ao processo do agente. Dois fornecedores fazem isso hoje, para o Messages.1314
- O caminho documentado pela Apple é um link para o painel, não um aviso; a chave é do usuário, e a Apple diz que ligá-la vai exigir uma ação muito explícita do usuário.251
- Diga na sua documentação o que o seu sandbox lê por padrão. A documentação do Codex diz que o sandbox dele “limits what it can touch (typically to the current workspace)” (limita o que ele pode tocar, normalmente ao workspace atual); o código-fonte e as minhas execuções mostram leituras que vão muito além do workspace.60635
Perguntas frequentes
O que é o Acesso Total ao Disco no Mac?
Um ajuste em Ajustes do Sistema > Privacidade e Segurança que permite a um app “access all files on your computer, including data from other apps (for example, Mail, Messages, Safari, and Home), data from Time Machine backups, and certain administrative settings for all users on this Mac.” (acessar todos os arquivos do computador, incluindo dados de outros apps, como Mail, Messages, Safari e Casa, dados de backups do Time Machine e certos ajustes administrativos de todos os usuários deste Mac). Os apps não podem pedi-lo com um aviso; o usuário os adiciona com o botão Adicionar, ou um perfil de MDM o concede.4102
O que a Apple anunciou sobre o Acesso Total ao Disco em outubro de 2026?
Uma notícia para desenvolvedores datada de 2 de outubro de 2026, “Updates to Full Disk Access in macOS”, diz que a Apple “will introduce additional controls” (vai introduzir controles adicionais) para que os usuários que queiram conceder esse acesso a um app “can only do so with very explicit user action,” (só possam fazê-lo com uma ação muito explícita) porque “As AI agents become increasingly capable and autonomous, the risks associated with this level of access will grow substantially.” (à medida que os agentes de IA ficam mais capazes e autônomos, os riscos associados a esse nível de acesso vão crescer substancialmente). Ela não cita nenhuma versão do macOS, data nem mecanismo.1
O Claude Code ou o Codex recebem Acesso Total ao Disco do meu terminal?
Sim, se o terminal o tiver. Uma ferramenta rodada a partir de um terminal é verificada com base no terminal; a página de manual do eslogger da Apple diz que rodá-lo a partir do “Terminal.app or a third-party terminal emulator” (Terminal.app ou um emulador de terminal de terceiros) exige que esse app esteja autorizado, e o engenheiro de suporte da Apple escreve em um post no fórum: “The tool’s responsible code is Terminal.” (o código responsável pela ferramenta é o Terminal). No meu Mac, uma leitura que exige Acesso Total ao Disco funcionou a partir do shell do Claude Code dentro do Ghostty e falhou quando iniciada fora dele.235
O sandbox do Claude Code ou do Codex impede um agente de ler minhas mensagens do Messages?
Não por padrão. Os dois sandboxes usam o Seatbelt, que é separado do Acesso Total ao Disco. O sandbox do Claude Code vem desligado por padrão e, quando ligado, lê “Most of the machine” (a maior parte da máquina). O do Codex vem ligado, e o modo somente leitura dele leu no meu Mac um arquivo protegido pelo Acesso Total ao Disco. Negue as leituras explicitamente: permissions.blockReadsOutsideWorkingDirectories no Claude Code, regras "deny" em um perfil de permissão do Codex.15215
Como vejo quais apps têm Acesso Total ao Disco?
Abra Ajustes do Sistema > Privacidade e Segurança > Acesso Total ao Disco.4 O tccutil não consegue listá-lo; o único comando dele é reset.34 A partir de um terminal que já tenha Acesso Total ao Disco, uma leitura do banco de dados do TCC do sistema lista os clientes, como na seção 5; uma falha com “authorization denied” significa que o seu shell não tem o acesso ou que uma regra de sandbox negou a leitura.195
Devo tirar o Acesso Total ao Disco do Terminal?
Se você roda agentes nele, sim. Mantenha um terminal separado com a concessão para comandos de backup ou de administração, como o tmutil, e nunca inicie um agente ali. Espere avisos de Arquivos e Pastas e erros “Operation not permitted” no terminal de que você tirar o acesso.431051
Quando os novos controles de Acesso Total ao Disco da Apple vão sair?
A Apple não disse. A notícia de 2 de outubro diz “Going forward” (daqui em diante), as notas de versão do beta 3 do macOS 27.2 não falam do assunto, e não encontrei nenhuma entrada do macOS 27.1 no feed de lançamentos nem no índice de notas de versão de 11 de outubro: o feed lista o macOS 27.0.1 (28 de setembro), lançado sem notas de versão para desenvolvedores, e depois o beta 3 do macOS 27.2; os próprios betas do 27.2 começaram em 16 de setembro.16789
Fontes
-
Apple Developer, News, “Updates to Full Disk Access in macOS”, datada de 2 de outubro de 2026. Baixada em 11 de outubro de 2026, às 17:28 UTC, e de novo às 17:47 UTC; o texto das duas cópias é idêntico, exceto pelo estilo dos apóstrofos. Os dois parágrafos completos: o Acesso Total ao Disco “largely sidesteps” os controles de dados “in order to allow backup apps to function properly on the Mac”; “Some developers are using Full Disk Access in ways that could put users at risk”; os arquivos, e-mails, mensagens e o histórico de navegação; os apps de comunicação e “the people users are communicating with”; “Going forward, we will introduce additional controls”; “very explicit user action”; os agentes de IA como o motivo pelo qual o risco “will grow substantially”. Nenhuma versão, data, mecanismo ou app citado. ↩↩↩↩↩↩↩↩↩↩↩↩↩
-
Apple, página de manual
eslogger(1), distribuída com o SDK do macOS 27.0 no Xcode; lida localmente em 11 de outubro de 2026. Seção TCC AUTHORIZATION: “eslogger requires the responsible process to have been authorized for Full Disk Access”; rodá-lo “from an app, including Terminal.app or a third-party terminal emulator, requires the respective app to be authorized for Full Disk Access”; o ajuste de Sessão Remota para sessões SSH; e “MDM servers can grant Full Disk Access authorization” pela chaveSystemPolicyAllFilesdo payload Privacy Preferences Policy Control. ↩↩↩↩↩↩↩↩↩↩↩↩ -
Apple Developer Forums, “How to grant command line tools full disk access”, thread criada em junho de 2024; respostas de Quinn “The Eskimo!”, Apple Developer Technical Support, junho de 2024. Um post de funcionário, não documentação. Baixada em 11 de outubro de 2026, às 17:55 UTC. Os quatro casos de código responsável (“The tool’s responsible code is Terminal,” “The tool’s responsible code is the SSH server,” com o ajuste “Allow full disk access for remote users”, “The system treats the app as the responsible code,” e o caso do launchd: “If the daemon or agent was installed by SMAppService, that makes the app the responsible code. Otherwise, the daemon or agent should include AssociatedBundleIdentifiers in its launchd property list”); a ressalva de que o algoritmo “is not documented, has changed in the past, and may well change in the future”; o relato do autor original de que um programa rodado no Terminal, com o Terminal tendo Acesso Total ao Disco, abriu o arquivo e falhou quando a concessão passou do Terminal para o programa; e as observações de Quinn sobre ferramentas rodadas pelo Xcode: “Xcode runs the tool in a way that makes it clear to the system that Xcode is not the responsible code for this process,” e, para uma ferramenta sob o depurador do Xcode (Xcode 15.4 no macOS 14.4.1), “I expect that one of these is breaking TCC’s responsible code search,” acrescentando “I suspect that’s deliberate.” ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩
-
Apple, Manual do Usuário do Mac (macOS 27), “Change Privacy & Security settings on Mac”. Baixado em 11 de outubro de 2026, às 17:37 UTC. A linha do Acesso Total ao Disco (“Allow apps to access all files on your computer,” com Mail, Messages, Safari, Casa, backups do Time Machine e “certain administrative settings for all users on this Mac”) e a instrução de adicionar um app com o botão Adicionar; o “The listed apps have requested access.” das outras linhas. ↩↩↩↩↩↩↩↩↩↩
-
Medição do autor no Mac do autor (macOS 27.0, build 26A428, System Integrity Protection ativado), 11 de outubro de 2026, 17:40 UTC, a partir de uma sessão do Claude Code no Ghostty. Todos os comandos somente leitura, exceto dois: um job do launchd enviado e removido (com a saída gravada em dois arquivos), e o sandbox-runtime 0.0.79 da Anthropic instalado via
npx -ypara o teste, com dois arquivos de configuração temporários (srt-a.json, srt-b.json) gravados para as execuções dele. As sondas de gravação foram tentativas, que os sandboxes recusaram; as sondas de rede falharam (000 curl_exit=56), sem diagnóstico e sem um controle fora do sandbox que permitisse saber por quê. As sete execuções da seção 5: uma leitura de uma única linha do banco de dados do TCC do sistema a partir do shell do agente (linha retornada); dentro do sandbox Seatbelt do Codex CLI 0.154.0 no modoread-only(linha retornada; uma gravação fora do workspace recusada com “Operation not permitted”); com a configuração do Codex do autor (linha retornada); dentro do sandbox-runtime 0.0.79 da Anthropic sem negação de leitura (linha retornada; gravação recusada; requisição de rede com falha) e comdenyReadna pasta do TCC (“authorization denied”); e a mesma leitura como job do launchd sem o Ghostty na cadeia (“authorization denied”). ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Apple Developer Documentation, “macOS 27.2 Golden Gate Beta 3 Release Notes”. Baixada em 11 de outubro de 2026, às 17:35 UTC. Seis seções: General, AppKit, Display Settings, Notifications, Shortcuts, StoreKit Testing in Xcode; nenhuma linha sobre Acesso Total ao Disco, TCC ou Privacidade e Segurança; a linha do AppKit sobre o padrão
EnablePasteboardPrivacyDeveloperPreviewremovido. ↩↩↩↩ -
Apple Developer, feed RSS de Releases. Baixado em 11 de outubro de 2026, às 17:28 UTC. “macOS 27.2 beta 3 (26B5101f)” datado de segunda-feira, 5 de outubro de 2026; “macOS 27.0.1 (26A434)” datado de segunda-feira, 28 de setembro de 2026; nenhum item do macOS 27.1. ↩↩↩↩↩↩
-
Apple Developer Documentation, “macOS Release Notes”, baixada em 11 de outubro de 2026, às 17:35 UTC: sob macOS 27, apenas “macOS 27.2 Golden Gate Beta 3 Release Notes” e “macOS 27 Golden Gate Release Notes”. Os endereços
macos-release-notes/macos-27_0_1-release-notes,macos-27_1-release-notesemacos-27_1-beta-release-notesretornaram HTTP 404 às 17:31 UTC. ↩↩↩↩↩ -
Apple Developer, News, página de índice. Baixada em 11 de outubro de 2026, às 17:41 UTC. “Get ready with the latest beta releases”, datada de 16 de setembro de 2026: “The beta versions of iOS 27.2, iPadOS 27.2, macOS 27.2, tvOS 27.2, visionOS 27.2, and watchOS 27.2 are now available.” ↩↩↩
-
Apple Platform Security, “Controlling app access to files in macOS”. Baixada em 11 de outubro de 2026, às 17:36 UTC. “Full internal storage access”: o app não pergunta; o usuário altera os ajustes de privacidade do sistema. Arquivos e Pastas, pedido pelo app, “Includes Desktop, Documents, Downloads, network volumes, and removable volumes.” A frase que data o acesso ao armazenamento inteiro de “macOS 10.13 or later”. ↩↩↩↩↩↩
-
Apple, sessão 701 da WWDC19, “Advances in macOS Security”, transcrição na página. Baixada em 11 de outubro de 2026, às 17:40 UTC. Os dois níveis de dados protegidos, com e-mail, mensagens e o histórico de navegação do Safari atrás de “a high barrier to access” para “disk management or backup utilities”; os locais do Catalina que exigem consentimento; auxiliares “prepopulated unchecked”; o Lixo acrescentado ao que exige pré-aprovação; os apps “can guide the user to the security and privacy preference pane”. ↩↩↩↩↩↩↩
-
Apple, sessão 10053 da WWDC23, “What’s new in privacy”, transcrição na página. Baixada em 11 de outubro de 2026, às 17:40 UTC. A proteção de contêineres de apps, e “For backup utilities or disk-management tools that have already been granted Full Disk Access, no additional prompt will be shown at time of access.” ↩↩↩
-
Nous Research, documentação do Hermes Agent, Apple iMessage skill. Baixada em 11 de outubro de 2026, às 17:41 UTC. “Bundled (installed by default)”; os pré-requisitos incluem “macOS with Messages.app signed in”, instalar o
imsg, “Grant Full Disk Access for terminal (System Settings → Privacy → Full Disk Access)” e “Grant Automation permission for Messages.app when prompted.” ↩↩↩↩↩↩ -
Documentação do OpenClaw, “iMessage setup”. Baixada em 11 de outubro de 2026, às 17:42 UTC. “Full Disk Access is required for the process context running OpenClaw/
imsg” para o acesso ao banco de dados do Messages; Automação para enviar; “Permissions are granted per process context”; o System Integrity Protection precisa ser desativado para ações avançadas; e uma linha de exemplo do TCC mostrando/usr/libexec/sshd-keygen-wrappercomo o cliente de um contexto SSH. ↩↩↩↩↩↩↩↩ -
Anthropic, Claude Code Docs, “Configure the sandboxed Bash tool”. Baixada em 11 de outubro de 2026, às 17:35 UTC. “The sandbox is off by default”; a tabela de padrões (gravações no diretório de trabalho, no temporário e nos diretórios adicionados; leituras de “Most of the machine, including credential files”; rede por um proxy com domínios permitidos que “start empty”); construído sobre
@anthropic-ai/sandbox-runtime; Seatbelt no macOS; os dois modos de sandbox; o que roda fora dele (ferramentas embutidas de arquivos e web; hooks, servidores MCP locais, monitores de plugins, servidores LSP, comandos auxiliares); a nova tentativa fora do sandbox e oallowUnsandboxedCommands;denyRead,allowRead,blockReadsOutsideWorkingDirectories,excludedCommands; Apple Events bloqueados por padrão. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
OpenAI, documentação do Codex, “Sandbox” (servida a partir de learn.chatgpt.com). Baixada em 11 de outubro de 2026, às 17:36 UTC. Sandbox ligado por padrão; Seatbelt no macOS; vale para comandos iniciados; os modos
read-only,workspace-writeedanger-full-accessnas palavras da OpenAI; o acesso total definido comodanger-full-accesscomapproval_policy = "never"; o rótulo “Full access” do menu do desktop. ↩↩↩↩↩↩↩ -
Google, Gemini CLI, docs/cli/sandbox.md e o perfil Seatbelt permissive-open, no commit 9b6e026. Baixados em 11 de outubro de 2026, às 17:43 UTC. Ativação com
-s,GEMINI_SANDBOXou configurações; Seatbelt viasandbox-exec; os seis perfis, compermissive-opencomo padrão (“allowing broad file reads and network access”),strict-openestrict-proxiedcom restrições de leitura; o(allow file-read*)do perfil. ↩↩↩↩↩ -
Documentação do Cursor, “Run Modes”. Baixada em 11 de outubro de 2026, às 17:50 UTC. Seatbelt via
sandbox-execpara “the full subprocess tree”; rede “Blocked by default”; os modos de Read Access, com System como padrão (“The agent can read files outside the workspace without approval”) e Workspace, que pergunta antes de leituras fora do workspace; “Read access requires Cursor 3.23 or later”; alguns comandos “bypass the sandbox”. ↩↩↩↩↩↩↩↩ -
Medição do autor no Mac do autor (macOS 27.0, build 26A428, System Integrity Protection ativado), 11 de outubro de 2026, 17:32 UTC, com uma verificação de modos de arquivo acrescentada às 18:09 UTC; somente leitura. A cadeia de inicialização do shell do agente (zsh, claude, shell de login, login, Ghostty;
TERM_PROGRAMghostty); o banco de dados do TCC por usuário, impossível de abrir; o modo do banco de dados do TCC do sistema (-rw-r--r--, root) e as 75 linhas dele parakTCCServiceSystemPolicyAllFiles, só as colunas de serviço e cliente: Terminal, iTerm2, Ghostty, o app do ChatGPT (com.openai.codex), Cursor, Xcode, 30 binários de versões do Claude Code de 2.1.177 a 2.1.296, onodedo Homebrew e quatro interpretadores Python,sshd-keygen-wrapper, três outras entradas da Apple, cinco builds do próprio autor e 25 outros clientes de terceiros. Os modos das pastas Library, Mail e Messages do usuário (só o dono). Caminhos de clientes dentro da pasta pessoal não são reproduzidos aqui. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Apple Developer Forums, “On File System Permissions”, por Quinn “The Eskimo!”, Apple Developer Technical Support; publicado originalmente em 26 de abril de 2021 e revisado em 18 de setembro de 2026 para incluir o
es_new_descendants_client. Um post de funcionário, não documentação. Baixado em 11 de outubro de 2026, às 17:56 UTC. “The exact list of file system locations protected by MAC is not documented”; a lista que inclui “Full Disk Access (macOS 10.14 and later)”, a proteção de contêineres de apps (macOS 14) e a proteção de contêineres de grupos de apps (macOS 15); “Some MAC privileges are per user (Files and Folders) and some are system wide (Full Disk Access)”; o TCC “has no API surface”; o MAC “is mandatory; it’s not an opt-in like the App Sandbox”; o código responsável; o alerta sobre interpretadores e o conselho de “package your script as a standalone program”. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
OpenAI, documentação do Codex, “Configuration Reference”. Baixada em 11 de outubro de 2026, às 17:37 UTC. Perfis de permissão com
"read" | "write" | "deny"por caminho;permissions.filesystem.deny_read, “Admin-enforced filesystem read denials”, que “users cannot weaken them with local config”; orequirements.tomldescrito como “an admin-enforced configuration file that constrains security-sensitive settings users can’t override.” ↩↩↩↩↩ -
OpenAI, documentação do ChatGPT, “Plugins”, seção Apple Messages. Baixada em 11 de outubro de 2026, às 17:45 UTC. “Grant the requested macOS permissions before ChatGPT reads Messages”; aprovação por envio por padrão; “Persistent approval removes your final chance to review a message before ChatGPT sends it as you”; o Apple Messages roda só no Mac; administradores podem desativá-lo pelo controle do Computer Use; “When a plugin capability runs through a Codex host, the host’s sandbox and approval policy applies.” ↩↩↩↩↩↩
-
Apple Developer Documentation, “macOS 27 Golden Gate Release Notes”. Baixada em 11 de outubro de 2026, às 17:35 UTC. System Integrity Protection: contêineres de dados de apps e de grupos de apps de outros times negados por padrão, sem aviso (161835690); o XProtect pode restringir dados de apps (178668601). Descontinuação no TCC: “Apps can no longer access the local TCC database directly” (90775556). Problema conhecido de Privacy & Security Settings (184660124) com o contorno de “grant Full Disk Access to the process for the duration of the requirement.” ↩↩↩↩↩↩↩↩↩
-
Apple Developer Documentation, “Xcode 27 Release Notes”. Baixada em 11 de outubro de 2026, às 17:45 UTC. “Agents in Xcode can now be extended with plugins that contain skills, MCP servers, and ACP agent configurations” (178289210); suporte ao Agent Client Protocol (178294840); a “new security layer that monitors and controls filesystem access by coding agents and any processes they spawn” do Coding Intelligence, que “can be enabled in Coding Intelligence settings” (178289431); a prévia do servidor MCP do Beta 5 para “code-signed agents” e a flag
--unsafe-always-allow-all-agents, “not a recommended configuration for at-desk use” (181836944). ↩↩↩↩↩ -
Apple, SDK do macOS 27.0 (build do SDK do Xcode 26A425), header
EndpointSecurity/ESClient.h, lido localmente em 11 de outubro de 2026.es_new_client: “Callers are required to be entitled with com.apple.developer.endpoint-security.client”; “The only supported way to check if an application is properly TCC authorized for Full Disk Access”, e as URLs de ajustesPrivacy_AllFiles“To direct the user to the Full Disk Access section in System Settings.”es_new_descendants_client, disponível a partir do macOS 27.0: eventos para “the entire subtree rooted at the calling process”, “Does NOT require TCC approval”, com “@note Requires the com.apple.developer.endpoint-security.client entitlement.” ↩↩↩↩↩ -
Apple Developer, feed RSS de News. Baixado em 11 de outubro de 2026, às 17:41 UTC. “Updates to Full Disk Access in macOS” datado de sexta-feira, 2 de outubro de 2026, 09:00:19 PDT; vizinhos: o aviso de expiração da Developer ID Sub-CA (1º de outubro), os itens sobre recursos da App Store e o iPhone Duo (5 de outubro) e “Hello Developer: October 2026” (6 de outubro). ↩
-
Apple Developer, “Hello Developer: October 2026”, publicado em 6 de outubro de 2026. Baixado em 11 de outubro de 2026, às 17:46 UTC. Envios para o iPhone Duo e Group Labs, eventos, documentação localizada e outros itens; nenhuma menção a Acesso Total ao Disco nem a agentes. ↩
-
Apple Developer, vídeos de Privacy & Security. Baixado em 11 de outubro de 2026, às 17:41 UTC. As sessões da WWDC26 listadas: “Meet Trust Insights”, “Secure your app: mitigate risks to agentic features”, “Secure your apps with App Attest” e “Privacy and Security Group Lab”; nenhuma das transcrições contém “Full Disk”. ↩
-
Apple, sessão 347 da WWDC26, “Secure your app: mitigate risks to agentic features”, transcrição na página. Baixada em 11 de outubro de 2026, às 17:41 UTC. Injeção indireta de prompt, mitigações com Foundation Models e App Intents, e a “Simon Willison’s Lethal Trifecta”: “access to private data, exposure to untrusted content, and the ability to externally communicate.” Nenhuma menção a Acesso Total ao Disco, TCC ou permissões de sistema de arquivos para agentes. ↩↩
-
Apple Developer Documentation, DeviceManagement, “PrivacyPreferencesPolicyControl.Services”. Baixada em 11 de outubro de 2026, às 17:35 UTC.
SystemPolicyAllFiles: “Allows the application access to all protected files, including system administration files”, sem marca de descontinuação; Camera, Microphone, ListenEvent e ScreenCapture: um perfil “can’t grant” o acesso e “can only deny it”; vários serviços marcados como descontinuados para o macOS 27. ↩↩↩↩ -
Apple Platform Deployment, “Privacy Preferences Policy Control device management payload settings for Apple devices”. Baixada em 11 de outubro de 2026, às 17:38 UTC. “Supervision is required if you apply this payload using a device management service”; “System Policy All Files” com a lista de dados; o comentário de exemplo que concede ao app de uma organização acesso a todos os arquivos “without prompting the user”; e o predicado do
log streamsobre as mensagens “AttributionChain” do subsistema do TCC, oferecido para identificar o app ou binário responsável. ↩↩↩↩↩ -
Apple, SDK do macOS 27.0, header
EndpointSecurity/ESTypes.h, lido localmente em 11 de outubro de 2026.ES_NEW_CLIENT_RESULT_ERR_NOT_PERMITTED: “The caller lacks Transparency, Consent, and Control (TCC) approval from the user.” ↩ -
Apple, sessão 8009 da WWDC26, “Privacy and Security Group Lab”, transcrição na página. Baixada em 11 de outubro de 2026, às 17:41 UTC. Um participante do painel da Apple: “So TCC stands for transparency, consent and control.” Nenhuma menção ao Acesso Total ao Disco. ↩
-
Apple, página de manual
tccutil(1), macOS 27.0 (datada de 3 de abril de 2012), lida localmente em 11 de outubro de 2026. Um comando,reset; os exemplos citam sóAddressBookeAll; nenhuma lista de serviços. ↩↩↩ -
Apple Developer Forums, “The Rules for Full Disk Access”, página 1, agosto e setembro de 2018. Baixada em 11 de outubro de 2026, às 17:44 UTC. O post de um desenvolvedor de agosto de 2018 fala em “Full Disk Access (previously Application Data in earlier betas)”; um desenvolvedor pede “an API call that causes a prompt to the logged-in user to grant the app Full Disk access”; o Apple Developer Technical Support responde “Please do file an enhancement request” e, em setembro, descreve que os auxiliares incluídos no pacote ficam cobertos pela concessão do app pai, enquanto auxiliares externos precisam da própria. ↩↩
-
Apple Developer Documentation, DeviceManagement, “PrivacyPreferencesPolicyControl”. Baixada em 11 de outubro de 2026, às 17:35 UTC. Tipo de payload
com.apple.TCC.configuration-profile-policy; macOS, introduzido no 10.14; “Requires supervision” N/A; exige MDM aprovado pelo usuário. ↩↩↩ -
Apple Developer Documentation, DeviceManagement, “PrivacyPreferencesPolicyControl.Services.Identity”. Baixada em 11 de outubro de 2026, às 17:35 UTC. Descontinuado no macOS 27.0, cada chave “Deprecated: macOS 27+”;
Allowed: “The user isn’t prompted and can’t change this value”; identificadores por bundle ID ou caminho; “Helper tools embedded within an application bundle automatically inherit the permissions of their enclosing app bundle.” ↩↩↩↩↩↩↩ -
Apple Developer Documentation, DeviceManagement, “AppSettingsAppDictionaryObject”, introduzido no macOS 27. Baixada em 11 de outubro de 2026, às 17:36 UTC. Padrões de privacidade para Accessibility, Bluetooth, Camera, Dictation, LocalNetwork, Location, LocationAccuracy e Microphone, e uma OrganizationJustification obrigatória exibida no aviso de consentimento; nenhuma chave de Acesso Total ao Disco. ↩↩↩↩
-
Apple Developer Documentation, DeviceManagement, “AppSettings”. Baixada em 11 de outubro de 2026, às 17:35 UTC. Padrões de permissões de privacidade: “When set, the app displays a consent prompt listing all the configured defaults”; Allow ou Not Now; “Only AppKit-based apps on macOS support this feature.” ↩↩
-
Apple Newsroom, “Apple introduces macOS Mojave”, comunicado à imprensa, 4 de junho de 2018. Baixado em 11 de outubro de 2026, às 17:48 UTC. “New data protections require apps to get user permission before using the Mac camera and microphone or accessing personal data like user Mail history and Messages database.” ↩
-
Apple Developer Documentation, “macOS Mojave 10.14 Release Notes”. Baixada em 11 de outubro de 2026, às 17:41 UTC. Privacy, New Features: o armazenamento protegido exige que o app seja adicionado à categoria “Application Data” (39798760). ↩
-
Apple Newsroom, “macOS Catalina is available today”, 7 de outubro de 2019. Baixado em 11 de outubro de 2026, às 17:47 UTC. “new data protections require all apps to get permission before accessing user documents.” ↩
-
Apple, página de manual
tmutil(8), SDK do macOS 27.0, lida localmente em 11 de outubro de 2026. “Full Disk Access privileges can be granted to the Terminal application used to run tmutil.” ↩↩↩ -
Apple, página de manual
fdesetup(8), SDK do macOS 27.0, lida localmente em 11 de outubro de 2026. AUTHORIZATION POLICY: a partir do macOS 10.15, ativar o FileVault exige, entre outras opções, que o aplicativo responsável esteja autorizado no Acesso Total ao Disco. ↩↩ -
Apple Developer Forums, “Which application is taken in consideration with TCC”, novembro de 2023. Baixada em 11 de outubro de 2026, às 17:43 UTC. Um desenvolvedor pergunta se o TCC “is looking for parent process rights”; o Apple Developer Technical Support aponta para “On File System Permissions” e se recusa a dar detalhes por serem “both complex and subject to change.” ↩
-
Jeff Johnson, “Every unsandboxed app has Full Disk Access if Terminal does”, 22 de setembro de 2022, com código-fonte. Baixado em 11 de outubro de 2026, às 17:59 UTC. O Terminal com Acesso Total ao Disco “can read or write any restricted files, including the TCC database itself” (o exemplo dele é o banco de dados por usuário); apps fora do sandbox podem abrir no Terminal scripts que rodam com as permissões do Terminal; a técnica “doesn’t work for sandboxed apps.” ↩↩↩
-
Inspeção do autor dos apps instalados no Mac do autor, 11 de outubro de 2026, 17:33 UTC; somente leitura. Versões: Claude Code 2.1.296, Codex CLI 0.154.0, Gemini CLI 0.19.4, Hermes Agent 0.14.0; Aider e OpenClaw não instalados; VS Code não instalado. Purpose strings do Info.plist e entitlement do App Sandbox do app do Claude (2.31226.0, sem entitlement de sandbox; strings de pastas e de Apple Events), do ChatGPT (
com.openai.codex26.715.72359,app-sandboxfalse), do Cursor (3.19.7, sem entitlement), do Ghostty 1.3.1 (“A program running within Ghostty would like to use AppleScript.”) e do iTerm2 3.6.6 (“An application in iTerm2 wants to use AppleScript.”), nenhum dos dois em sandbox. ↩↩↩↩↩↩↩↩ -
Buscas de código do autor no GitHub, 11 de outubro de 2026, 18:12 UTC: a documentação do Aider por “sandbox” e o repositório dele por “Full Disk Access”, a documentação do Ghostty e o repositório do iTerm2 por “Full Disk Access”; zero resultados em cada uma. A busca de código não indexa tudo. ↩↩↩
-
Documentação do Cursor, “Terminal”, ferramentas do agente. Baixada em 11 de outubro de 2026, às 17:50 UTC. “Cursor runs shell commands directly in your terminal”; o Run Mode controla quando os comandos rodam, quando o Cursor pergunta e quando eles entram no sandbox. ↩↩
-
Documentação do OpenClaw, “macOS permissions”. Baixada em 11 de outubro de 2026, às 17:42 UTC. Conceder o acesso “to the same process context that performs file operations”; tratar uma entrada do
node“as broad permission for that Node runtime, not as permission for one npm package”; mover os arquivos para o workspace do OpenClaw para evitar concessões pasta por pasta. ↩↩↩ -
Anthropic, Claude Code Docs, “Manage multiple agents with agent view”. Baixada em 11 de outubro de 2026, às 17:36 UTC. No macOS, o host de sessões em segundo plano “requests access to protected folders separately from your terminal”; diante de “Operation not permitted”, conceder Arquivos e Pastas “or enable Full Disk Access for the entry”; com o instalador nativo, a entrada “appears as Claude Code and the grant persists across updates”, enquanto instalações via Homebrew ou npm mostram o caminho do binário. ↩↩↩↩↩↩
-
Anthropic, Claude Code Docs, “Let Claude use your computer from the CLI”. Baixada em 11 de outubro de 2026, às 17:49 UTC. Acessibilidade e Gravação de Tela; se o aviso persistir, confirmar que “your terminal app is listed and enabled” em Gravação de Tela. ↩
-
Anthropic, Claude Code Docs, “Configure permissions”. Baixada em 11 de outubro de 2026, às 17:35 UTC. Modos de permissão
default(rotulado Manual),acceptEdits,plan,auto,dontAsk,bypassPermissions; usar obypassPermissionsapenas “in isolated environments like containers or VMs where Claude Code can’t cause damage.” Nenhuma menção ao Acesso Total ao Disco. ↩↩↩ -
OpenAI Help Center, “ChatGPT release notes”, entrada de 20 de agosto de 2026. Baixada em 11 de outubro de 2026, às 17:47 UTC. O plugin do Apple Messages “can read and search iMessage, SMS, and RCS conversations and prepare or send messages through Messages”; aprovação antes do envio por padrão. ↩
-
MacRumors, Juli Clover, “ChatGPT Can Now Read and Send iMessages on Mac”, 20 de agosto de 2026. Baixado em 11 de outubro de 2026, às 17:48 UTC. Imprensa, usada como pista: “ChatGPT needs Full Disk Access in System Settings, as well as access to contact names and automation tools.” ↩
-
OpenAI, documentação do ChatGPT, “Computer Use”. Baixada em 11 de outubro de 2026, às 17:48 UTC. Gravação de Tela e Acessibilidade no macOS; permissões do sistema separadas das aprovações do app; “File reads, file edits, and shell commands still follow the sandbox and approval settings for the task.” ↩↩
-
Anthropic, Claude Help Center, “Use quick entry with Claude Desktop on Mac”. Baixado em 11 de outubro de 2026, às 17:49 UTC. Gravação de Tela “Required to capture screenshots and share application windows”; Acessibilidade “Required for quick entry functionality.” ↩
-
Nous Research, documentação do Hermes Agent, “Computer Use”. Baixada em 11 de outubro de 2026, às 17:42 UTC. Acessibilidade e Gravação de Tela vão para “the identity named by hermes computer-use doctor”, o app CuaDriver. ↩
-
Microsoft, documentação do VS Code, “Sandbox Copilot Agent Host sessions”. Baixada em 11 de outubro de 2026, às 17:50 UTC.
chat.agent.sandbox.enableddesligado por padrão, aplicável à implementação de ferramentas padrão do Agent Host, “not the Local chat harness or the custom terminal tool override”; “Sandboxing is not a virtual machine or user-account boundary, and it does not replace endpoint security”; rede de saída não bloqueada por padrão;allowDevToolAccesstrue por padrão. Nenhuma menção ao Acesso Total ao Disco. ↩↩↩↩↩ -
OpenAI, documentação do Codex, “Agent approvals & security”. Baixada em 11 de outubro de 2026, às 17:37 UTC. “By default, the agent runs with network access turned off”, com um sandbox imposto pelo sistema operacional que “limits what it can touch (typically to the current workspace)”; o workspace-write a mantém desligada, a menos que configurado; Seatbelt e
sandbox-execno macOS;--dangerously-bypass-approvals-and-sandbox. ↩↩↩↩↩ -
Nous Research, documentação do Hermes Agent, “Hermes Agent Configuration”. Baixada em 11 de outubro de 2026, às 17:41 UTC. Sete backends de terminal;
local, “The default. Commands run directly on your machine with no isolation”; subprocessos locais mantêm o HOME real; Docker e Singularity “use bind mounts (live host filesystem view)”;docker_volumes“lets you share host directories with the container.” ↩↩↩↩ -
Documentação do OpenClaw, “Sandboxing”. Baixada em 11 de outubro de 2026, às 17:42 UTC. “Sandboxing is off by default”; o gateway fica no host e só a execução de ferramentas se move; “not a perfect security boundary”;
tools.elevatedcomo “an explicit escape hatch.” ↩↩↩↩↩↩ -
OpenAI, código-fonte do Codex no commit 72f999e: seatbelt_base_policy.sbpl e seatbelt.rs. Baixados em 11 de outubro de 2026, às 17:37 UTC. O
(deny default)da política base e “child processes inherit the policy of their parent”;has_full_disk_read_accessproduzindo(allow file-read*)quando não há raízes ilegíveis definidas e, caso contrário, uma política de leitura que as exclui;sandbox-execfixado em/usr/bin. ↩↩↩ -
Nous Research, documentação do Hermes Agent, “Security”. Baixada em 11 de outubro de 2026, às 17:41 UTC. “Deny rules are a shell-command policy, not a complete shell interpreter or an OS capability sandbox”; backends de contêiner como limite de segurança; backends de contêiner recomendados para gateways em produção. ↩↩↩↩
-
Documentação do OpenClaw, “Modes, scope, and backend”. Baixada em 11 de outubro de 2026, às 17:43 UTC.
agents.defaults.sandbox.mode:off(padrão),non-main,all; backendsdocker(padrão),podman,ssh,openshell,crabbox; rede do Docker none por padrão. ↩ -
Documentação do OpenClaw, “Workspace access”. Baixada em 11 de outubro de 2026, às 17:43 UTC.
none(padrão): as ferramentas leem e gravam em um workspace isolado do sandbox, e “the agent workspace is not exposed”;ro;rw. ↩↩ -
Accomplish, “Beltdown: Escaping the Claude Code sandbox”, 11 de setembro de 2026. Baixado em 11 de outubro de 2026, às 18:07 UTC. Com o sandbox ligado e o modo de permissão mais restritivo, um comando de um repositório rodou fora do sandbox sem aviso; corrigido no Claude Code 2.1.247. ↩↩
-
Accomplish, “Beltdown2: Escaping the Cursor CLI sandbox”, 12 de setembro de 2026. Baixado em 11 de outubro de 2026, às 18:06 UTC. O perfil Seatbelt envolve só a ferramenta de shell, enquanto o git do próprio harness roda fora do sandbox; corrigido na Cursor CLI 2026.08.04-aaa8809. ↩↩
-
Accomplish, “Escaping the OpenAI Codex sandbox, twice”, 15 de setembro de 2026. Baixado em 11 de outubro de 2026, às 18:06 UTC. Duas fugas reportadas em 12 de agosto de 2026, “Both were fixed inside of eight days”; em uma delas, o launchd inicia um aplicativo “outside Codex’s process tree.” ↩↩
-
Accomplish, “SharedRoot: Escaping the Claude Cowork sandbox”, 23 de julho de 2026. Baixado em 11 de outubro de 2026, às 18:03 UTC. Uma fuga da VM para uma montagem de leitura e gravação do sistema de arquivos do host, lendo e gravando nele “as the logged-in desktop user”; reportada à Anthropic e fechada como “Informative”. O relatório não testa locais protegidos pelo TCC. ↩
-
Documentação do OpenClaw, “iMessage deployment patterns”. Baixada em 11 de outubro de 2026, às 17:42 UTC. “Use a dedicated Apple ID and macOS user so bot traffic is isolated from your personal Messages profile.” ↩↩
-
Apple, Manual do Usuário do Mac, “Change Users & Groups settings on Mac”. Baixado em 11 de outubro de 2026, às 18:08 UTC. Usuários padrão “can install apps and change their own settings, but can’t add other users or change other users’ settings.” ↩