Uso de chmod para cambiar permisos en Linux
chmod es un comando fundamental en Linux que permite cambiar los permisos de archivos y directorios. Mediante este comando se controla qué usuarios pueden leer, escribir o ejecutar un recurso, siendo un pilar básico de la seguridad y de la correcta administración del sistema.
Comprender chmod es imprescindible para cualquier usuario que quiera trabajar de forma profesional con Linux, especialmente en servidores y entornos multiusuario.
Explicación técnica clara
En Linux, cada archivo y directorio tiene permisos asociados a tres tipos de usuarios:
- Propietario (user)
- Grupo (group)
- Otros (others)
Y a tres tipos de permisos:
- r (read): permite leer el contenido del archivo
- w (write): permite modificar el archivo
- x (execute): permite ejecutar el archivo o acceder al directorio
Los permisos siempre se representan en este orden:
usuario / grupo / otros
Ejemplo:
rwxr-xr--
Sintaxis
chmod [opciones] permisos archivo_o_directorio
Opciones más habituales:
-Raplica los permisos de forma recursiva-vmuestra los cambios realizados
Ejemplos prácticos reales
Ver permisos actuales
ls -l archivo.txt
Salida de ejemplo:
-rw-r--r-- 1 usuario grupo 1234 archivo.txt
Modo simbólico
Dar permiso de ejecución al propietario:
chmod u+x script.sh
Quitar permiso de escritura a otros:
chmod o-w archivo.txt
Dar lectura y escritura al grupo:
chmod g+rw documento.txt
Dar permisos de lectura a todos:
chmod a+r archivo.txt
Modo numérico (octal)
Valores de permisos:
r = 4w = 2x = 1
Ejemplo:
rwxr-xr-- = 754
Aplicar permisos numéricos:
chmod 754 script.sh
Permisos habituales:
644→ archivos de texto755→ scripts y directorios600→ archivos sensibles (claves, contraseñas)
Uso recursivo (⚠️ cuidado)
chmod -R 755 /var/www/html
Errores comunes
- Usar
chmod -R 777sin entender sus consecuencias - Dar permisos de ejecución a archivos que no lo necesitan
- Cambiar permisos en directorios críticos del sistema (
/etc,/bin) - Confundir
chmodconchown
Buenas prácticas / Seguridad
- Aplica siempre el principio de mínimo privilegio
- Evita permisos
777salvo casos muy controlados y temporales - Usa
644para archivos y755para directorios - Revisa permisos tras copiar archivos desde Windows
- Ajusta permisos correctamente en servidores web (
www-data)
Preguntas frecuentes (FAQ)
¿Qué significa chmod 777?
Otorga lectura, escritura y ejecución a todos los usuarios. Es inseguro y no recomendado.
¿Por qué un script no se ejecuta?
Porque no tiene permiso de ejecución. Solución:
chmod +x script.sh
¿chmod cambia el propietario de un archivo?
No. Para cambiar propietario o grupo se utiliza chown.
¿Los directorios necesitan permiso de ejecución?
Sí. Sin el permiso x no se puede acceder a su contenido.