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

Guía de permisos de archivos en Linux (chmod, chown, umask)

Actualizado el 25 de marzo de 2026

¿Qué son los permisos de archivos en Linux y por qué deberían importarte?

Si alguna vez has intentado modificar un archivo y el sistema te ha respondido con un escueto "Permiso denegado", ya has tenido un encuentro con el sistema de permisos de Linux. Aunque al principio pueda parecer un engorro, los permisos son la base de la seguridad en cualquier servidor, y entenderlos te permitirá administrar tu hosting sin sustos ni bloqueos.

En esta guía vamos a desgranar los tres comandos esenciales que necesitas dominar: chmod, chown y umask. No necesitas ser un programador para entenderlo; de hecho, lo explicaremos desde cero, con ejemplos prácticos que puedes aplicar hoy mismo.


Los fundamentos: propietarios, grupos y el resto del mundo

En Linux, cada archivo y carpeta tiene tres niveles de acceso:

  • Propietario (user): la persona que creó el archivo o a quien se le asignó.
  • Grupo (group): un conjunto de usuarios que comparten permisos sobre el archivo.
  • Otros (others): cualquier usuario que no sea el propietario ni esté en el grupo.

Para cada uno de estos niveles existen tres tipos de permisos:

  • Lectura (r): permite ver el contenido del archivo o listar el directorio.
  • Escritura (w): permite modificar el archivo o crear/eliminar archivos dentro de un directorio.
  • Ejecución (x): permite ejecutar el archivo como programa o acceder al directorio (entrar en él).

Puedes ver estos permisos con el comando ls -l. La salida se ve así:

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

Los primeros diez caracteres son la clave: el primero indica si es un directorio (d) o un archivo normal (-). Los siguientes nueve se agrupan de tres en tres: propietario, grupo y otros.


Permisos numéricos: la magia de los números 4, 2 y 1

En lugar de escribir letras, Linux permite usar números para representar permisos. Cada permiso tiene un valor:

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

Se suman los valores que quieras asignar. Por ejemplo:

  • 7 = 4+2+1 (lectura, escritura y ejecución)
  • 6 = 4+2 (lectura y escritura)
  • 5 = 4+1 (lectura y ejecución)

Así, un permiso 755 significa:

  • Propietario: 7 (todo)
  • Grupo: 5 (lectura y ejecución)
  • Otros: 5 (lectura y ejecución)

Este es el permiso más común para archivos web, como las páginas PHP o HTML. Es seguro porque el propietario puede escribir, pero el resto solo puede leer y ejecutar.


chmod: el comando para cambiar permisos

El comando chmod es el que usas para modificar los permisos de un archivo o directorio. Hay dos formas de usarlo: con números (la más fácil) o con letras (la más descriptiva).

chmod con números (modo octal)

La sintaxis es simple:

chmod [permisos] [archivo]

Por ejemplo:

chmod 755 mi_pagina.php

Esto asigna permisos 755 a mi_pagina.php. Aquí tienes algunos ejemplos chmod que te serán útiles:

  • chmod 644 archivo.txt → Permisos típicos para archivos estáticos: propietario puede leer/escribir, grupo y otros solo leer.
  • chmod 700 carpeta → Solo el propietario tiene acceso total; nadie más puede ni entrar.
  • chmod 777 carpeta_temporal → Todos pueden hacer de todo. Úsalo solo temporalmente, es un riesgo de seguridad enorme.

chmod con letras (modo simbólico)

Si prefieres algo más legible, puedes usar letras:

  • u → usuario (propietario)
  • g → grupo
  • o → otros
  • a → todos (all)

Y los operadores:

  • + → añadir permiso
  • - → quitar permiso
  • = → asignar exactamente

Ejemplo:

chmod u+x script.sh

Esto añade permiso de ejecución al propietario. Otro ejemplo:

chmod go-w archivo.txt

Quita la escritura al grupo y a otros.


chown: cambiar el propietario y el grupo

Cuando necesitas que otro usuario sea el dueño de un archivo, usas chown. Esto es habitual en entornos de hosting cuando mueves archivos entre usuarios o al configurar aplicaciones.

La sintaxis es:

chown [nuevo_propietario]:[nuevo_grupo] [archivo]

Ejemplos:

chown usuario2:usuarios documento.pdf

Si solo quieres cambiar el propietario y dejar el grupo igual:

chown usuario2 documento.pdf

Y si solo quieres cambiar el grupo:

chown :nuevo_grupo archivo.txt

Cambiar propietario de forma recursiva

Para aplicar el cambio a todos los archivos y carpetas dentro de un directorio, añade la opción -R:

chown -R usuario:grupo /ruta/carpeta

[WARNING] Cuidado al usar -R en directorios grandes como /home o /var/www. Un error puede dejar el sistema sin acceso correcto. Siempre revisa qué estás cambiando.


umask: los permisos por defecto

¿Te has preguntado por qué los archivos nuevos se crean con ciertos permisos automáticamente? Eso lo controla umask. Es una máscara que "resta" permisos al valor máximo permitido (normalmente 666 para archivos y 777 para directorios).

¿Cómo funciona?

Imagina que el valor máximo es 666. Si tu umask es 022, se restan esos permisos:

  • 666 - 022 = 644

Así que los archivos nuevos tendrán permisos 644 (propietario puede escribir, el resto solo leer). Para directorios:

  • 777 - 022 = 755

Esto es perfecto para la mayoría de sitios web.

Ver tu umask actual

Escribe:

umask

Te devolverá algo como 0022.

Cambiar umask temporalmente

Puedes establecer una nueva máscara para la sesión actual:

umask 027

Esto daría permisos 640 para archivos y 750 para directorios, ideales si quieres que el grupo no tenga acceso a otros.

Hacer el cambio permanente

Para que el cambio sea permanente, añade la línea en tu archivo de configuración de shell (por ejemplo ~/.bashrc o ~/.profile):

umask 027

[TIP] En entornos de hosting compartido, un umask de 022 es el estándar y suele ser suficiente. Cambiarlo a 027 puede romper el acceso de otros usuarios a tus archivos si comparten grupo.


Los permisos 755: el estándar de oro en hosting

Nos hemos referido a los permisos 755 varias veces, pero merece un apartado propio porque es el valor que verás recomendado en casi todos los tutoriales web.

¿Por qué es tan popular?

  • El propietario (normalmente tu usuario de hosting) tiene control total: puede leer, escribir y ejecutar. Esto es necesario para subir archivos, modificar configuraciones o instalar plugins.
  • El grupo y otros solo pueden leer y ejecutar. Es decir, pueden ver la web y ejecutar scripts, pero no modificar nada.

Esto es exactamente lo que necesita un sitio web estático o una aplicación PHP: los visitantes deben poder leer y ejecutar, pero no escribir.

Para directorios, los permisos 755 permiten que el servidor web pueda entrar en las carpetas y leer los archivos. Si por error pones 644 en un directorio, el navegador te mostrará un error 403 Forbidden.

¿Cuándo no usar 755?

  • Si tienes un archivo con información sensible (por ejemplo, una base de datos de configuración), usa 644 o incluso 600.
  • Si necesitas que otros usuarios escriban en un directorio (por ejemplo, una carpeta de subidas), tendrás que usar 775 o 777, pero con cuidado.

Errores comunes y cómo solucionarlos

Error 403 Forbidden

Este error suele significar que el servidor web no tiene permiso para leer el archivo o entrar en el directorio. Revisa los permisos de la carpeta y sus padres. Deben ser al menos 755.

No puedo subir archivos por FTP

Si tu cliente FTP te da error al subir, es probable que el directorio no tenga permisos de escritura para tu usuario. Asegúrate de que el propietario sea tu usuario y que tenga permisos 755 (o 775 si hay un grupo compartido).

Archivos que no se pueden eliminar

Si no puedes borrar un archivo, puede que el directorio que lo contiene no tenga permiso de escritura. Recuerda: para eliminar un archivo necesitas permiso de escritura en el directorio, no en el archivo.

[INFO] Si usas un panel de control como Syspanel (accesible en el puerto 2106), muchos de estos cambios se pueden hacer desde la interfaz gráfica. Sin embargo, entender los comandos te dará más control y te ayudará a diagnosticar problemas cuando el panel no sea suficiente.


Permisos especiales: setuid, setgid y sticky bit

Aunque no los usarás a diario, es bueno conocerlos:

  • Setuid (s): cuando un archivo ejecutable tiene este permiso, se ejecuta con los permisos del propietario, no del usuario que lo ejecuta. Es peligroso si se aplica mal.
  • Setgid (s): similar, pero con los permisos del grupo. En directorios, hace que los archivos nuevos hereden el grupo del directorio.
  • Sticky bit (t): se usa en directorios como /tmp. Permite que solo el propietario de un archivo pueda eliminarlo, aunque otros tengan permiso de escritura en el directorio.

Para activarlos, añades un cuarto dígito al principio (4 para setuid, 2 para setgid, 1 para sticky):

chmod 4755 archivo

Preguntas frecuentes (FAQ)

¿Qué significa "permisos 777"?

Significa que todos (propietario, grupo y otros) tienen permisos completos. Es muy cómodo pero extremadamente inseguro, ya que cualquier usuario del sistema puede modificar tus archivos. Evítalo salvo en carpetas temporales y durante periodos muy cortos.

¿Cómo sé qué permisos tiene un archivo?

Usa ls -l. La primera columna te lo dice todo. También puedes usar stat para más detalles.

¿Puedo cambiar permisos desde Syspanel?

Sí, Syspanel (tu panel de control en el puerto 2106) incluye un gestor de archivos donde puedes cambiar permisos de forma gráfica. Busca la opción "Permisos" o "Propiedades" al seleccionar un archivo.

¿Qué pasa si pongo 644 en un directorio?

El servidor web no podrá entrar en él y verás un error 403. Los directorios necesitan al menos permiso de ejecución (1) para el grupo y otros.

¿Puedo usar chmod en archivos que no son míos?

Solo si eres el propietario o tienes privilegios de superusuario (root). En un hosting compartido, normalmente solo puedes modificar tus propios archivos.

¿Cómo restauro los permisos por defecto de una carpeta?

Puedes usar:

chmod 755 carpeta
chmod 644 archivo.html

O si quieres aplicar a todo recursivamente:

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

[WARNING] Ten mucho cuidado con los comandos recursivos. Un solo find mal escrito puede cambiar permisos de todo el sistema.


Resumen rápido

  • Los permisos de Linux se dividen en propietario, grupo y otros, con permisos de lectura, escritura y ejecución.
  • Los valores numéricos son 4 (lectura), 2 (escritura) y 1 (ejecución).
  • chmod cambia permisos. Ejemplos: chmod 755 archivo, chmod u+x script.
  • chown cambia propietario y grupo. Ejemplo: chown usuario:grupo archivo.
  • umask define los permisos por defecto para archivos nuevos.
  • Los permisos 755 son el estándar para directorios y archivos web.
  • Evita usar 777 salvo en casos muy concretos y temporales.

Con esta guía ya tienes las bases para manejar los permisos de archivos en Linux con confianza. Recuerda que la práctica es la mejor maestra: no tengas miedo de experimentar en un entorno de pruebas antes de tocar tu sitio en producción.

¿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