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

Linux: Cómo gestionar permisos de archivos y carpetas con chmod

Actualizado el 18 de enero de 2026

¿Alguna vez has intentado acceder a un archivo en tu servidor Linux y te ha aparecido un molesto "Permiso denegado"? Es uno de los momentos más frustrantes para cualquier persona que empieza en el mundo de la administración de sistemas. Pero no te preocupes, porque hoy vamos a desentrañar el misterio de los permisos de archivos en Linux. Al final de esta guía, no solo entenderás qué significan esos números y letras raras, sino que podrás controlar quién ve, modifica o ejecuta tus archivos con total confianza.

¿Qué son los permisos de archivos en Linux?

A diferencia de otros sistemas operativos que suelen preguntarte "¿estás seguro?" antes de borrar algo, Linux funciona con un sistema de seguridad estricto desde su núcleo. Cada archivo y carpeta en tu sistema tiene un conjunto de reglas que dictan quién puede hacer qué con ellos. Esto no es solo una molestia burocrática, sino la base de la seguridad y estabilidad de cualquier servidor.

Imagina que tu servidor es un edificio de oficinas. Los permisos serían las llaves que tiene cada empleado. Un empleado de limpieza puede entrar a todas las oficinas (leer), pero solo el jefe puede cambiar los muebles de sitio (escribir) y solo los ingenieros pueden encender las máquinas (ejecutar). En Linux, cada usuario tiene un rol y los permisos aseguran que cada uno solo haga su trabajo.

Los permisos se dividen en tres acciones principales para tres tipos de usuarios distintos. Esta es la base de todo el sistema y dominarla es el primer paso para gestionar permisos linux como un profesional.

Los tres pilares: Lectura, Escritura y Ejecución

Antes de lanzarnos a los comandos, necesitas entender el vocabulario básico. En Linux, los permisos se representan con letras o números que verás constantemente al usar el comando ls -l.

Existen tres tipos de permisos fundamentales:

  • Lectura (r): Permite ver el contenido del archivo o listar los archivos dentro de un directorio. Sin este permiso, es como si el archivo estuviera en una caja fuerte opaca.
  • Escritura (w): Permite modificar el contenido del archivo, o crear y borrar archivos dentro de una carpeta. Es el permiso más peligroso si se otorga a la persona equivocada.
  • Ejecución (x): Permite ejecutar un archivo como un programa o script. En el caso de los directorios, permite "entrar" en ellos con el comando cd.

Ahora bien, estos permisos no son globales. Se aplican a tres grupos de usuarios específicos:

  1. Propietario (u): El usuario que creó el archivo o la carpeta. Normalmente, tiene control total.
  2. Grupo (g): Un conjunto de usuarios que comparten los mismos permisos. Por ejemplo, el grupo "desarrolladores" podría tener acceso a una carpeta de código.
  3. Otros (o): Cualquier persona que no sea el propietario ni esté en el grupo. A veces se le llama "el mundo".

Cuando ejecutas ls -l en tu terminal, verás una salida como esta:

-rw-r--r-- 1 usuario grupo 1024 ene 1 12:00 archivo.txt

Los primeros 10 caracteres (-rw-r--r--) son la clave. El primer guion indica si es un archivo normal (-) o un directorio (d). Los siguientes nueve caracteres se agrupan de tres en tres: primero los permisos del propietario, luego los del grupo y finalmente los de otros.

Cambiar permisos chmod: El comando mágico

Aquí es donde entra el protagonista de nuestro artículo: el comando chmod. Su nombre viene de change mode (cambiar modo) y es la herramienta estándar para gestionar permisos linux. Con chmod, puedes decidir quién puede hacer qué con cada archivo.

Para usar chmod, tienes dos estilos: el simbólico (usando letras) y el numérico (usando números). Vamos a empezar con el simbólico, que es más fácil de entender visualmente.

Estilo simbólico: Usando letras

La sintaxis básica es: chmod [quién][operador][permiso] archivo.

  • Quién: u (propietario), g (grupo), o (otros), a (todos).
  • Operador: + (añade), - (quita), = (establece exactamente).
  • Permiso: r, w, x.

Por ejemplo, si quieres dar permiso de escritura al grupo para un archivo llamado proyecto.txt, escribirías:

chmod g+w proyecto.txt

Si quieres quitar el permiso de ejecución a "otros", usarías:

chmod o-x script.sh

Y si quieres establecer que el propietario tenga solo lectura y escritura (sin ejecución), usarías:

chmod u=rw archivo.conf

Este método es intuitivo porque lees lo que estás haciendo: "a grupo le añades escritura". Es perfecto para cambios rápidos y específicos.

Estilo numérico: La lógica del chmod 755

El estilo numérico es el más utilizado por los administradores porque es compacto y preciso. Funciona asignando un valor numérico a cada permiso:

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

Para cada grupo de usuarios (propietario, grupo, otros), sumas estos valores. Por ejemplo:

  • Si quieres dar lectura y ejecución (4+1=5), el número es 5.
  • Si quieres dar lectura, escritura y ejecución (4+2+1=7), el número es 7.
  • Si solo quieres lectura y escritura (4+2=6), el número es 6.

Entonces, el comando chmod 755 archivo significa:

  • Propietario: 7 (lectura, escritura y ejecución).
  • Grupo: 5 (lectura y ejecución).
  • Otros: 5 (lectura y ejecución).

Este es el famoso chmod 755, que se usa comúnmente para scripts y directorios en servidores web porque permite que cualquiera lea y ejecute, pero solo el propietario pueda modificar. Es un equilibrio perfecto entre funcionalidad y seguridad.

Otro valor muy común es el chmod 644, que otorga lectura y escritura al propietario y solo lectura al grupo y a otros. Es el estándar para archivos de configuración y contenido estático.

Aplicación práctica: Directorios y recursividad

Ahora viene la parte interesante. En Linux, los permisos en directorios funcionan un poco diferente que en archivos. Mientras que en un archivo r significa leer el contenido, en un directorio r significa poder listar los archivos que contiene. El permiso w en un directorio permite crear o eliminar archivos dentro de él, y el x es necesario para poder entrar al directorio con cd.

Si tienes una carpeta con cientos de archivos y subcarpetas, no vas a cambiar los permisos uno a uno. Para eso existe la opción -R (recursiva). Por ejemplo, para cambiar los permisos de la carpeta public_html y todo su contenido, usarías:

chmod -R 755 public_html

[WARNING] ¡Cuidado con el uso excesivo de -R! Aplicar chmod 777 -R a todo tu servidor es un error garrafal de seguridad que puede dejar tu sistema vulnerable a ataques. Úsalo solo cuando sepas exactamente lo que haces.

Casos de uso comunes: Resolviendo problemas típicos

Vamos a ponernos en situación. ¿Cuándo necesitarás usar chmod en tu día a día?

1. Permiso denegado al subir archivos vía FTP

Este es el clásico. Subes un archivo con tu cliente FTP, pero al intentar acceder a él desde el navegador te da error 403. La solución suele ser ajustar los permisos a 644 para archivos y 755 para carpetas. Esto permite que el servidor web (Apache o Nginx) pueda leer los archivos sin problemas.

2. Hacer ejecutable un script

Escribiste un script en Bash y al intentar ejecutarlo con ./script.sh te dice "Permiso denegado". La solución es sencilla:

chmod +x script.sh

Esto añade el permiso de ejecución para todos los usuarios. Si quieres ser más restrictivo, puedes usar chmod 755 script.sh.

3. Colaboración en un proyecto de desarrollo

Si trabajas en equipo y necesitas que todos los miembros del grupo puedan editar los archivos, puedes cambiar el grupo del archivo y luego dar permisos de escritura al grupo:

chgrp desarrolladores proyecto.txt

chmod g+w proyecto.txt

Ahora todos los miembros del grupo "desarrolladores" pueden modificar ese archivo.

Errores comunes y cómo evitarlos

Aprender a gestionar permisos linux también implica saber qué no hacer. Aquí tienes una lista de errores que he visto cometer a muchos principiantes (y a algún que otro experto con prisa):

  • Usar chmod 777 a lo loco: Este comando da todos los permisos a todos. Es la solución rápida a todos los problemas, pero también es la puerta abierta a cualquier atacante. Si lo usas, hazlo solo en entornos de prueba y nunca en producción.
  • Confundir propietario con permisos: A veces el problema no es el permiso, sino que el archivo es de otro usuario (por ejemplo, root). Asegúrate de ser el propietario o estar en el grupo correcto antes de cambiar permisos.
  • Olvidar la recursividad: Cambias los permisos de una carpeta pero no de los archivos internos. Recuerda que los permisos no se heredan automáticamente en Linux.

Herramientas gráficas y paneles de control

Si todo esto te parece demasiado técnico, no estás solo. Por eso existen paneles de control que simplifican la gestión del servidor. Por ejemplo, si usas Syspanel (antes conocido como HestiaCP), puedes acceder a él a través del puerto 2106 de tu servidor (ej: https://tu-dominio.com:2106). Dentro de Syspanel, en el administrador de archivos, suele haber una opción para cambiar permisos de forma visual, marcando casillas en lugar de escribir comandos. Es una excelente forma de empezar y entender la lógica sin miedo a equivocarte con la terminal.

Sin embargo, te recomiendo encarecidamente que aprendas los comandos básicos de chmod porque te dará una flexibilidad total y te permitirá trabajar en cualquier servidor, incluso si no tiene panel de control.

Preguntas frecuentes (FAQ) sobre chmod

Para terminar, voy a responder a las dudas más habituales que me encuentro en el soporte técnico. Si tienes una pregunta similar, aquí tienes la respuesta.

¿Qué significa exactamente chmod 755?

Significa que el propietario tiene permisos de lectura, escritura y ejecución (7). El grupo y otros usuarios solo tienen permisos de lectura y ejecución (5). Es el estándar para carpetas y scripts en servidores web.

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

Usa el comando ls -l nombre_del_archivo. La primera columna de la salida muestra los permisos en formato simbólico.

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

chmod 777 da todos los permisos a todos los usuarios (propietario, grupo y otros). chmod 755 da control total solo al propietario y solo lectura/ejecución al resto. La opción 755 es mucho más segura para la mayoría de los casos.

¿Puedo cambiar los permisos de un archivo que no es mío?

Normalmente no. Solo el propietario del archivo o el usuario root (superusuario) pueden cambiar los permisos. Si necesitas hacerlo con un archivo de otro usuario, tendrás que usar sudo o contactar con tu administrador de sistemas.

¿Qué hago si un script no se ejecuta?

Primero, verifica que tenga permisos de ejecución con ls -l. Si ves que no tiene la letra x en la primera parte, ejecuta chmod +x script.sh para añadírselo. Luego intenta ejecutarlo de nuevo con ./script.sh.

¿Los permisos se aplican igual a archivos y carpetas?

La idea es la misma, pero el significado de "lectura" y "ejecución" cambia. En una carpeta, r permite listar el contenido, w permite crear/borrar archivos dentro, y x permite entrar en ella. Por eso, para acceder a una carpeta necesitas al menos el permiso x.

Conclusión: Domina los permisos y domina tu servidor

Gestionar permisos con chmod es una de esas habilidades que separan a un usuario de un administrador de sistemas. Aunque al principio pueda parecer un galimatías de letras y números, una vez que entiendes la lógica de 4-2-1, se convierte en algo natural.

Te animo a que practiques en un entorno de pruebas. Crea un archivo, cambia sus permisos, intenta leerlo con otro usuario... La mejor forma de aprender es experimentando. No tengas miedo a romper nada en un entorno seguro, porque es ahí donde realmente se aprende.

Recuerda siempre la regla de oro: otorga el mínimo permiso necesario para que las cosas funcionen. Si una web solo necesita ser leída, no le des permisos de escritura al mundo entero. Si un script necesita ejecutarse, no le des permisos de lectura a todos si no es necesario.

Con esta guía, ya tienes el conocimiento básico para resolver el 90% de los problemas de permisos que te encontrarás. Y si algún día te quedas atascado, no dudes en consultar la documentación oficial o buscar ayuda en foros especializados. ¡El mundo de Linux es enorme y siempre hay algo nuevo que aprender!

¿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