Que son los permisos de archivos en Linux
En sistemas Linux, que es el sistema operativo mas utilizado en servidores web, cada archivo y carpeta tiene permisos que determinan quien puede leer, escribir o ejecutar ese elemento. Estos permisos se aplican a tres tipos de usuarios: el propietario del archivo (owner), el grupo al que pertenece (group), y todos los demas usuarios del sistema (others).
Los permisos incorrectos son una causa frecuente de errores en sitios web, incluyendo el error 403 Forbidden (permisos muy restrictivos que impiden el acceso) o riesgos de seguridad (permisos demasiado abiertos que permiten modificaciones no autorizadas).
Estructura de los permisos numericos
Los permisos se representan con tres digitos numericos, donde cada digito es la suma de los permisos asignados:
| Permiso | Valor numerico | Simbolo | Descripcion |
|---|---|---|---|
| Lectura (Read) | 4 | r | Ver el contenido del archivo o listar la carpeta |
| Escritura (Write) | 2 | w | Modificar o eliminar el archivo o carpeta |
| Ejecucion (Execute) | 1 | x | Ejecutar el archivo o acceder a la carpeta |
Ejemplo: el permiso 755 significa:
- 7 (Propietario): 4+2+1 = Lectura + Escritura + Ejecucion
- 5 (Grupo): 4+1 = Lectura + Ejecucion
- 5 (Otros): 4+1 = Lectura + Ejecucion
Permisos recomendados para hosting web
| Tipo de elemento | Permiso correcto | Razon |
|---|---|---|
| Carpetas del sitio web | 755 | El servidor puede acceder y listar; el propietario puede modificar |
| Archivos PHP y HTML | 644 | El servidor puede leer; el propietario puede modificar; nadie mas puede escribir |
| Archivos de configuracion (wp-config.php) | 600 o 640 | Solo el propietario puede leer y escribir |
| Scripts ejecutables (.sh) | 755 | Necesitan permiso de ejecucion |
| Carpeta wp-content/uploads | 755 | El servidor necesita escribir archivos subidos |
Como cambiar permisos en cPanel
- Acceder a cPanel > Archivos > Administrador de Archivos.
- Seleccionar el archivo o carpeta cuyo permiso se desea cambiar.
- Hacer clic derecho y seleccionar Permisos o hacer clic en el icono de permisos en la barra superior.
- Ingresar el valor numerico (755, 644, etc.) o marcar las casillas correspondientes.
- Para aplicar recursivamente a todos los archivos dentro de una carpeta, marcar la opcion Recurrir a los subdirectorios.
Cambiar permisos desde la terminal (SSH)
# Cambiar permiso de una carpeta
chmod 755 /public_html/mi-carpeta
# Cambiar permiso de un archivo
chmod 644 /public_html/index.php
# Cambiar recursivamente: 755 en carpetas y 644 en archivos
find /public_html -type d -exec chmod 755 {} \;
find /public_html -type f -exec chmod 644 {} \;
