Si estás empezando con Linux, seguro que te ha pasado: intentas ejecutar un script y aparece Permission denied. Buscas en un foro y alguien te dice «haz un chmod 777 y listo». Dudas, te da vergüenza preguntar qué significa eso, y acabas copiando comandos sin entender nada.
Es normal tener respeto a los permisos de archivos en Linux: un comando mal puesto puede dejar un sistema inservible. La buena noticia es que el sistema de permisos es pequeño, lógico y fácil de aprender. En este artículo vas a entenderlo de principio a fin y a practicar sin riesgo.

Si estás empezando desde cero y quieres probar un entorno de Linux real:
👉 Suscríbete al curso de bienvenida de AprendoLinux y aprende Linux paso a paso, sin conocimientos previos y sin miedo a la terminal.
Por qué Linux tiene permisos
Linux es un sistema multiusuario. En un mismo servidor pueden convivir decenas de personas y servicios (el servidor web, la base de datos, tu usuario…). Los permisos son la forma de decidir quién puede hacer qué con cada archivo: leerlo, modificarlo o ejecutarlo.
Sin ellos, cualquier usuario podría borrar la configuración del sistema o leer las contraseñas de otro. Por eso, entenderlos no es opcional si quieres dedicarte al sysadmin o al DevOps.
Cómo leer los permisos: el comando ls -l
Todo empieza con este comando:
ls -l
Verás algo así:
-rwxr-xr-- 1 ana devs 4096 oct 1 10:30 script.sh
Vamos por partes:
| Fragmento | Significado |
|---|---|
- | Tipo: - archivo, d directorio, l enlace |
rwx | Permisos del propietario (ana) |
r-x | Permisos del grupo (devs) |
r-- | Permisos del resto de usuarios |
Son tres bloques de tres letras, y cada letra significa una cosa:
- r (read): leer
- w (write): escribir o modificar
- x (execute): ejecutar
Si en un hueco hay un guion (-), ese permiso no está concedido. Así, r-x significa «puede leer y ejecutar, pero no modificar».
Con directorios los permisos cambian un poco
- r: puedes listar su contenido
- w: puedes crear y borrar archivos dentro
- x: puedes entrar en él (
cd) y acceder a lo que contiene
Por eso los directorios casi siempre necesitan el permiso x.
Permisos en formato numérico (755, 644…)
Seguro que has visto números como 755 o 644. No son magia: cada permiso suma un valor.
- r = 4
- w = 2
- x = 1
Se suman por bloque (propietario, grupo, otros):
| Número | Permisos | Significado |
|---|---|---|
| 7 | rwx | todo |
| 6 | rw- | leer y escribir |
| 5 | r-x | leer y ejecutar |
| 4 | r– | solo leer |
| 0 | — | nada |
Por tanto, 755 es rwxr-xr-x: el propietario lo hace todo y el resto solo lee y ejecuta. Los valores más comunes son:
644: archivos normales (el propietario edita, los demás sólo leen)755: scripts y directorios600: archivos privados, como una clave SSH700: directorios privados
chmod: cambiar permisos en Linux
El comando chmod (change mode) modifica los permisos. Tiene dos formas de usarse que te enseño a continuación.
Modo numérico:
chmod 755 script.sh
Modo simbólico, más legible cuando solo quieres tocar una cosa:
chmod u+x script.sh # añade ejecución al propietario (user)
chmod g-w fichero.txt # quita escritura al grupo
chmod o-rwx secreto.txt # quita todo al resto (others)
Las letras son u (usuario/propietario), g (grupo), o (otros) y a (todos). Y los operadores: + añade, - quita, = fija exactamente.
El caso más típico de un principiante, hacer que un script se vuelva ejecutable:
chmod +x mi_script.sh
./mi_script.sh
Este comando añade el permiso de ejecución (x) al archivo mi_script.sh. No toca el contenido del archivo ni los demás permisos, solo activa el bit de ejecución.
Un archivo recién creado normalmente nace así:
$ ls -l mi_script.sh
-rw-r--r-- 1 ana ana 42 oct 1 10:30 mi_script.sh
Es decir, 644: se puede leer y escribir, pero no ejecutar. Después del chmod +x hace que todos puedan ejecutarlo:
$ chmod +x mi_script.sh
$ ls -l mi_script.sh
-rwxr-xr-x 1 ana ana 42 oct 1 10:30 mi_script.sh
chown y chgrp: cambiar propietario y grupo
chown (change owner) cambia a quién pertenece un archivo y chgrp (change group), cambia solo el grupo. Se pueden usar así:
sudo chown ana fichero.txt # cambia el propietario
sudo chown ana:devs fichero.txt # propietario y grupo a la vez
sudo chgrp devs fichero.txt # solo el grupo
Normalmente necesitas sudo, porque solo el administrador puede regalar archivos a otros usuarios.
Los errores que dan pánico (y cómo evitarlos)
1. Usar chmod 777 para «arreglarlo todo». Da permisos totales a cualquiera. Funciona, pero abre una puerta de seguridad enorme. Casi siempre hay un permiso más ajustado que resuelve el problema.
2. Usar -R (recursivo) sin comprobar la ruta. Un chmod -R o chown -R aplicado a un directorio equivocado, como / o /etc, puede romper el sistema. Antes de lanzarlo, comprueba dónde estás con pwd y revisa la ruta dos veces.
3. Arreglar Permission denied . En lugar de cambiar permisos al azar, diagnostica primero:
jaime@aprendolinux:~$ ls -l prueba # ¿de quién es y qué permisos tiene?
-rw-rw-r-- 1 jaime jaime 25 sep 21 18:00 prueba
jaime@aprendolinux:~$ id # ¿quién soy yo y a qué grupos pertenezco?
uid=1000(jaime) gid=1000(jaime) grupos=1000(jaime),4(adm),27(sudo),46(plugdev),116(lpadmin),126(sambashare)
jaime@aprendolinux:~$ namei -l /home/jaime/prueba # ¿bloquea algún directorio del camino?
f: /home/jaime/prueba
drwxr-xr-x root root /
drwxr-xr-x root root home
drwxr-xr-x jaime jaime jaime
-rw-rw-r-- jaime jaime prueba
A veces el problema no es el archivo, sino un directorio intermedio sin permiso x.
Cómo practicar sin miedo el cambio de permisos en Linux
La mejor manera de perder el miedo es experimentar en un entorno de pruebas:
mkdir ~/laboratorio && cd ~/laboratorio # creas un directorio y entras dentro
touch prueba.txt # creas un fichero de prueba
ls -l prueba.txt # compruebas los permisos del fichero
chmod 600 prueba.txt # cambias los permisos del fichero
ls -l prueba.txt # vuelves a comprobar los permisos del fichero
chmod -c 644 prueba.txt # -c muestra qué ha cambiado
Algunos hábitos que te protegen:
- Practica siempre en tu directorio personal, nunca en
/ni en carpetas del sistema. - Ejecuta
ls -lantes y después de cada cambio. - Usa
stat -c "%a %U:%G %n" ficheropara ver el permiso en formato numérico. - Si puedes, practica en una máquina virtual o en un contenedor, donde equivocarte no cuesta nada.
Bonus: permisos especiales y umask
Cuando avances, te encontrarás con tres permisos especiales:
- setuid: el archivo se ejecuta con los permisos de su propietario (como
passwd). - setgid: los archivos nuevos heredan el grupo del directorio.
- sticky bit: en directorios como
/tmp, cada usuario solo puede borrar sus propios archivos.
Y el umask, que define los permisos por defecto de lo que creas. Con el valor habitual 022, los archivos nuevos nacen con 644 y los directorios con 755.
Chuleta rápida
ls -l # ver permisos
chmod 644 archivo # archivo normal
chmod 755 script.sh # script o directorio
chmod 600 clave_privada # archivo privado
chmod +x script.sh # hacer ejecutable
sudo chown usuario:grupo f # cambiar propietario y grupo
Da el siguiente paso
Entender los permisos es una de las habilidades que separan a quien «toca Linux a ciegas» de quien lo administra con seguridad. Y es solo el principio: usuarios, grupos, procesos, servicios y terminal forman un conjunto que se aprende mucho mejor con una guía ordenada que a base de foros.
Si estás empezando desde cero y quieres dejar de copiar comandos sin entenderlos:
👉 Suscríbete al curso de bienvenida de AprendoLinux y aprende Linux paso a paso, sin conocimientos previos y sin miedo a la terminal.
