Comando chmod en Linux


Aprende a usar el comando chmod en Linux con ejemplos prácticos paso a paso. Permisos, notación simbólica, octal y casos reales

oscar Escrito por oscar 08 January 2026 49 0

El comando chmod (abreviatura de change mode) es una de las herramientas más fundamentales en sistemas operativos tipo Unix y Linux. Se utiliza para gestionar quién puede ver, modificar o ejecutar archivos y directorios.

¿Qué es el comando chmod de linux?

chmod es el comando utilizado para cambiar los permisos de acceso de archivos y directorios. En Linux, cada elemento del sistema tiene asignados permisos específicos para tres tipos de usuarios: el propietario, el grupo y otros.

Identificar el archivo y directorio

Si ejecutamos en la terminal ls -l /etc tendremos como ejemplo la siguiente salida 

La primera letra indica el tipo de archivo:

┌──── es un archivo
│
-rw-r--r--  1 root root    3718 Sep  8 13:20 bash.bashrc
-rw-r--r--  1 root root     367 Aug  5 08:30 bindresvport.blacklist
drwxr-xr-x  2 root root    4096 Sep 25 16:45 binfmt.d
-rw-r--r--  1 root root     111 Jan 15 15:49 boto.cfg
drwxr-xr-x  3 root root    4096 Jan 14 11:02 ca-certificates
-rw-r--r--  1 root root    6422 Jan 14 11:02 ca-certificates.conf
drwxr-xr-x  4 root root    4096 Jan 15 15:49 chrony
│
└──── es un directorio

(Existen otros tipos, pero estos dos son los fundamentales por ahora).

Linux diferencia directorios y archivos porque cumplen roles distintos en el sistema, no solo por ejecución.

Tipos de permisos en archivos

Existen tres acciones básicas que se pueden realizar sobre un archivo:

Los tres niveles de usuario

Salida tipica

-rw-r--r-- 1 oscar oscar 0 script.sh

Su interpretación 

- rw- r-- r--
  |   |   |
  |   |   └── otros: solo lectura
  |   └────── grupo: solo lectura
  └────────── usuario: lectura y escritura

Nota: Permiso x en un archivo significa que se puede ejecutar

Tipos de permisos en directorios

En directorios:

Nota: Permiso x en un directorio significa que puede entrar y acceder a su contenido

Formas de usar

Existen dos métodos principales para asignar permisos: el modo simbólico y el modo octal (numérico).

Modo Octal (Números)

Es el más rápido si conoces los valores. Cada permiso tiene un número asignado:

Para dar permisos, simplemente sumas

Valor Permiso Descripción
7 rwx Lectura, escritura y ejecución (4+2+1)
6 rw- Lectura y escritura (4+2)
5 r-x Lectura y ejecución (4+1)
4 r-- Solo lectura (4)
0 --- Sin permisos

Ahora, para usarlo se debe hacer de la siguiente forma:

chmod 644 archivo.txt
      |||
      ||└── otros
      |└─── grupo
      └──── usuario

Modo Simbólico (Letras)

Usa letras y operadores (+, -, =) para añadir o quitar permisos.

Ejemplo practico

Crear directorio de prueba

Vamos a crear un directorio y archivo de pruebas:

mkdir chmod_demo
cd chmod_demo
touch script.sh

Verificamos los permisos iniciales

ls -l

Respuesta

-rw-r--r-- 1 oscardevops oscardevops 0 Jan 15 18:45 script.sh

Donde:

Usando chmod con notación simbólica

1️⃣ Vamos a darle permisos al al archivo para que pueda ejecutarse

chmod u+x script.sh

Verificamos

ls -l

Respuesta

-rwxrw-r-- 1 oscardevops oscardevops 0 Jan 15 18:52 script.sh

Podemos ver que en el nivel de usuario aparece como -rwx, significa que el archivo ya tiene los permisos y el usuario puede ejecutarlo.

2️⃣ Como prueba, vamos a quitar los permisos de lectura del nivel de otros

chmod o-r script.sh

Resultado usando ls -l

-rwxrw---- 1 oscardevops oscardevops 0 Jan 15 18:52 script.sh

3️⃣ Por ultimo para finalizar con las pruebas de notación simbólica, daremos al nivel de grupo el permiso de ejecución

chmod g+rx script.sh

Resultado usando ls -l

-rwxrwx--- 1 oscardevops oscardevops 0 Jan 15 18:52 script.sh

Usando chmod con notación numérica (octal)

1️⃣ Vamos a dar los siguientes permisos

Ejecutamos

chmod 755 script.sh

Resultado usando ls -l

-rwxr-xr-x 1 oscardevops oscardevops 0 Jan 15 18:52 script.sh

2️⃣ Ahora, ejecutamos el siguiente comando para quitar permisos

chmod 600 script.sh

Resultado usando ls -l

-rw------- 1 oscardevops oscardevops 0 Jan 15 18:52 script.sh

Solo el usuario puede leer y escribir.

Caso práctico real: script ejecutable

1️⃣ Añadimos contenido al archivo script.sh para realizar la siguiente practica:

echo -e '#!/bin/bash\necho "Hola mundo"' > script.sh

Vemos los permisos que tiene el archivo con ls -al

-rw------- 1 oscardevops oscardevops 30 Jan 16 13:38 script.sh

2️⃣ Ahora, procedemos a ejecutar el archivo.

./script.sh

Retorna el siguiente mensaje

-bash: ./script.sh: Permission denied

3️⃣ Añadimos el permiso para poder ejecutar el script

chmod +x script.sh

Volvemos a ver los permisos que tiene el archivo

-rwx--x--x 1 oscardevops oscardevops 30 Jan 16 13:38 script.sh

Ejecutamos de nuevo el archivo con ./script.sh

Como respuesta podemos ver Hola mundo

 

Resumen mental rápido

Preguntas frecuentes

¿Qué significa chmod 755?

chmod 755 asigna lectura, escritura y ejecución al usuario, y lectura y ejecución al grupo y a otros. Es común para scripts y programas ejecutables en Linux.

¿Cuál es la diferencia entre chmod simbólico y numérico?

El simbólico es más descriptivo; el numérico es más rápido y preciso.

¿Por qué no puedo ejecutar un script en Linux?

Generalmente porque el archivo no tiene permiso de ejecución (x) o no incluye un shebang válido. Se soluciona con:

chmod +x script.sh

Comentario

Debe aceptar antes de enviar