Codex: Configuração de Permissões do Codex

Última atualização: 2026-08-31

O Codex tem poderosas capacidades operacionais, mas elas também trazem riscos de segurança. Esta lição aborda as configurações de permissões em detalhe, garantindo que as operações da IA permaneçam sob seu controle.

📋 Pré-requisitos: Conhecimento básico de configuração do Codex (veja Lição 6)

1. O Que Você Vai Aprender


2. Modelo de Permissões

(1) Hierarquia de Permissões de Operação

Nível de Permissão Escopo Comportamento Padrão
Leitura Ler arquivos do projeto Auto-permitido
Escrita Modificar/criar arquivos do projeto Requer confirmação (configurável)
Execução Executar comandos shell Requer confirmação
Rede Instalar pacotes, acessar APIs Requer confirmação
Sistema Acessar diretórios sensíveis Requer confirmação

(2) Níveis de Risco

Nível Exemplos de Operações Proteção
🟢 Baixo Ler arquivos de código-fonte Auto-permitido
🟡 Médio Modificar arquivos de código-fonte Requer confirmação
🟠 Alto Executar comandos shell Requer confirmação + mostrar comando
🔴 Crítico Deletar arquivos, acessar chaves Requer confirmação + aviso extra

3. Modos Sandbox em Detalhe

(1) Read-only

BASH
codex --sandbox readonly
Capacidade Status
Ler arquivos
Modificar arquivos
Executar comandos
Acesso à rede

Uso para: Revisão de código, análise de arquitetura, geração de documentação

(2) Workspace-write

BASH
codex --sandbox workspace-write
Capacidade Status
Ler arquivos
Modificar arquivos do workspace
Executar comandos ⚠️ Requer confirmação
Acesso à rede

Uso para: Desenvolvimento diário (modo padrão)

(3) Full-access

BASH
codex --sandbox full-access
Capacidade Status
Ler arquivos
Modificar qualquer arquivo
Executar comandos
Acesso à rede

Uso para: Cenários de automação totalmente confiáveis (use com cautela)

▶ Exemplo 1: Alice Escolhe Modo por Cenário

PYTHON
def choose_sandbox(task_type):
    modes = {
        "code_review": "readonly",
        "daily_dev": "workspace-write",
        "full_migrate": "full-access",
    }
    return modes.get(task_type, "workspace-write")

# Trabalho de Alice hoje
print(choose_sandbox("code_review"))    # readonly
print(choose_sandbox("daily_dev"))      # workspace-write
print(choose_sandbox("full_migrate"))   # full-access

4. Políticas de Aprovação

(1) Três Políticas

Política Comportamento Risco
ask Perguntar ao usuário cada vez Mais segura
approve Auto-aprovar Risco moderado
deny Auto-negar Mais conservadora

(2) Configuração por Tipo de Operação

TOML
# ~/.codex/config.toml

[approval]
# Aprovação de comandos shell
shell_commands = "ask"

# Aprovação de escrita de arquivos
file_writes = "ask"

# Aprovação de acesso à rede
network_access = "deny"

# Aprovação de caminhos sensíveis
sensitive_paths = "ask"

(3) Allowlist de Comandos

TOML
[approval]
shell_commands = "ask"

# Comandos seguros auto-aprovados
auto_approve_commands = [
    "git status",
    "git diff",
    "npm test",
    "pytest",
    "ls",
    "cat",
]

# Comandos perigosos sempre negados
always_deny_commands = [
    "rm -rf",
    "sudo",
    "chmod 777",
    "curl * | sh",
]

5. Proteção de Caminhos Sensíveis

(1) Caminhos Protegidos por Padrão

TEXT 📖 Somente leitura
~/.ssh/
~/.gnupg/
/etc/
.env
.env.*
secrets/
credentials/
*.key
*.pem

(2) Caminhos Protegidos Personalizados

TOML
[sandbox]
blocked_paths = [
    ".env",
    ".env.production",
    "secrets/",
    "credentials/",
    "config/production.yml",
    "*.key",
    "*.pem",
]

▶ Exemplo 2: Bob Protege a Config de Produção

TOML
# Config do sandbox do projeto de Bob
[sandbox]
mode = "workspace-write"
allowed_paths = ["src/", "tests/", "docs/"]
blocked_paths = [
    ".env.production",
    "config/prod/",
    "secrets/",
    "deploy/",
]

6. Auditoria de Permissões

(1) Ver Logs de Operação

BASH
# Ver todas as operações na sessão atual
codex --audit-log

# Exemplo de saída
[10:30:15] READ   src/auth.ts          (auto-approved)
[10:30:18] WRITE  src/auth.ts          (approved by user)
[10:30:22] SHELL  npm test             (approved by user)
[10:30:25] WRITE  test/auth.test.ts    (approved by user)

(2) Configuração de Auditoria

TOML
[audit]
log_all_operations = true
log_file = "~/.codex/audit.log"
include_shell_output = true

7. Melhores Práticas

Prática Descrição
Política ask por padrão Não troque casualmente para approve
Limitar escopo do sandbox Apenas abrir caminhos necessários
Proteger arquivos-chave Adicionar .env e chaves ao blocked_paths
Revisar logs regularmente Verificar o que o Codex executou
Git como rede de segurança Commite antes de deixar o Codex modificar — fácil reverter
Usar deny em CI Rejeitar todas as operações de escrita em integração contínua

❓ Perguntas Frequentes

P: Quais são os riscos do modo Full-access? R: O Codex pode executar qualquer comando, modificar qualquer arquivo e acessar a rede. Se o Codex julgar mal, pode deletar arquivos importantes ou executar comandos perigosos. Use apenas em cenários totalmente confiáveis.

P: Posso trocar políticas de aprovação em tempo de execução? R: Sim. Durante uma sessão do Codex, digite /mode para trocar de modo, ou diga ao Codex "from now on, all operations need my confirmation."

P: Como impedir o Codex de acessar arquivos .env? R: Adicione .env e .env.* ao blocked_paths na sua config, e use o modo workspace-write.

P: O Codex vai secretamente executar comandos? R: Não no modo ask — todas as operações sensíveis requerem confirmação primeiro. Mas no modo approve ou Full Auto, o Codex auto-executará.

P: Como sei o que o Codex fez? R: Habilite logs de auditoria, ou use git diff para ver mudanças de código. O Codex também exibe todas as operações em tempo real na janela de conversa.


📖 Resumo


📝 Exercícios

  1. Básico (⭐): Configure o modo sandbox workspace-write e proteja arquivos .env.
  2. Intermediário (⭐⭐): Configure uma allowlist de comandos — auto-aprovar comandos de teste, negar perigosos.
  3. Avançado (⭐⭐⭐): Desenhe um esquema de permissões empresarial — diferentes funções com diferentes permissões — e escreva um documento de matriz de permissões.
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%