🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Cómo cambiar los permisos de archivos y carpetas en Linux (chmod)

Actualizado el 20 de septiembre de 2025

¿Por qué es importante entender los permisos en Linux?

Si alguna vez has intentado subir un archivo a tu servidor y te ha aparecido un error, o has visto que tu página web muestra un mensaje de "permiso denegado", entonces ya has tenido una cita con los permisos de Linux. No te preocupes, no es nada mágico ni complicado. Es simplemente un sistema de seguridad que decide quién puede leer, escribir o ejecutar cada archivo y carpeta.

Piensa en ello como las llaves de tu casa. No le das la misma llave al cartero que a tu pareja. El cartero solo puede dejar cartas en el buzón (lectura), tu pareja puede entrar y reorganizar los muebles (escritura), y tú puedes encender la caldera (ejecución). En Linux, cada archivo tiene un "dueño", un "grupo" y "otros", y a cada uno se le puede dar un nivel de acceso diferente.

Este conocimiento es esencial para cualquier persona que gestione un servidor, un blog en WordPress o una tienda online. Un error en los permisos linux puede exponer datos sensibles o, por el contrario, bloquear el acceso a tu propio sitio web. Por eso, hoy vamos a desglosar el comando chmod de una forma tan sencilla que dejarás de verlo como un galimatías.

Los Fundamentos: Lectura, Escritura y Ejecución

Antes de lanzarnos a escribir comandos, tenemos que entender el abecedario de los permisos. Cada archivo o directorio tiene tres tipos de permisos básicos:

  • Lectura (r): Permite ver el contenido del archivo o listar el contenido de un directorio. Es como poder abrir un libro y leer sus páginas.
  • Escritura (w): Permite modificar el contenido del archivo o crear/eliminar archivos dentro de un directorio. Es como tener un bolígrafo para tachar y escribir en el libro.
  • Ejecución (x): Permite ejecutar el archivo si es un programa o script. En el caso de un directorio, permite "entrar" en él con el comando cd. Es como tener el permiso para pulsar el botón de "Play" en un reproductor.

Estos permisos se asignan a tres tipos de usuarios:

  1. Dueño (u): El usuario que creó el archivo o el que lo posee.
  2. Grupo (g): Un conjunto de usuarios que comparten acceso. Por ejemplo, todos los usuarios del grupo "www-data" en un servidor web.
  3. Otros (o): Cualquier otra persona que tenga acceso al sistema.

La combinación de estos tres permisos para estos tres tipos de usuarios se representa de dos maneras: en formato simbólico (como rwxr-xr--) y en formato numérico (como 754). Te prometo que es más fácil de lo que parece.

El Formato Numérico: La Clave del Comando chmod

Para cambiar permisos de forma rápida y eficiente, usaremos el formato numérico. Cada permiso tiene un valor:

  • Lectura (r) = 4
  • Escritura (w) = 2
  • Ejecución (x) = 1

Para obtener el valor de un conjunto de permisos, simplemente sumamos los números. Por ejemplo:

  • Si queremos dar permisos de lectura y escritura (pero no ejecución), sumamos 4 + 2 = 6.
  • Si queremos dar todos los permisos (lectura, escritura y ejecución), sumamos 4 + 2 + 1 = 7.
  • Si solo queremos dar lectura, el valor es 4.

Ahora, un comando chmod se compone de tres dígitos. El primer dígito es para el dueño, el segundo para el grupo y el tercero para otros.

Por ejemplo, el famoso chmod 755 se desglosa así:

  • 7 (Dueño): 4+2+1 = Lectura, escritura y ejecución.
  • 5 (Grupo): 4+1 = Lectura y ejecución.
  • 5 (Otros): 4+1 = Lectura y ejecución.

Este es un permiso muy común para directorios y scripts, ya que el dueño puede modificar, pero el resto solo puede leer y ejecutar.

Otro ejemplo clásico es chmod 644:

  • 6 (Dueño): 4+2 = Lectura y escritura.
  • 4 (Grupo): 4 = Solo lectura.
  • 4 (Otros): 4 = Solo lectura.

Este es el permiso estándar para archivos de texto, imágenes o código fuente. El dueño puede editar, pero los demás solo pueden verlo.

Cómo usar el comando chmod en la práctica

Ya tenemos la teoría. Ahora vamos a la acción. Abre tu terminal (o el panel de control de tu hosting, como Syspanel en el puerto 2106, si usas un panel con HestiaCP) y sigue estos pasos:

Paso 1: Navegar al directorio correcto

Primero, necesitas estar en la carpeta donde se encuentra el archivo o directorio que quieres modificar. Usa el comando cd para moverte.

cd /var/www/miweb

Paso 2: Ver los permisos actuales

Es buena práctica ver los permisos antes de cambiarlos. Usa ls -l para listar los archivos con detalles.

ls -l

Verás una salida similar a esta:

-rw-r--r-- 1 usuario grupo 1234 mar 12 10:00 index.html
drwxr-xr-x 2 usuario grupo 4096 mar 12 10:00 imagenes

La primera parte (-rw-r--r-- o drwxr-xr-x) son los permisos. El primer carácter indica si es un archivo (-) o un directorio (d). Luego, los siguientes nueve caracteres se agrupan de tres en tres: dueño, grupo y otros.

Paso 3: Aplicar el comando chmod

Ahora sí, vamos a cambiar permisos. La sintaxis básica es:

chmod [opciones] [modo] [archivo/directorio]

Ejemplo 1: Queremos dar permisos 755 a un directorio llamado scripts.

chmod 755 scripts

Ejemplo 2: Queremos dar permisos 644 a un archivo llamado config.php.

chmod 644 config.php

Paso 4: Aplicar permisos de forma recursiva

Si necesitas cambiar los permisos de una carpeta y de todo su contenido (subcarpetas y archivos), debes usar la opción -R (recursivo).

chmod -R 755 /ruta/a/mi/carpeta

[WARNING] Ten mucho cuidado con chmod -R 755 en toda la raíz de tu sitio web. Aunque es un permiso común, a veces puede ser demasiado permisivo para archivos de configuración que contienen contraseñas. Úsalo con criterio.

Usos comunes y prácticos para tu servidor

Ahora que sabes cómo usar chmod, veamos los casos más típicos que te encontrarás como administrador de un sitio web.

Los permisos 755 y 644: La combinación perfecta

Esta es la regla de oro para la mayoría de los sitios web estáticos o aplicaciones PHP.

  • Directorios: chmod 755 . Esto permite que el servidor web (Apache, Nginx) lea y ejecute los archivos dentro de la carpeta, y entre en ella.
  • Archivos: chmod 644 . Esto permite que el servidor lea los archivos, pero no los modifique, lo cual es una buena medida de seguridad.

Si tienes una carpeta de "subidas" (uploads) donde los usuarios pueden adjuntar imágenes, necesitarás dar permisos de escritura al grupo del servidor web. En ese caso, podrías usar chmod 775 o chmod 774 para que el grupo www-data pueda escribir.

Scripts y ejecutables

Si tienes un script en Bash o Python que necesitas ejecutar, debes darle permisos de ejecución.

chmod 755 mi_script.sh

Ahora podrás ejecutarlo con ./mi_script.sh.

Problemas comunes y soluciones

Error 403 Forbidden: Este error suele aparecer cuando el servidor web no tiene permisos de lectura o ejecución sobre los archivos o directorios. La solución más rápida es asegurarse de que los directorios tengan chmod 755 y los archivos chmod 644.

Error 500 Internal Server Error: A menudo está relacionado con archivos de configuración demasiado restrictivos. Prueba a darle permisos 644 a tu archivo .htaccess o wp-config.php.

¿No puedes subir archivos al servidor? Si usas un panel de control como Syspanel (accesible en el puerto 2106), la herramienta de gestión de archivos puede hacerte la vida más fácil. Pero si usas FTP, necesitas que el directorio de destino tenga permisos de escritura para tu usuario FTP. Normalmente, chmod 755 o chmod 775 funcionan.

El formato simbólico: Una alternativa más flexible

Aunque el formato numérico es el más popular, el simbólico te permite hacer cambios relativos sin tener que calcular la suma cada vez.

La sintaxis es:

chmod [quién][operador][permiso] archivo
  • Quién: u (dueño), g (grupo), o (otros), a (todos).
  • Operador: + (añadir), - (quitar), = (igualar).
  • Permiso: r, w, x.

Ejemplos:

  • chmod u+x script.sh : Añade permiso de ejecución al dueño.
  • chmod o-w archivo.txt : Quita el permiso de escritura a otros.
  • chmod a=r archivo.txt : Iguala los permisos de todos a solo lectura.

Este formato es ideal para hacer ajustes rápidos sin pensar en la suma numérica.

Preguntas Frecuentes (FAQ)

¿Qué significan exactamente los números 755 y 644?

Ya lo hemos visto, pero por resumir: chmod 755 (lectura, escritura y ejecución para el dueño; lectura y ejecución para grupo y otros) es para directorios y scripts. chmod 644 (lectura y escritura para el dueño; solo lectura para grupo y otros) es para archivos estáticos.

¿Cómo cambio los permisos de todos los archivos y carpetas a la vez?

Usa la opción -R (recursiva). Por ejemplo: chmod -R 755 /mi/carpeta. Pero te recomiendo que primero cambies los directorios y luego los archivos, para no dar permisos de ejecución a archivos que no lo necesitan.

¿Qué hago si no puedo cambiar los permisos?

Si no eres el propietario del archivo, necesitarás usar sudo delante del comando. Por ejemplo: sudo chmod 755 archivo. Si tu usuario no tiene permisos de sudo, deberás contactar con tu proveedor de hosting o administrador del sistema.

¿Es seguro usar chmod 777?

NO. chmod 777 da todos los permisos (lectura, escritura y ejecución) a todos los usuarios del sistema. Esto es un riesgo de seguridad enorme, ya que cualquiera podría modificar o borrar tus archivos. Evítalo siempre que puedas. Si tu aplicación te lo pide, busca una solución más específica.

¿Cómo puedo ver los permisos desde Syspanel?

En Syspanel, que es la herramienta de gestión de tu hosting (recuerda, se accede por el puerto 2106), normalmente tienes un gestor de archivos. Al hacer clic derecho sobre un archivo o carpeta, verás una opción de "Permisos" o "Propiedades" donde podrás cambiar los valores de forma visual, sin usar la terminal.

Conclusión: Domina los permisos y controla tu servidor

Aprender a usar chmod es un paso fundamental para convertirte en un administrador de sistemas competente. No es solo una cuestión de memorizar comandos, sino de entender la lógica de seguridad que hay detrás. Con esta guía, ya tienes las herramientas para resolver los errores más comunes de permisos en tu servidor y, lo más importante, para proteger tu información.

Recuerda siempre la regla de oro: privilegios mínimos necesarios. No des más permisos de los que se necesitan. Si un archivo solo necesita ser leído, no le des permisos de escritura. Si un directorio solo necesita ser leído y ejecutado, no le des permisos de escritura. Esta práctica te ahorrará muchos dolores de cabeza en el futuro.

Ahora, te animo a que practiques en un entorno de prueba. Crea un archivo, cambia sus permisos, intenta leerlo, modificarlo o ejecutarlo. Verás que la teoría se convierte en algo natural. Y si tienes un panel como Syspanel, no dudes en usar su interfaz gráfica para familiarizarte con los valores mientras ganas confianza en la terminal.

La gestión de un servidor es un viaje de aprendizaje constante. Con cada error que resuelves, te vuelves más fuerte. ¡Adelante! El mundo de Linux está lleno de posibilidades, y ahora tienes una llave más para abrir sus puertas.

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel