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

Cómo usar el comando chmod y permisos de archivos en Linux

Actualizado el 3 de diciembre de 2025

¿Qué son los permisos de archivos en Linux?

Antes de lanzarnos a usar el comando chmod, es fundamental entender qué son los permisos linux. Imagina que tu servidor es una casa con varias habitaciones. Cada archivo y carpeta tiene una puerta con una cerradura que indica quién puede entrar, quién puede leer lo que hay dentro, quién puede modificar el contenido y quién puede ejecutar los programas que están guardados.

Linux es un sistema multiusuario desde su concepción. Esto significa que varias personas (o procesos) pueden estar trabajando en el mismo sistema al mismo tiempo. Sin los permisos adecuados, cualquier usuario podría borrar archivos del sistema, modificar la configuración de tu web o leer datos confidenciales como contraseñas.

Los permisos archivos en Linux se dividen en tres grupos de usuarios:

  • Propietario (user): La persona que creó el archivo o la que tiene el control principal sobre él.
  • Grupo (group): Un conjunto de usuarios que comparten ciertos permisos sobre el archivo. Por ejemplo, todos los usuarios del grupo "www-data" (el usuario de Apache o Nginx) pueden tener acceso a los archivos de tu web.
  • Otros (others): Cualquier persona que tenga acceso al sistema y no sea ni el propietario ni pertenezca al grupo.

Y para cada uno de estos grupos, existen tres tipos de permisos básicos:

  • Lectura (r): Permite ver el contenido del archivo o listar los archivos dentro de un directorio.
  • Escritura (w): Permite modificar el contenido del archivo o crear y eliminar archivos dentro de un directorio.
  • Ejecución (x): Permite ejecutar el archivo si es un programa o script. En el caso de un directorio, permite entrar en él (usar el comando cd).

Entender esta base es clave para dominar el comando chmod y no romper nada en tu servidor.

¿Cómo funciona el comando chmod?

El comando chmod (change mode) es la herramienta que nos permite cambiar estos permisos. Es como tener la llave maestra para modificar las cerraduras de las puertas de nuestra casa.

Existen dos formas principales de usar chmod:

  1. Modo simbólico: Usa letras para indicar a quién y qué permiso cambiar.
  2. Modo numérico (octal): Usa números para representar la combinación de permisos. Este es el método más común y el que verás en la mayoría de los tutoriales, como el famoso chmod 755.

El modo simbólico (letras)

En este modo, combinamos tres elementos:

  • A quién: u (propietario), g (grupo), o (otros), a (todos).
  • Qué acción: + (añadir permiso), - (quitar permiso), = (establecer el permiso exacto).
  • Qué permiso: r (lectura), w (escritura), x (ejecución).

Por ejemplo, si queremos añadir permiso de ejecución al propietario de un script llamado install.sh, usaríamos:

chmod u+x install.sh

Si queremos quitar el permiso de escritura para el grupo y otros, usaríamos:

chmod go-w install.sh

Este método es muy intuitivo y útil para cambios rápidos y específicos.

El modo numérico (octal) y el chmod 755

Este es el método más preciso y el que te recomendamos dominar. Cada permiso tiene un valor numérico:

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

Para cada grupo de usuario (propietario, grupo, otros), sumamos los valores de los permisos que queremos otorgar. El resultado es un número del 0 al 7.

  • 0 = Sin permisos (---)
  • 1 = Solo ejecución (--x)
  • 2 = Solo escritura (-w-)
  • 3 = Escritura y ejecución (-wx)
  • 4 = Solo lectura (r--)
  • 5 = Lectura y ejecución (r-x)
  • 6 = Lectura y escritura (rw-)
  • 7 = Todos los permisos (rwx)

El comando chmod con modo numérico se escribe así:

chmod [permisos_propietario][permisos_grupo][permisos_otros] nombre_archivo

Ahora, veamos el famoso chmod 755. Este es el permiso estándar para la mayoría de los archivos y directorios en un servidor web.

  • 7 para el propietario: Lectura + Escritura + Ejecución (rwx).
  • 5 para el grupo: Lectura + Ejecución (r-x).
  • 5 para otros: Lectura + Ejecución (r-x).

¿Qué significa esto en la práctica? El propietario puede hacer lo que quiera con el archivo, mientras que el grupo y el resto de usuarios solo pueden leerlo y ejecutarlo, pero no modificarlo. Esto es perfecto para archivos de aplicación o scripts que no deben ser alterados por cualquiera.

Para aplicar chmod 755 a un archivo, simplemente ejecutamos:

chmod 755 nombre_del_archivo

Y para aplicarlo de forma recursiva a todos los archivos y carpetas dentro de un directorio:

chmod -R 755 nombre_del_directorio

[WARNING] Ten mucho cuidado con el uso de -R. Aplicar chmod 755 a todos los archivos de tu proyecto puede otorgar permisos de escritura a un directorio donde no deberías, o quitar permisos de escritura donde sí los necesitas. Es mejor ser específico.

Permisos comunes y cuándo usarlos

Conocer los números es solo la mitad de la batalla. Saber qué número usar en cada situación es lo que te hará un experto en permisos archivos. Aquí tienes una guía rápida de los permisos más comunes:

chmod 644

  • Propietario: Lectura y escritura (6).
  • Grupo: Solo lectura (4).
  • Otros: Solo lectura (4).

Este es el permiso estándar para archivos de contenido estático como HTML, CSS, JavaScript o imágenes. El propietario puede editarlos, pero el resto del mundo solo puede leerlos. Es la configuración más segura para la mayoría de los archivos de tu web.

chmod 644 index.html

chmod 755

Como ya hemos visto, es el estándar para directorios y scripts ejecutables. Los directorios necesitan el permiso de ejecución para que los usuarios puedan entrar y listar su contenido. Por eso, es común ver chmod 755 en carpetas y chmod 644 en los archivos que están dentro.

chmod 700

  • Propietario: Todos los permisos (7).
  • Grupo: Sin permisos (0).
  • Otros: Sin permisos (0).

Este permiso es muy restrictivo. Solo el propietario puede acceder al archivo o directorio. Es ideal para archivos de configuración con contraseñas o claves privadas (como las llaves SSH).

chmod 700 claves_privadas.txt

chmod 777

  • Propietario: Todos los permisos (7).
  • Grupo: Todos los permisos (7).
  • Otros: Todos los permisos (7).

[WARNING] ¡Alerta de peligro! chmod 777 otorga todos los permisos a todos los usuarios del sistema. Cualquiera podría leer, modificar o ejecutar estos archivos. Esto es un riesgo de seguridad enorme. Solo deberías usarlo de forma temporal y en entornos de desarrollo locales, nunca en un servidor de producción.

Si alguna vez ves un error que dice "Permission denied" y el archivo tiene chmod 777, no es un problema de permisos, es otro tema (como propietario incorrecto o un firewall).

Cómo ver los permisos actuales con ls -l

Antes de cambiar nada, debes saber qué permisos tienes actualmente. El comando ls -l es tu mejor amigo para esto.

ls -l

La salida se verá así:

-rw-r--r-- 1 usuario grupo 1024 Jan 15 10:30 archivo.txt
drwxr-xr-x 2 usuario grupo 4096 Jan 15 10:30 directorio

Vamos a descifrar la primera parte: -rw-r--r--.

  • El primer carácter indica el tipo de archivo: - es un archivo normal, d es un directorio.
  • Los siguientes 9 caracteres se dividen en tres grupos de tres: rw- (propietario), r-- (grupo), r-- (otros).
  • Si aparece una r, w o x, significa que el permiso está activo. Si aparece un -, significa que no tiene ese permiso.

En el ejemplo, archivo.txt tiene permisos 644 (rw- para propietario, r-- para grupo y r-- para otros). Y directorio tiene permisos 755 (rwx para propietario, r-x para grupo y r-x para otros).

Casos prácticos para tu hosting

Ahora que ya sabes lo básico, vamos a aplicar esto a situaciones reales que te encontrarás al gestionar tu hosting con Syspanel.

[INFO] Recuerda que Syspanel (antes conocido como HestiaCP) es el panel de control que te recomendamos para gestionar tu servidor. Puedes acceder a él a través del puerto 2106 (por ejemplo, https://tu-dominio.com:2106). Syspanel crea los usuarios y grupos automáticamente, pero a veces necesitas ajustar los permisos manualmente.

Subir archivos con FileZilla o SFTP

Cuando subes archivos desde tu ordenador a tu servidor, a menudo los permisos se quedan con valores extraños (como 644 o 755). Esto es normal. Si tu web muestra un error de "500 Internal Server Error", puede ser que un archivo tenga permisos demasiado restrictivos para el usuario de PHP (que suele ser www-data).

Solución: Navega al directorio de tu web (normalmente web/ dentro de tu carpeta de usuario) y ejecuta:

find . -type f -exec chmod 644 {} \;
find . -type d -exec chmod 755 {} \;

Este comando busca todos los archivos (-type f) y les asigna 644, y todos los directorios (-type d) y les asigna 755. Es una solución rápida y segura para la mayoría de los CMS como WordPress.

Hacer ejecutable un script

Si tienes un script de respaldo o un cron job que no se ejecuta, es probable que le falte el permiso de ejecución.

chmod 755 backup.sh

Con esto le das permiso de ejecución al propietario, grupo y otros. Si solo lo va a ejecutar tu usuario, puedes usar chmod 700 backup.sh para mayor seguridad.

Proteger archivos sensibles

Si tienes un archivo de configuración con credenciales de base de datos, lo más seguro es que solo el propietario pueda leerlo.

chmod 600 config.php

Este permiso (600) da lectura y escritura solo al propietario. Ni el grupo ni otros pueden leerlo. Es mucho más seguro que 644.

Errores comunes y cómo solucionarlos

Error: "Permission denied"

Este es el error más frustrante. Si lo ves al intentar leer un archivo, significa que tu usuario no tiene permisos de lectura. Si lo ves al intentar ejecutar un script, te falta el permiso de ejecución.

Solución: Usa ls -l para ver los permisos actuales y luego chmod para ajustarlos. Si el archivo es de otro usuario (como root), puede que necesites usar sudo para cambiarlo, pero eso ya es más avanzado.

Error: "Operation not permitted" al borrar archivos

Esto suele pasar en directorios. Para borrar un archivo dentro de un directorio, necesitas permisos de escritura en el directorio, no en el archivo en sí.

Solución: Verifica los permisos del directorio padre con ls -ld nombre_directorio. Si no tienes w para el grupo, necesitarás chmod g+w directorio.

Confundir permisos de archivos y directorios

Un error muy común es aplicar los mismos permisos a archivos y directorios. Recuerda que los directorios necesitan el permiso de ejecución (x) para que los usuarios puedan entrar. Si un directorio tiene 644, nadie podrá entrar en él.

Solución: Usa find como te mostramos antes para aplicar permisos de forma diferenciada.

Preguntas frecuentes (FAQ)

¿Qué significa chmod 755?

chmod 755 otorga al propietario permisos de lectura, escritura y ejecución (7), y al grupo y otros solo lectura y ejecución (5). Es el estándar para directorios y scripts.

¿Cómo cambio los permisos de todos los archivos de un directorio?

Usa el comando chmod -R 755 nombre_directorio. La opción -R (recursiva) aplica el cambio a todos los archivos y subdirectorios.

¿Cuál es la diferencia entre chmod 644 y chmod 755?

La diferencia está en el permiso de escritura. Con 644, el propietario puede escribir, pero el grupo y otros solo pueden leer. Con 755, el propietario puede escribir y ejecutar, y el grupo y otros pueden leer y ejecutar. 644 es para archivos estáticos, 755 es para directorios y ejecutables.

¿Qué permisos debo usar para WordPress?

Generalmente, los directorios deben tener 755 y los archivos 644. Para el archivo wp-config.php, puedes usar 600 para proteger las credenciales de la base de datos.

¿Cómo puedo ver los permisos de un archivo?

Usa el comando ls -l nombre_archivo. La salida te mostrará los permisos en formato de letras (ej. -rw-r--r--).

¿Qué es un permiso 777 y por qué es peligroso?

777 otorga todos los permisos (lectura, escritura y ejecución) a todos los usuarios del sistema. Es peligroso porque cualquier usuario podría modificar o borrar tus archivos, comprometiendo la seguridad de tu servidor. Evítalo siempre que puedas.

¿Por qué no puedo cambiar los permisos de un archivo?

Si no puedes cambiar los permisos, es posible que no seas el propietario del archivo o que no tengas permisos de administrador (sudo). En un hosting compartido, a veces el soporte debe hacerlo por ti.

Consejos finales y buenas prácticas

Dominar el comando chmod es una habilidad esencial para cualquier administrador de sistemas o persona que gestione su propio hosting. Te resumimos los puntos clave:

  • Principio de mínimo privilegio: Otorga solo los permisos necesarios para que el sistema funcione. Si un archivo no necesita ser escrito por otros, no lo permitas.
  • Usa ls -l siempre: Antes de cambiar nada, observa el estado actual.
  • Prefiere el modo numérico: Es más preciso y menos propenso a errores que el modo simbólico, especialmente en scripts.
  • Ten cuidado con -R: Aplicar cambios recursivos puede tener consecuencias no deseadas. Revisa siempre la estructura de directorios antes.
  • No uses 777: Es una mala práctica que puede llevar a vulnerabilidades de seguridad. Busca siempre una alternativa más restrictiva.

Si estás usando Syspanel para gestionar tu servidor, recuerda que el puerto de acceso es el 2106. Dentro de Syspanel, a menudo puedes gestionar los permisos de archivos a través del administrador de archivos integrado, lo que te da una interfaz gráfica para hacer estos cambios sin necesidad de usar la línea de comandos. Sin embargo, entender chmod te dará un control mucho más fino y te permitirá resolver problemas más rápido.

Esperamos que esta guía te haya sido de ayuda. La gestión de permisos linux puede parecer abrumadora al principio, pero con un poco de práctica se convierte en algo natural. ¡No dudes en experimentar en un entorno de pruebas y verás cómo pronto lo dominas por completo!

¿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