# 🔧 Comandos para Permisos en Linux ## Conectarse al Servidor ```bash # SSH al servidor ssh usuario@calculos.penki.com.ar # O si tienes acceso FTP/cPanel, usa el terminal web ``` ## Navegar a la Carpeta del Proyecto ```bash # Ir a la carpeta del proyecto (ajusta la ruta según tu servidor) cd /home/usuario/public_html # o cd /var/www/html/calculos # o donde esté instalado el proyecto ``` ## Aplicar Permisos ### Opción 1: Permisos Recomendados (Más Seguro) ```bash # Permisos para la carpeta data chmod 755 data # Permisos para archivos JSON (lectura/escritura para el servidor) chmod 666 data/productos_brasil.json chmod 666 data/productos_chile.json # Verificar permisos ls -la data/ ``` ### Opción 2: Permisos Completos (Menos Seguro, pero funciona siempre) ```bash # Dar permisos completos a la carpeta data chmod 777 data # Dar permisos completos a archivos JSON chmod 666 data/*.json # Verificar ls -la data/ ``` ### Opción 3: Cambiar Propietario (Si tienes acceso root) ```bash # Cambiar propietario al usuario del servidor web # Reemplaza 'www-data' con el usuario de tu servidor (puede ser 'apache', 'nginx', etc.) sudo chown www-data:www-data data sudo chown www-data:www-data data/*.json # Luego aplicar permisos sudo chmod 755 data sudo chmod 664 data/*.json ``` ## Verificar Permisos Actuales ```bash # Ver permisos de la carpeta data ls -ld data # Ver permisos de archivos JSON ls -l data/*.json # Salida esperada: # drwxr-xr-x 2 usuario grupo 4096 Oct 6 14:00 data # -rw-rw-rw- 1 usuario grupo 801 Oct 6 14:00 productos_brasil.json # -rw-rw-rw- 1 usuario grupo 3 Oct 6 14:00 productos_chile.json ``` ## Explicación de Permisos ``` chmod 755 = rwxr-xr-x 7 (rwx) = Propietario: lectura, escritura, ejecución 5 (r-x) = Grupo: lectura, ejecución 5 (r-x) = Otros: lectura, ejecución chmod 666 = rw-rw-rw- 6 (rw-) = Propietario: lectura, escritura 6 (rw-) = Grupo: lectura, escritura 6 (rw-) = Otros: lectura, escritura chmod 777 = rwxrwxrwx (todos los permisos) ``` ## Script Automático Crea un archivo `fix_perms.sh`: ```bash #!/bin/bash # Script para corregir permisos echo "Corrigiendo permisos..." # Ir a la carpeta del proyecto cd /ruta/a/tu/proyecto # Aplicar permisos chmod 755 data chmod 666 data/productos_brasil.json chmod 666 data/productos_chile.json echo "✓ Permisos aplicados" ls -la data/ echo "Listo!" ``` Ejecutar: ```bash chmod +x fix_perms.sh ./fix_perms.sh ``` ## Verificar desde PHP Accede a: `https://calculos.penki.com.ar/fix_permissions.php` Este script PHP verificará: - ✓ Si los archivos existen - ✓ Si son legibles - ✓ Si son escribibles - ✓ Los permisos actuales ## Verificar desde PHP (check.php) Accede a: `https://calculos.penki.com.ar/check.php` Este script mostrará: - Información del servidor - Permisos de archivos - Usuario PHP - Extensiones cargadas ## Troubleshooting ### Error: "Permission denied" ```bash # Verificar propietario ls -l data/productos_brasil.json # Si el propietario es diferente al usuario web: sudo chown www-data:www-data data/*.json ``` ### Error: "No such file or directory" ```bash # Crear archivos si no existen echo "[]" > data/productos_brasil.json echo "[]" > data/productos_chile.json # Aplicar permisos chmod 666 data/*.json ``` ### Verificar Usuario del Servidor Web ```bash # Apache ps aux | grep apache # o ps aux | grep httpd # Nginx ps aux | grep nginx # El usuario aparecerá en la primera columna ``` ## Comandos Rápidos (Copy-Paste) ```bash # Todo en uno - Permisos seguros cd /ruta/a/calculos && chmod 755 data && chmod 666 data/*.json && ls -la data/ # Todo en uno - Permisos completos (si lo anterior no funciona) cd /ruta/a/calculos && chmod 777 data && chmod 666 data/*.json && ls -la data/ ``` ## Después de Aplicar Permisos 1. Accede a: `https://calculos.penki.com.ar/fix_permissions.php` 2. Verifica que todo esté en verde (✓) 3. Prueba agregar/editar un producto 4. **IMPORTANTE:** Elimina los archivos de verificación: ```bash rm fix_permissions.php rm check.php ``` ## Notas Importantes ⚠️ **Seguridad:** - `chmod 666` permite que cualquiera lea/escriba el archivo - `chmod 777` es muy inseguro, úsalo solo temporalmente - Después de verificar que funciona, considera usar `chmod 644` para los JSON ✅ **Recomendación:** - Usa `755` para carpetas - Usa `644` o `664` para archivos (si el servidor web puede escribir) - Si `644` no funciona, usa `666` temporalmente 🔒 **Producción:** ```bash # Permisos más seguros para producción chmod 750 data chmod 640 data/*.json # Solo si el usuario web es el propietario ```