8Fase 8 · Claude desde cero
Permisos y seguridad: qué puede hacer Claude sin preguntarte
Modos de permisos, reglas en settings.json y cómo proteger secretos
10/13
Qué vas a conseguir: decidir qué puede hacer Claude sin preguntarte, qué no puede hacer nunca y cómo proteger tus secretos.
Tiempo: 20 minutos. Resultado: un .claude/settings.json con reglas de permisos (soluciones/fase-08/).
Tiempo: 20 minutos. Resultado: un .claude/settings.json con reglas de permisos (soluciones/fase-08/).
Paso 1 · Conoce los modos de permisos
Con Shift + Tab recorres los modos de la sesión. La línea de abajo siempre dice en cuál estás:
Manual
Pregunta antes de editar ficheros o ejecutar comandos. El mejor para empezar.
Accept edits
Edita ficheros sin preguntar; los comandos siguen pidiendo permiso.
Plan
Solo investiga y propone. No cambia nada.
Auto
Un clasificador revisa cada acción en tu lugar y solo te pregunta lo arriesgado. Para cuando ya tienes reglas claras.
Las lecturas no piden permiso: Claude puede leer los ficheros de la carpeta del proyecto libremente. Las ediciones, los comandos y el acceso a internet, sí (en modo manual). Por eso las reglas de bloqueo son importantes para los ficheros sensibles.
Paso 2 · Crea un secreto de prueba
Para practicar, crea en mis-tareas un fichero .env con un valor inventado (nunca uses uno real para probar):
TOKEN_DEMO=esto-no-es-un-secreto-real-123
Paso 3 · Escribe las reglas del proyecto
Crea la carpeta .claude y dentro el fichero settings.json:
{
"permissions": {
"allow": [
"Bash(git status)",
"Bash(git diff *)"
],
"deny": [
"Read(./.env)",
"Bash(git push *)"
]
}
}
- allow: se ejecuta sin preguntar. El * es un comodín: git diff * cubre cualquier git diff.
- deny: se bloquea siempre, en cualquier modo. Aquí, leer el .env y publicar con git push.
- También existe ask: pregunta siempre, aunque el modo no lo haría.
Añade también un .gitignore para que el secreto y tus permisos personales no se suban al repositorio:
.env
.claude/settings.local.json
Paso 4 · Revisa las reglas con /permissions
Sal (/exit), vuelve a entrar con claude y escribe /permissions. Muévete por las pestañas con las flechas:
Paso 5 · Comprueba que funciona
Lee el fichero .env y dime qué contiene.
Dónde viven los ajustes
.claude/settings.json
Del proyecto. Se sube al repositorio: reglas para todo el equipo.
.claude/settings.local.json
Tuyo en este proyecto. Ahí se guardan los «Yes, and don't ask again».
~/.claude/settings.json
Tuyo, para todos tus proyectos.
Buenas prácticas: bloquea siempre los ficheros con secretos (.env, claves, certificados) y las acciones que publican o destruyen (git push, borrados masivos). Permite solo lo que repites a menudo y es inofensivo. Y nunca pegues secretos en la conversación.
✓ Gate 8 — Permisos definidos
✓
Sé cambiar de modo con Shift + Tab y qué hace cada uno✓
Tengo un .claude/settings.json con allow y deny✓
El .env está bloqueado y en .gitignore✓
He revisado las reglas con /permissions✓
He comprobado que Claude no puede leer el secretoFuentes oficiales: Configure permissions · Permission modes · Settings. Revisado el 15 de octubre de 2026 con Claude Code 2.1.300.