Comando chmod
chmod
El comando chmod permite modificar los permisos de acceso de archivos y directorios en sistemas Linux y Unix.
Permite indicar quién puede leer, escribir o ejecutar un archivo mediante una representación numérica u otra basada en letras.
| Categoría | Administración de sistemas y seguridad |
|---|---|
| Disponible en | Sistemas operativos tipo Unix (Linux, macOS, BSD) |
| Equivalente en Windows | Propiedades de archivos / Pestaña Seguridad / Comando icacls o attrib |
| Sustituye a | No sustituye a ningún comando anterior; es el estándar absoluto en POSIX para la gestión de permisos de lectura, escritura y ejecución. |
| ¿Requiere permisos de administrador? | Depende: un usuario normal puede modificar los permisos de sus propios archivos, pero requiere privilegios de superusuario (sudo) para cambiar los permisos de archivos de propiedad ajena o del sistema. |
¿Qué significa su nombre?
El nombre chmod proviene del inglés change mode, que significa cambiar el modo.
En Linux, el "modo" de un archivo hace referencia principalmente a sus permisos de acceso.
¿Para qué sirve?
Permite controlar qué usuarios pueden realizar determinadas acciones sobre un archivo o directorio:
- Leer el contenido del archivo.
- Modificar o escribir información.
- Ejecutar un programa o script.
Es un comando fundamental en la administración de sistemas Linux, especialmente para configurar permisos de scripts, páginas web, servidores y archivos compartidos.
Sintaxis
chmod [opciones] permisos archivo
Permisos básicos
| Permiso | Letra | Valor numérico | Descripción |
|---|---|---|---|
| Lectura | r | 4 | Permite consultar el contenido del archivo. |
| Escritura | w | 2 | Permite modificar el contenido. |
| Ejecución | x | 1 | Permite ejecutar el archivo. |
Usuarios a los que se aplican los permisos
| Identificador | Significado |
|---|---|
| u | Usuario propietario del archivo. |
| g | Grupo propietario. |
| o | Otros usuarios. |
| a | Todos los usuarios. |
Representación numérica
Los permisos también pueden indicarse mediante números. Cada permiso tiene un valor:
r = 4 w = 2 x = 1
Los valores se suman para cada grupo de usuarios:
7 = lectura + escritura + ejecución 6 = lectura + escritura 5 = lectura + ejecución 4 = lectura 0 = ningún permiso
Opciones más utilizadas
| Opción | Descripción |
|---|---|
-R |
Aplica los cambios de forma recursiva a todos los archivos y directorios. |
-v |
Muestra información sobre los cambios realizados. |
Consultas más habituales
Dar permiso de ejecución a un script
chmod +x script.sh
Asignar permisos completos al propietario y solo lectura al resto
chmod 744 archivo.txt
Permitir lectura y escritura al propietario y lectura al grupo
chmod 640 documento.txt
Modificar permisos de un directorio completo
chmod -R 755 carpeta/
Ejemplo de salida
$ ls -l script.sh -rw-r--r-- 1 usuario usuarios 1200 jul 16 10:30 script.sh
Después de ejecutar:
chmod +x script.sh
Los permisos cambian:
-rwxr-xr-x 1 usuario usuarios 1200 jul 16 10:30 script.sh
¿Cómo interpretar los permisos?
- El primer carácter indica el tipo de elemento (
-archivo,ddirectorio). - Los tres siguientes caracteres corresponden al propietario.
- Los tres siguientes corresponden al grupo.
- Los tres últimos corresponden al resto de usuarios.
Ejemplo:
-rwxr-xr--
- Propietario: lectura, escritura y ejecución.
- Grupo: lectura y ejecución.
- Otros usuarios: solo lectura.
Errores habituales
- Asignar permisos demasiado amplios como
777sin necesidad. - Modificar permisos de archivos del sistema sin conocer sus consecuencias.
- Olvidar que los permisos de un directorio afectan también al acceso a su contenido.
- Confundir permisos del archivo con permisos del usuario que ejecuta el comando.
Conceptos relacionados
- Usuario propietario
- Grupo Linux
ls -l- Permisos Unix
chownchgrp
Comandos relacionados
lschownchgrpumasksudo
Curiosidades
El sistema de permisos de Linux está basado en el modelo Unix original.
La representación numérica de permisos, como 755 o 644, se ha convertido en una forma habitual de configurar servidores web, scripts y aplicaciones.
Prácticas propuestas
- Crea un archivo llamado
prueba.txty consulta sus permisos conls -l. - Modifica sus permisos para que solo el propietario pueda escribir.
- Crea un script sencillo y hazlo ejecutable utilizando
chmod +x. - Prueba la diferencia entre los permisos
644,755y777. - Utiliza
chmod -Rsobre un directorio de pruebas y observa el resultado.
Consejo: Antes de modificar permisos en un sistema real, comprueba siempre qué usuarios necesitan acceso y aplica únicamente los permisos necesarios.