Aula 04 — Sistema de Permissões
Módulo: Básico Claude Code
Aula: 4 / 8
🎯 Objetivos desta Aula
- Entender 3 permission modes: Ask, Auto, Explore
- Aprender quando usar cada mode
- Compreender trade-offs de segurança
- Alternar entre modes com /yolo
- Configurar deny rules para máxima segurança
🔐 3 Permission Modes
Claude Code oferece 3 níveis de permissão:
Mode 1: Ask (Default - Seguro)
┌─────────────────────────────┐
│ Ask Mode (Padrão) │
├─────────────────────────────┤
│ Cada ação pede confirmação │
│ │
│ ⚠️ [Ask] Allow this? (y/n) │
└─────────────────────────────┘
Fluxo:
- Claude quer executar ação (ler arquivo, bash, etc)
- Sistema mostra o que vai fazer
- Você aprova (y) ou nega (n)
- Ação executa (ou não)
Exemplo:
Claude: Vou ler o arquivo src/main.ts
[⚠️ Ask] Allow? (y/n)
y
← Arquivo lido
Claude: Agora vou rodar npm test
[⚠️ Ask] Allow? (y/n)
n
← Comando bloqueado
Vantagens:
- ✅ Total controle
- ✅ Máxima segurança
- ✅ Impede acidentes
Desvantagens:
- ❌ Lento (muitas confirmações)
- ❌ Repetitivo para ações comuns
Melhor para: Desenvolvimento inicial, scripts novos, operações perigosas
Mode 2: Auto (Intermediário - Balanceado)
┌─────────────────────────────┐
│ Auto Mode │
├─────────────────────────────┤
│ Ferramentas permitidas │
│ executam sem pedir │
│ │
│ ✅ Lê e executa direto │
└─────────────────────────────┘
Fluxo:
- Claude quer executar ação
- Se estiver na "allow list" → executa direto
- Se estiver na "deny list" → bloqueia
- Se for novo → pede confirmação
Exemplo (com allow: npm, git, read):
Claude: Vou rodar npm test
← Executa direto (permitido)
Claude: Vou fazer git add .
← Executa direto (permitido)
Claude: Vou fazer docker run
← Pede confirmação (não está em allow)
Vantagens:
- ✅ Mais rápido
- ✅ Menos confirmações
- ✅ Automação funciona
Desvantagens:
- ❌ Menos controle
- ❌ Pode executar sem querer
Melhor para: Workflows conhecidos, desenvolvimento rápido
Mode 3: Explore (Sem Limites - Rápido)
┌─────────────────────────────┐
│ Explore Mode │
├─────────────────────────────┤
│ Acesso total │
│ Nenhuma confirmação │
│ │
│ 🚀 Executa tudo direto │
└─────────────────────────────┘
Fluxo:
- Claude quer executar qualquer coisa
- Executa direto, sem pedir nada
- Nenhuma proteção
Exemplo:
Claude: Vou fazer git push
← Executa direto
Claude: Vou deletar node_modules/
← Executa direto
Claude: Vou fazer rm -rf /
← Executa direto (PERIGO!)
Vantagens:
- ✅ Muito rápido
- ✅ Zero confirmações
- ✅ Perfeito para CI/CD automático
Desvantagens:
- ❌ Nenhuma proteção
- ❌ Pode causar danos
- ❌ Nunca use em produção
Melhor para: Automation scripts, CI/CD confiáveis (com deny rules)
🔄 Alternar Entre Modes
Comando /yolo
Use /yolo para ciclar entre modes:
Ask Mode → /yolo → Auto Mode → /yolo → Explore Mode → /yolo → Ask Mode
Exemplo prático:
$ claude
You: Preciso rodar 5 comandos diferentes
Claude: Vou executar. Pronto para Ask mode?
You: /yolo
# Mudou para Auto mode
Claude: Executando... ✅
You: /yolo
# Mudou para Explore mode
Claude: Executando rápido... ✅
You: /yolo
# Voltou para Ask mode
Verificar Mode Atual
claude
# Mostra na saudação:
# Permission Mode: [⚠️ Ask] ou [🟢 Auto] ou [🔍 Explore]
🛡️ Estratégia de Segurança
Recomendação
| Situação | Mode | Motivo |
|---|---|---|
| Novo projeto | Ask | Entender que fazer |
| Workflow repetido | Auto | Eficiência |
| Script confiável | Explore | Velocidade |
| Produção | Ask + Deny | Máxima segurança |
| CI/CD | Explore + Deny | Automação segura |
Deny Rules (Sempre Use)
Independente do mode, sempre defina deny rules:
# CLAUDE.md
## Deny Rules
- Deny: `git push` (use @github-devops)
- Deny: `rm -rf` (too destructive)
- Deny: `sudo` (ask for help)
- Deny: `.env` files (sensitive)
- Deny: `docker run` (use docker-compose)
Deny rules funcionam em qualquer mode — são absolutas.
💻 Exercício 1: Testar Ask Mode
Inicie Claude Code:
claudePeça para fazer algo:
> Leia meu package.jsonVocê verá:
[⚠️ Ask] Allow? (y/n)Responda
ye veja confirmação
Resultado: Cada ação pede permissão
💻 Exercício 2: Alternar para Auto Mode
No Claude Code, execute:
/yoloVeja resposta:
Mudando para Auto Mode...Peça para fazer algo:
> Leia meu package.json > Leia meu README.mdNenhuma confirmação!
Resultado: Auto mode é mais rápido
💻 Exercício 3: Test Deny Rules
Adicione deny rule ao CLAUDE.md:
## Deny Rules - Deny: rm -rfVolte para Ask mode:
/yolo /yoloPeça:
> Delete node_modules usando rm -rfClaude recusa!
Resultado: Deny rules bloqueiam mesmo em Auto/Explore
🔗 Recursos
- Permission Modes — Documentação oficial
- Security Best Practices — Guia de segurança
- Deny Rules Reference — Lista completa
⚡ Checkpoint
Valide que você:
- Entendeu 3 modes: Ask, Auto, Explore
- Testou Ask mode (confirmações)
- Testou Auto mode (menos confirmações)
- Alternoul entre modes com /yolo
- Entendeu trade-offs segurança vs velocidade
- Configurou deny rules pessoais
- Sabe quando usar cada mode
📝 Resumo
- ✅ Ask: Máxima segurança, lentas confirmações
- ✅ Auto: Balanço entre segurança e velocidade
- ✅ Explore: Máxima velocidade, sem proteção
- ✅ /yolo: Alterna entre modes
- ✅ Deny rules: Funcionam em qualquer mode
🚀 Próximos Passos
Na Aula 05 você vai aprender sobre:
.claude/memory/(memória persistente)- MEMORY.md (armazenar conhecimento)
- Entre-session context
- Como usar memory no seu projeto
Aula criada por @dev — Básico Claude Code v1.0
Pratique o que você aprendeu
Implemente os conceitos desta aula em seus próprios projetos. Consulte a página de projetos para desafios práticos e exemplos de código.