Permisos de archivos y carpetas: 644, 755 y por qué nunca 777
En un sitio web los archivos van en 644 y las carpetas en 755. Eso alcanza para que el servidor los lea y los muestre, y para que nadie más pueda escribirlos. El 777 —que todo el mundo pueda leer, escribir y ejecutar— es lo que sugieren muchos tutoriales para salir del paso y es la puerta de entrada favorita de quien sube un archivo malicioso: cualquier proceso del servidor puede dejar algo ahí. Los errores 403 y varios 500 son casi siempre un permiso mal puesto.
Qué dicen los números
Cada archivo tiene tres permisos —leer, escribir y ejecutar— para tres grupos: el dueño, el grupo y el resto del mundo. Cada permiso vale un número: leer 4, escribir 2, ejecutar 1. La suma da el dígito de cada grupo.
| Valor | Qué permite | Dónde se usa |
|---|---|---|
644 | El dueño lee y escribe; el resto solo lee. | Archivos del sitio: .php, .html, imágenes. |
755 | El dueño lee, escribe y entra; el resto lee y entra. | Carpetas. |
600 | Solo el dueño, y nadie más. | Archivos con contraseñas, como wp-config.php. |
777 | Cualquiera lee, escribe y ejecuta. | Ninguno. Nunca. |
En carpetas, el permiso de ejecutar significa poder entrar a la carpeta: sin él, el servidor no puede llegar a los archivos de adentro.
Corregirlos en masa
Cuando un sitio quedó con permisos desparejos —típico después de una migración—, se arreglan de una vez separando archivos de carpetas. Desde la consola del VPS, parado en la carpeta del sitio:
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;Y después, los archivos que guardan credenciales, más cerrados todavía:
chmod 600 wp-config.phpEl dueño importa tanto como el permiso
Un permiso correcto con el dueño equivocado no sirve. Si subís archivos como root a un sitio que corre con otro usuario, el sitio no va a poder escribir ahí aunque el número esté bien.
En un VPS con DirectAdmin, todo lo que hay dentro de la cuenta tiene que pertenecer a su usuario:
chown -R usuario:usuario /home/usuario/domains/tudominio.com/public_htmlLos errores que produce un permiso mal puesto
| Error | Causa habitual |
|---|---|
| 403 Forbidden | La carpeta no tiene permiso de entrada (755) o falta el archivo índice. |
| 500 Internal Server Error | Un .htaccess o un script con permisos de escritura para todos: Apache se niega a usarlos. |
| El sitio no puede subir imágenes | La carpeta de subidas no es escribible por el usuario del sitio. |
| Cambios que no se guardan | El proceso web no puede escribir el archivo de configuración. |
Antes de aflojar un permiso para que algo funcione, revisá el dueño: nueve de cada diez veces el problema es ese.
Proteger una carpeta con contraseña
Para una carpeta que no tiene que ser pública —un entorno de pruebas, una carpeta de descargas internas— el panel ofrece protección con usuario y contraseña. Es el aviso que pide el navegador antes de mostrar nada, y funciona incluso si la aplicación de adentro no tiene control de acceso propio.
No reemplaza a la seguridad de la aplicación, pero suma una puerta más y deja afuera a los robots que buscan instalaciones a medio terminar.
Preguntas frecuentes
Un tutorial me dice que ponga 777 para que funcione
Es el atajo que evita entender el problema real, que casi siempre es el dueño del archivo. Con 777 cualquier proceso del servidor puede escribir ahí, incluido un script subido por alguien más. Corregí el dueño con chown y dejá 644 y 755.
¿Qué permisos necesita WordPress?
Los mismos: 644 en archivos y 755 en carpetas, con wp-config.php en 600. La carpeta wp-content/uploads necesita pertenecer al usuario del sitio para que se puedan subir imágenes, pero no necesita 777.
Cambié los permisos y ahora tengo un 500
Fijate en el .htaccess: si quedó con permiso de escritura para todos, Apache lo rechaza y devuelve 500. Dejalo en 644.
¿Cómo veo los permisos actuales?
Con ls -l en la consola, o en el Administrador de archivos del panel, que los muestra en una columna. El primer carácter indica si es carpeta (d) o archivo (-).
¿Esto aplica a un VPS o a un hosting?
A los dos. En hosting compartido lo hacés desde el panel y en un VPS desde la consola, pero los números y la lógica son los mismos.
Seguí leyendo
Cuentas FTP en DirectAdmin y los errores más comunes de FileZilla
Crear una cuenta FTP con acceso limitado a una carpeta, conectarte con FileZilla por FTP sobre TLS y resolver los errores 530, 425 y de certificado.
Firewall y fail2ban en tu VPS con ufw o firewalld
Cómo activar ufw o firewalld sin quedarte afuera de tu VPS, qué puertos abrir y cómo frenar con fail2ban los intentos de entrar por SSH.
Dominio, hosting y DNS: qué es cada cosa y cómo se conectan
La diferencia entre el nombre, el lugar donde viven los archivos y el sistema que los une, explicada sin vueltas y con lo que se contrata en cada caso.