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:

  • -R aplica los permisos de forma recursiva
  • -v muestra 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 = 4
  • w = 2
  • x = 1

Ejemplo:

rwxr-xr-- = 754

Aplicar permisos numéricos:

chmod 754 script.sh

Permisos habituales:

  • 644 → archivos de texto
  • 755 → scripts y directorios
  • 600 → archivos sensibles (claves, contraseñas)

Uso recursivo (⚠️ cuidado)

chmod -R 755 /var/www/html

Errores comunes

  • Usar chmod -R 777 sin 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 chmod con chown

Buenas prácticas / Seguridad

  • Aplica siempre el principio de mínimo privilegio
  • Evita permisos 777 salvo casos muy controlados y temporales
  • Usa 644 para archivos y 755 para 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.

Siguiente Postt Post Anterior