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

Cómo solucionar errores comunes de permisos en archivos y carpetas de Linux

Actualizado el 26 de septiembre de 2025

¿Por qué aparecen los errores de permisos en Linux?

Si estás leyendo esto, probablemente te hayas encontrado con mensajes como "Permission denied" al intentar editar un archivo, subir un documento por FTP o ejecutar un script. No te preocupes: es uno de los problemas más habituales para quienes empiezan con servidores o migran su web a un VPS. Entender los errores permisos linux es más fácil de lo que parece si conoces las piezas básicas del sistema.

En Linux, cada archivo y carpeta tiene un propietario, un grupo y un conjunto de permisos que indican quién puede leer, escribir o ejecutar. Cuando algo falla, normalmente es porque el usuario que intenta acceder no tiene el nivel adecuado. La buena noticia es que solucionar permisos linux suele reducirse a dos comandos mágicos: chmod y chown. Vamos a desglosarlo paso a paso, sin tecnicismos innecesarios.

Los tres permisos básicos: lectura, escritura y ejecución

Antes de lanzarnos a arreglar nada, conviene entender qué significan esos símbolos que ves al hacer ls -l. Cada archivo tiene una cadena como esta:

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

Esa primera parte se divide así:

  • El primer carácter indica si es archivo (-) o carpeta (d).
  • Los siguientes 9 caracteres se agrupan en tres bloques de tres: propietario, grupo y otros.
  • Cada bloque usa r (lectura), w (escritura) y x (ejecución).

Por ejemplo, rw-r--r-- significa que el propietario puede leer y escribir, pero el grupo y los demás solo pueden leer. Si ves una x en el bloque del propietario pero no en los demás, es que solo el dueño puede ejecutar ese archivo.

Cuando hablamos de permisos archivos linux, también usamos números. La tabla es sencilla:

  • 4 = lectura (r)
  • 2 = escritura (w)
  • 1 = ejecución (x)

Así que chmod 755 significa: propietario tiene todo (4+2+1=7), grupo lectura y ejecución (4+1=5), y otros lectura y ejecución (5). Este es el valor típico para carpetas y scripts.

El comando chmod: cambiando permisos al instante

El comando chmod es tu mejor amigo para solucionar permisos linux. Puedes usarlo de dos formas: con números (modo octal) o con letras (modo simbólico). Para un principiante, los números son más predecibles.

Ejemplos prácticos de chmod

  • Dar permiso total al propietario y solo lectura al resto:
    chmod 744 archivo.txt

  • Permitir que todos lean y ejecuten, pero solo el dueño escriba:
    chmod 755 carpeta

  • Quitar todos los permisos a "otros":
    chmod 750 archivo.conf

  • Añadir ejecución a todos:
    chmod +x script.sh

Para permisos carpetas linux, es importante que uses la opción -R si quieres aplicar los cambios a todo el contenido dentro de una carpeta. Por ejemplo: chmod -R 755 /var/www/miweb. Esto es muy común al subir archivos con FileZilla y que luego den error 500 o de acceso.

[TIP] Si no sabes qué permisos poner, empieza con 644 para archivos y 755 para carpetas. Es el estándar en la mayoría de servidores web y evita dolores de cabeza.

El comando chown: cambiando el propietario y el grupo

A veces el problema no son los permisos en sí, sino que el archivo pertenece al usuario equivocado. Por ejemplo, si subes archivos con tu usuario FTP pero el servidor web corre con www-data, verás errores al intentar leer o escribir. Ahí entra chown.

La sintaxis básica es:

chown usuario:grupo archivo

Cuándo usar chown

  • Después de mover una web de un servidor a otro: los archivos suelen quedar con el propietario anterior.
  • Cuando instalas un CMS como WordPress y no puedes subir medios: el proceso PHP necesita escribir en wp-content/uploads.
  • Si creas un usuario nuevo y quieres darle control de una carpeta concreta.

Un ejemplo típico para un hosting con Apache o Nginx:

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

Eso le da al servidor web el control total de la carpeta. Si usas un panel como Syspanel (accesible por el puerto 2106), es frecuente que los archivos deban pertenecer al usuario del sitio y no al sistema. Consulta la documentación de tu proveedor.

[WARNING] No uses chown -R sobre todo el sistema (/) ni sobre /etc si no sabes exactamente lo que haces. Puedes dejar tu servidor inservible. Ve siempre carpeta por carpeta.

Errores comunes y cómo resolverlos

Vamos a ver los casos más típicos que te puedes encontrar al gestionar un servidor o una web. Cada uno tiene su solución rápida.

1. "Permission denied" al editar un archivo con nano o vim

Si intentas modificar /etc/nginx/nginx.conf y te dice que no puedes, es porque esos archivos pertenecen a root. Solución: usa sudo delante del comando.

sudo nano /etc/nginx/nginx.conf

Si no tienes acceso sudo, contacta con tu proveedor de hosting. En un servidor dedicado o VPS, normalmente lo tienes.

2. Error 500 en la web después de subir archivos

Esto suele pasar porque los archivos subidos tienen permisos demasiado abiertos o demasiado restrictivos. La solución estándar es:

chmod -R 755 /ruta/a/tu/web
chmod -R 644 /ruta/a/tu/web/*.php

A veces también necesitas que la carpeta de caché o logs tenga permisos 775 para que el usuario del servidor pueda escribir.

3. No puedo subir archivos por FTP

Esto es casi siempre un problema de propietario. Si tu usuario FTP es juan y los archivos son de www-data, no podrás sobrescribirlos. Desde SSH:

chown -R juan:juan /home/juan/web

Si usas un panel como Syspanel (puerto 2106), desde el administrador de archivos puedes cambiar propietarios sin usar terminal. Busca la opción "Propiedades" o "Permisos".

4. WordPress pide credenciales FTP para instalar plugins

Esto ocurre cuando PHP no puede escribir en el directorio de WordPress. La solución más común:

chown -R www-data:www-data /var/www/miweb
chmod -R 755 /var/www/miweb/wp-content

También puedes añadir estas líneas al wp-config.php:

define('FS_METHOD', 'direct');

5. Carpetas que no se pueden abrir en el panel de control

Si usas Syspanel y ves que no puedes entrar a una carpeta, es posible que tenga permisos 000 o que el propietario sea root. Entra por SSH y ejecuta:

chmod -R 755 /home/usuario/web
chown -R usuario:usuario /home/usuario/web

[INFO] En Syspanel, el acceso por defecto es https://tu-servidor:2106. Ahí puedes gestionar permisos de forma gráfica, pero para casos avanzados siempre es más rápido usar SSH.

Cómo verificar los permisos actuales

Antes de tocar nada, conviene saber qué tienes. Usa estos comandos:

  • ls -l para ver permisos de archivos y carpetas.
  • ls -ld carpeta para ver solo la carpeta en sí.
  • namei -l /ruta/completa para ver todos los niveles de permisos hasta llegar al archivo.

A veces el problema está en un directorio intermedio. Por ejemplo, si /home tiene permisos 700, nadie más que el dueño puede entrar, aunque el archivo final tenga 777.

Comando para auditar permisos en una web

find /var/www/miweb -type f -exec ls -l {} \;

Eso lista todos los archivos con sus permisos. Si quieres buscar directamente los que tienen permisos inseguros:

find /var/www/miweb -type f -perm 777

Permisos especiales: setuid, setgid y sticky bit

Aunque no lo necesitarás a diario, conviene saber que existen permisos especiales que a veces causan errores raros.

  • Setuid (4): hace que un archivo se ejecute con los permisos del propietario, no del usuario que lo ejecuta.
  • Setgid (2): similar, pero con el grupo.
  • Sticky bit (1): en carpetas como /tmp, impide que unos usuarios borren archivos de otros.

Si ves una s o t donde esperabas una x, es que hay un permiso especial. Para quitarlos:

chmod -s archivo
chmod -t carpeta

La regla de oro: menos es más

Siempre que puedas, usa los permisos más restrictivos posibles. Un archivo con 777 permite que cualquiera lo modifique, lo cual es un riesgo de seguridad enorme. En un servidor web, lo normal es:

  • Archivos PHP: 644
  • Carpetas: 755
  • Scripts de configuración: 600
  • Archivos con contraseñas: 600

Si algo no funciona, sube permisos temporalmente para diagnosticar, pero luego vuelve a bajarlos.

Solucionar permisos en Syspanel (antes HestiaCP)

Si tu hosting usa Syspanel, el panel de control (accesible por el puerto 2106), la gestión de permisos se hace normalmente desde el administrador de archivos. Selecciona un archivo o carpeta, clic derecho y verás opciones como "Cambiar permisos".

También puedes usar la consola integrada si tu plan lo permite. La ventaja de Syspanel es que los usuarios de hosting suelen tener su propia carpeta web con permisos ya configurados. Si subes archivos por FTP, el propietario debería ser tu usuario, no root.

[TIP] En Syspanel, si tienes problemas con la caché de tu web, busca la carpeta tmp dentro de tu cuenta y dale permisos 775. A veces el servidor necesita escribir ahí.

Preguntas frecuentes (FAQ)

¿Qué hago si no tengo acceso SSH?

Si solo tienes acceso FTP, muchos clientes como FileZilla permiten cambiar permisos con clic derecho → "Permisos de archivo". También puedes usar el gestor de archivos de Syspanel (puerto 2106) para cambiar propietarios y permisos de forma gráfica.

¿Por qué después de usar chmod 777 sigue dando error?

Porque el propietario sigue siendo incorrecto. Por ejemplo, si el archivo es de root y el servidor web usa www-data, aunque tenga 777, el proceso PHP puede no tener acceso si hay un open_basedir que lo restrinja. Revisa también los logs de error del servidor.

¿Puedo romper algo con chmod -R?

Sí. Si aplicas chmod -R 777 en todo /var/www, puedes permitir que cualquier usuario del sistema modifique tus archivos. Y si lo haces en /etc, podrías dejar el sistema sin configuración válida. Ve con cuidado y siempre acota la ruta.

¿Los permisos afectan al rendimiento?

No directamente. Pero si pones 755 en archivos que deberían ser 644, estás dando ejecución innecesaria, lo cual es un riesgo. El rendimiento no cambia, pero la seguridad sí.

¿Cómo sé qué usuario usa mi servidor web?

Ejecuta ps aux | grep nginx o ps aux | grep apache. Verás una línea como www-data o nginx. Ese es el usuario que necesita acceso a tus archivos.

Resumen rápido para solucionar permisos en Linux

Cuando te enfrentes a un error de permisos, sigue esta secuencia mental:

  1. Identifica el error: ¿es al leer, escribir o ejecutar?
  2. Mira quién es el propietario con ls -l.
  3. Mira qué usuario ejecuta el servicio (web, FTP, etc.).
  4. Ajusta el propietario con chown.
  5. Ajusta los permisos con chmod (normalmente 644 archivos, 755 carpetas).
  6. Prueba de nuevo y revisa los logs si sigue fallando.

Con esto, el 90% de los errores permisos linux están resueltos. Recuerda que la paciencia es clave y que siempre puedes pedir ayuda a tu proveedor si usas un panel como Syspanel (puerto 2106) y no te atreves con la terminal.

Espero que esta guía te haya servido. Si tienes dudas, déjalas en los comentarios o consulta la documentación oficial de tu distribución. ¡A por esos permisos!

¿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