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, chown y sudo
  • 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 normal
  • d → 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 chown correctamente en servidores


Cómo pensar como pro en permisos


Antes de ejecutar algo, pregúntate:


  1. ¿Quién necesita acceso?
  2. ¿Qué necesita hacer?
  3. ¿Es archivo o carpeta?
  4. ¿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.








Vuelve al post pilar: