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

Cómo asignar y gestionar permisos de archivos en Linux (chmod, chown)

Actualizado el 19 de diciembre de 2025

¿Por qué son tan importantes los permisos en Linux?

Si alguna vez has visto un error de "Permiso denegado" al intentar subir un archivo a tu servidor, o tu página web muestra un error 500 sin explicación, es muy probable que el problema esté en los permisos de archivos. Entender los permisos linux es una de esas habilidades que separan a quienes solo usan el hosting de quienes realmente lo administran.

Piensa en los permisos como las cerraduras de las puertas de tu casa. Cada archivo y carpeta en tu servidor Linux tiene una cerradura con tres llaves diferentes: una para el dueño, otra para el grupo y otra para el resto del mundo. Si no tienes la llave correcta, no puedes entrar.

En esta guía completa, vamos a desglosar cómo funcionan estos sistemas de seguridad, cómo usar comandos como chmod y chown para gestionarlos, y cómo aplicar esto a casos prácticos como los wordpress permisos. No necesitas ser un experto en sistemas, solo tener paciencia y seguir los ejemplos paso a paso.


Los fundamentos: usuarios, grupos y el resto del mundo

Antes de lanzarnos a los comandos, necesitas entender quién es quién en el sistema Linux.

El propietario (Owner)

Es el usuario que creó el archivo o carpeta. Normalmente, en un servidor web, este es el usuario de tu cuenta de hosting o el usuario www-data si hablamos del servidor web (Apache o Nginx).

El grupo (Group)

Los grupos permiten que varios usuarios compartan permisos sobre un conjunto de archivos. Por ejemplo, si tienes un equipo de desarrolladores, todos pueden pertenecer al grupo developers y tener acceso a los archivos del proyecto sin ser los propietarios.

Otros (Others)

Literalmente, cualquier otro usuario que no sea el propietario ni pertenezca al grupo. En un servidor web, esto incluye a los visitantes de tu sitio.

Cada uno de estos tres actores tiene tres tipos de permisos:

  • Lectura (r - read): Permite ver el contenido del archivo o listar el contenido de un directorio.
  • Escritura (w - write): Permite modificar el contenido del archivo o crear/eliminar archivos dentro de un directorio.
  • Ejecución (x - execute): Permite ejecutar el archivo si es un programa o script. En directorios, permite entrar a ellos (hacer cd).

El sistema numérico: descifrando el 755

Cuando veas cosas como chmod 755, debes saber que esos números no son aleatorios. Responden a un sistema binario simplificado.

Cada permiso tiene un valor numérico:

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

Para cada actor (propietario, grupo, otros), sumamos los valores de los permisos que queremos otorgar.

Ejemplo práctico: El famoso chmod 755

  • 7 (Propietario) = 4 (lectura) + 2 (escritura) + 1 (ejecución). El dueño tiene control total.
  • 5 (Grupo) = 4 (lectura) + 1 (ejecución). El grupo puede leer y ejecutar, pero no modificar.
  • 5 (Otros) = 4 (lectura) + 1 (ejecución). El resto del mundo puede leer y ejecutar, pero no modificar.

Este es el permiso estándar para archivos y carpetas de un sitio web público. Permite que el servidor web lea y muestre los archivos, pero evita que usuarios externos los modifiquen.

Tabla rápida de referencia

NúmeroPermisosDescripción
0---Sin permisos
1--xSolo ejecución
2-w-Solo escritura
3-wxEscritura y ejecución
4r--Solo lectura
5r-xLectura y ejecución
6rw-Lectura y escritura
7rwxTodos los permisos

Cómo usar el comando chmod para cambiar permisos archivos

El comando chmod (change mode) es tu herramienta principal para modificar estos permisos. Puedes usarlo de dos maneras: con números (modo octal) o con letras (modo simbólico). Para principiantes, recomiendo el modo numérico porque es más directo.

Sintaxis básica

chmod [opciones] [permisos] [archivo o directorio]

Ejemplos de uso común

  1. Dar permisos completos al propietario, y solo lectura/ejecución a los demás:

    chmod 755 mi_archivo.php
    
  2. Dar permisos totales a todos (¡PELIGRO!):

    chmod 777 mi_carpeta
    

    [WARNING] Nunca uses chmod 777 en un servidor de producción. Significa que cualquiera puede leer, escribir y ejecutar tus archivos. Es la puerta de entrada favorita de los hackers.

  3. Aplicar permisos de forma recursiva a una carpeta y todo su contenido:

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

    El flag -R (recursivo) es esencial cuando trabajas con árboles de directorios.

Usando el modo simbólico (para casos específicos)

A veces solo quieres añadir o quitar un permiso concreto sin recalcular todo el número. Por ejemplo, dar permiso de ejecución al propietario sin tocar el grupo ni otros.

chmod u+x mi_script.sh
  • u = propietario (user)
  • g = grupo (group)
  • o = otros (others)
  • a = todos (all)
  • + = añadir permiso
  • - = quitar permiso
  • = = asignar exactamente

Ejemplo: Quitar permiso de escritura al grupo y a otros:

chmod go-w mi_archivo.conf

El comando chown: cambiando el propietario y grupo

El comando chown (change owner) cambia el propietario de un archivo o directorio. Esto es crucial cuando tu servidor web necesita escribir en ciertos archivos, pero el propietario actual es tu usuario de FTP.

Sintaxis básica

chown [opciones] [nuevo_propietario]:[nuevo_grupo] [archivo]

Ejemplos prácticos

  1. Cambiar solo el propietario:

    chown juan documento.txt
    
  2. Cambiar propietario y grupo a la vez:

    chown juan:desarrolladores proyecto.zip
    
  3. Cambiar recursivamente (muy común en servidores web):

    chown -R www-data:www-data /var/www/mi_sitio_web
    

    Esto le da al servidor web (Apache/Nginx) la propiedad de todos los archivos de tu sitio. Es un paso obligatorio si tu sitio necesita subir imágenes o generar cachés.

[INFO] Si tu hosting usa un panel como Syspanel (accesible por defecto en el puerto 2106), es probable que ya se gestionen estos cambios de forma automática al crear sitios web. Sin embargo, saber usar chown te sacará de apuros cuando algo falle.


Caso práctico: WordPress y los permisos correctos

Los wordpress permisos son un dolor de cabeza recurrente. Un error común es instalar un plugin y que pida credenciales FTP, o que no puedas subir imágenes a la biblioteca de medios.

¿Cuál es el problema?

WordPress necesita escribir en ciertas carpetas (como wp-content/uploads), pero si los archivos son propiedad de tu usuario root o de tu cuenta de FTP, el servidor web no puede modificarlos.

La solución estándar (recomendada para la mayoría)

  1. Todos los archivos deben ser propiedad del servidor web:

    chown -R www-data:www-data /ruta/a/tu/wordpress
    
  2. Los directorios deben tener permisos 755:

    find /ruta/a/tu/wordpress -type d -exec chmod 755 {} \;
    
  3. Los archivos deben tener permisos 644:

    find /ruta/a/tu/wordpress -type f -exec chmod 644 {} \;
    

Permisos especiales para wp-config.php

El archivo wp-config.php contiene las claves de acceso a la base de datos. Lo ideal es que solo el propietario pueda leerlo y escribirlo.

chmod 600 /ruta/a/tu/wordpress/wp-config.php

[TIP] Si después de aplicar estos permisos tu web sigue dando errores, revisa que tu servidor web (Apache o Nginx) realmente use el usuario www-data. En algunos sistemas puede ser nginx, apache o daemon. Puedes verificarlo con ps aux | grep nginx o ps aux | grep apache.


Guía rápida de resolución de problemas (FAQ)

1. ¿Por qué recibo un error "Permission denied" al subir archivos por FTP?

Esto significa que tu usuario de FTP no tiene permisos de escritura sobre el directorio de destino. Solución:

chown -R tu_usuario_ftp:tu_grupo_ftp /ruta/del/directorio
chmod -R 755 /ruta/del/directorio

2. ¿Es seguro usar chmod 777 para que WordPress suba archivos?

No, jamás. Es una solución temporal que convierte tu sitio en un coladero. En su lugar, identifica el usuario del servidor web y asígnale la propiedad con chown.

3. Mi sitio muestra un error 500 después de cambiar permisos, ¿qué hice mal?

Probablemente le quitaste permisos de ejecución a los directorios. Los directorios necesitan el bit x para que el servidor pueda entrar a ellos. Verifica que tengan al menos 755.

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

Usa el comando ls -l:

ls -l mi_archivo.php

Verás algo así: -rw-r--r--. El primer carácter es el tipo (- archivo, d directorio), y los siguientes 9 caracteres son los permisos en grupos de tres (propietario, grupo, otros).

5. ¿Puedo cambiar permisos desde el panel de control de mi hosting?

Sí, la mayoría de los paneles (incluido Syspanel, que encontrarás en el puerto 2106) tienen un administrador de archivos donde puedes cambiar permisos y propietarios con un clic. Sin embargo, la línea de comandos te da mucho más control y velocidad.


Consejos finales para gestionar permisos como un profesional

  • Siempre usa el principio de menor privilegio: Dale a cada archivo solo los permisos que necesita. Si un archivo no necesita ser ejecutado, no le des el permiso x.
  • Ten cuidado con la recursividad: Usar chmod -R 777 en tu carpeta home puede ser catastrófico. Siempre especifica la ruta exacta.
  • Documenta tus cambios: Si trabajas en equipo, deja un archivo README con los permisos que usáis para que todos vayan alineados.
  • Copia de seguridad antes de tocar: Antes de hacer cambios masivos, guarda una lista de los permisos actuales con ls -lR > permisos_backup.txt. Así podrás revertir si algo sale mal.

Dominar los permisos linux con chmod y chown no es solo una habilidad técnica, es la forma de mantener tu servidor seguro y funcionando sin problemas. Con esta guía, ya tienes las bases para resolver el 90% de los problemas de acceso que puedas encontrar, ya sea en un WordPress, una aplicación a medida o simplemente organizando tus archivos.

Empieza practicando en un entorno de pruebas o en archivos que no sean críticos. En poco tiempo, estos comandos se convertirán en una parte natural de tu flujo de trabajo diario.

¿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