Skip to main content

Cambiar permisos por SSH en Linux con bash: Guía completa con chmod y chown

Alejo Sotelo - Developer
Publicado el 09 Septiembre 2015 - Modificado el 27 Abril 2026

Cuando migrás, copiás o instalás un CMS como Joomla, PrestaShop o WordPress en un servidor Linux vía SSH, uno de los problemas más comunes es que los permisos de archivos y carpetas quedan mal configurados. Esto puede causar errores 403, fallos en la escritura de archivos, problemas con la caché o incluso vulnerabilidades de seguridad.

En esta guía vas a encontrar los comandos bash exactos para corregir permisos de forma recursiva, cambiar el propietario de archivos y configurar correctamente un entorno de servidor web.

¿Qué son los permisos en Linux y por qué importan?

En Linux, cada archivo y carpeta tiene permisos asignados para tres tipos de usuarios: el propietario, el grupo y otros. Estos permisos definen quién puede leer, escribir o ejecutar cada recurso.

Los valores más usados en servidores web son:

  • 755 para carpetas: el propietario puede leer, escribir y ejecutar; el resto solo leer y ejecutar.
  • 644 para archivos: el propietario puede leer y escribir; el resto solo leer.

Usar permisos más permisivos como 777 es un riesgo de seguridad que debe evitarse en producción.

Cuándo necesitás cambiar permisos

Los casos más comunes son:

  • Después de copiar archivos de Joomla, PrestaShop o WordPress vía SSH o FTP.
  • Al restaurar un backup desde otro servidor.
  • Cuando el servidor web (Apache o Nginx) no puede escribir en carpetas de caché o logs.
  • Al instalar un CMS por primera vez en un VPS.
  • Después de clonar un repositorio Git en producción.

Paso 1: Cambiar permisos recursivamente solo a directorios (755)

Este comando bash busca todos los directorios desde la ubicación actual y les aplica el permiso 755:

find . -type d -exec chmod 0755 {} \;

El punto . representa el directorio actual. Podés reemplazarlo por una ruta absoluta, por ejemplo:

find /home/usuario/public_html -type d -exec chmod 0755 {} \;

Paso 2: Cambiar permisos recursivamente solo a archivos (644)

Este comando bash aplica el permiso 644 a todos los archivos del directorio actual y subdirectorios:

find . -type f -exec chmod 0644 {} \;

Para una ruta específica:

find /home/usuario/public_html -type f -exec chmod 0644 {} \;

Paso 3: Cambiar el propietario con chown

Si los archivos quedaron con un propietario incorrecto (por ejemplo, root en lugar del usuario del servidor web), el CMS no va a poder escribir. Para corregirlo usás chown desde bash:

chown -R www-data:www-data /home/usuario/public_html

En servidores con Apache, el usuario suele ser www-data. En cPanel o Plesk puede variar según la configuración. Podés verificarlo ejecutando en bash:

ps aux | grep apache

O para Nginx:

ps aux | grep nginx

Permisos recomendados para Joomla, PrestaShop y WordPress

Cada CMS tiene sus propias recomendaciones:

  • Joomla: carpetas en 755, archivos en 644. La carpeta tmp y cache necesitan ser escribibles por el servidor web.
  • PrestaShop: similar a Joomla. Carpetas como var/cache, img y upload requieren escritura para el usuario web.
  • WordPress: carpetas en 755, archivos en 644. La carpeta wp-content/uploads debe ser escribible.

Errores comunes y cómo resolverlos

  • Error 403 Forbidden: la carpeta no tiene permiso de lectura o ejecución para "otros". Revisá que los directorios tengan al menos 755.
  • No puede escribir en caché: el usuario del servidor web no es el propietario. Usá chown para corregirlo.
  • Permisos 777 en producción: es inseguro. Siempre usá 755/644 y ajustá el propietario con chown.

¿Necesitás ayuda con tu servidor o tu sitio web?

Si llegaste hasta acá probablemente estés administrando un servidor Linux y gestionando un Joomla, PrestaShop o WordPress. Eso tiene su complejidad, y a veces una mala configuración de permisos o del entorno puede tirar abajo un sitio en producción.

Soy Alejo Sotelo, desarrollador web con más de 19 años trabajando con Joomla y más de 11 con PrestaShop. Ayudo a empresas y proyectos a mantener sus sitios seguros, rápidos y funcionando correctamente, incluyendo la administración de servidores VPS.

¿Qué puedo hacer por vos?

  • Migración y configuración de sitios en servidores VPS
  • Resolución de errores en Joomla, PrestaShop y WordPress
  • Mantenimiento mensual y monitoreo del servidor
  • Desarrollo de extensiones y módulos a medida
Consultame sin compromiso

Más artículos de Alejo A Sotelo - Desarrollo Web

12 Mayo 2026
Si trabajás en Linux, Mac o WSL (Windows Subsystem for Linux) y necesitás comprimir o descomprimir archivos desde la terminal, esta guía te va a salvar más de una vez. Cada formato tiene su propio comando, y es fácil confundirse…
07 Mayo 2026
Cuando migrás una tienda a Tiendanube, el trabajo no termina con pasar los productos. Quedan cientos de URLs viejas indexadas en Google que ahora dan 404, y cada una de esas páginas perdidas es autoridad SEO que se evapora. En mi…
28 Abril 2026
Desarrollé SA MCP Server, un componente open source para Joomla 3 y 4 que implementa el protocolo MCP (Model Context Protocol) y permite que asistentes de inteligencia artificial como Claude gestionen el contenido de tu sitio dir…
23 Abril 2026
Hace poco recibí el contacto de una persona cuyo sitio web en Joomla no es gestionado por mi equipo. Me contactó con urgencia: su página estaba funcionando mal, aparecían archivos extraños y temía que los datos de sus clientes es…