Permisos en Linux explicados fácil: guía completa de chmod, chown y sudo
Introducción
Si llevas poco tiempo usando Linux, hay algo que tarde o temprano te va a frenar:
👉 los permisos
Errores como:
- Permission denied
- Operation not permitted
- archivos que no se pueden ejecutar
- carpetas a las que no puedes entrar
- servicios que no arrancan por permisos
- problemas al desplegar una web
…son extremadamente comunes.
Y la mayoría de las veces, el problema no es complicado. El problema es que no entiendes todavía cómo funciona el sistema de permisos.
Linux está diseñado con una idea muy clara:
cada archivo y cada acción tiene reglas de acceso bien definidas.
Eso es lo que hace que sea:
- seguro
- robusto
- controlable
- ideal para servidores
Pero también hace que, si no lo entiendes, te bloquees constantemente.
En este post vamos a explicarlo desde cero pero bien, cubriendo:
- qué son los permisos en Linux
- cómo se representan
- cómo leerlos correctamente
- qué hacen
chmod,chownysudo - cuándo usar cada uno
- ejemplos reales (web, scripts, VPS, proyectos)
- errores típicos (y cómo evitarlos)
La idea es que, al terminar, dejes de “probar comandos al azar” y empieces a entender lo que estás haciendo.
Qué son los permisos en Linux
En Linux, todo es un archivo:
- archivos normales
- carpetas
- scripts
- dispositivos
- sockets
Y cada uno tiene permisos que determinan:
👉 quién puede hacer qué sobre ese recurso
Los 3 tipos de permisos
Cada archivo o carpeta tiene 3 tipos básicos de permisos:
- r (read) → lectura
- w (write) → escritura
- x (execute) → ejecución
Qué significa cada uno
Lectura (r)
- ver contenido de archivos
- listar contenido de carpetas
Escritura (w)
- modificar archivos
- crear o eliminar dentro de una carpeta
Ejecución (x)
- ejecutar scripts o binarios
- entrar a una carpeta (muy importante)
Los 3 niveles de usuarios
Los permisos no son iguales para todos.
Linux divide el acceso en:
- usuario (owner)
- grupo (group)
- otros (others)
Es decir:
👉 quién creó el archivo
👉 quién pertenece a su grupo
👉 el resto del mundo
Cómo ver permisos en Linux
El comando clave:
ls -l
Ejemplo:
-rwxr-xr-- 1 irak dev 1200 archivo.sh
Cómo interpretar esto correctamente
Vamos por partes:
-rwxr-xr--
Se divide así:
ParteSignificado-tipo de archivorwxpermisos del usuarior-xpermisos del grupor--permisos de otros
Tipo de archivo
-→ archivo normald→ directorio
Ejemplo:
drwxr-xr-x carpeta/
Permisos por grupo
Usuario (owner)
rwx → puede leer, escribir y ejecutar
Grupo
r-x → puede leer y ejecutar, pero no escribir
Otros
r-- → solo puede leer
Cómo pensar los permisos correctamente
Una forma simple:
👉 quién eres respecto a ese archivo
- si eres el owner → se aplica la primera columna
- si estás en el grupo → segunda
- si no → tercera
Qué es chmod y para qué sirve
chmod sirve para:
👉 cambiar permisos
Dos formas de usar chmod
1. Modo simbólico (más intuitivo)
Ejemplo:
chmod +x script.sh
👉 añade ejecución
Más ejemplos:
chmod u+x archivo.sh # usuario chmod g-w archivo.txt # grupo chmod o-r archivo.txt # otros
2. Modo numérico (más potente)
Cada permiso tiene valor:
PermisoValorr4w2x1
Se suman.
Ejemplos:
755
chmod 755 script.sh
👉 rwx r-x r-x
644
chmod 644 archivo.txt
👉 rw- r-- r--
Ejemplos reales de chmod
Hacer ejecutable un script
chmod +x deploy.sh
Archivos normales
chmod 644 index.php
👉 solo tú puedes escribir
Carpetas de proyecto
chmod 755 carpeta/
👉 otros pueden entrar pero no modificar
Qué es chown y para qué sirve
chown sirve para:
👉 cambiar propietario o grupo
Ejemplo:
chown irak archivo.txt
Cambiar usuario y grupo
chown irak:dev archivo.txt
Ejemplo real con servidor web
En muchos servidores:
chown -R www-data:www-data /var/www/html
👉 Apache o Nginx necesita acceso
Diferencia clave: chmod vs chown
Comando Qué cambia chmod permisos chown propietario
Qué es sudo y para qué sirve
sudo permite:
👉 ejecutar comandos como superusuario (root)
Ejemplo:
sudo apt update
Por qué sudo es importante
Porque Linux protege:
- archivos del sistema
- configuraciones críticas
- servicios
Sin sudo, no puedes tocar muchas cosas importantes.
Cuándo usar sudo
- instalar paquetes
- modificar
/etc - cambiar permisos sensibles
- gestionar servicios
- trabajar con otros usuarios
Cuándo NO abusar de sudo
Error común:
👉 usar sudo para todo
Problemas:
- rompes permisos sin darte cuenta
- pierdes control
- puedes dañar el sistema
Casos reales que te vas a encontrar
Caso 1: script no ejecuta
Error:
permission denied
Solución:
chmod +x script.sh
Caso 2: web no carga
Puede ser:
- permisos incorrectos
- propietario incorrecto
Solución típica:
chown -R www-data:www-data /var/www/html chmod -R 755 /var/www/html
Caso 3: no puedes editar archivo
Error:
permission denied
Solución:
sudo nano archivo.txt
Caso 4: cron no ejecuta script
Causa:
- sin permisos de ejecución
Solución:
chmod +x script.sh
Errores comunes (muy importantes)
1. Usar chmod 777
chmod 777 archivo
👉 ERROR típico
Esto da:
- lectura
- escritura
- ejecución
- a todo el mundo
⚠️ muy inseguro
2. Usar sudo sin entender
sudo chmod -R 777 /
👉 desastre potencial
3. No entender ejecución en carpetas
Sin x en carpeta:
👉 no puedes entrar aunque tengas r
4. Cambiar propietario sin saber
chown root archivo
👉 luego no puedes modificarlo
Buenas prácticas
- usa 644 para archivos normales
- usa 755 para carpetas
- evita 777
- usa sudo solo cuando haga falta
- entiende antes de ejecutar
- revisa con
ls -l - usa
chowncorrectamente en servidores
Cómo pensar como pro en permisos
Antes de ejecutar algo, pregúntate:
- ¿Quién necesita acceso?
- ¿Qué necesita hacer?
- ¿Es archivo o carpeta?
- ¿Es entorno local o servidor?
Resumen mental rápido
- chmod → permisos
- chown → propietario
- sudo → privilegios
Conclusión:
Los permisos en Linux no son complicados.
Pero sí son críticos.
Cuando los entiendes:
- dejas de romper cosas
- dejas de depender de sudo
- solucionas errores rápido
- trabajas como alguien que sabe lo que hace
Y eso, especialmente en servidores, vale oro.