# Solución: Error de Permisos en data/ (Linux) ## 🔴 Error ``` [Error: EACCES: permission denied, open 'data/.db.json.tmp'] ``` ## ✅ Soluciones ### Opción 1: Dar Permisos al Directorio (Recomendado) ```bash # Ir al directorio del proyecto cd /var/www/PARKING # Crear directorio si no existe mkdir -p data # Dar permisos al usuario actual sudo chown -R $USER:$USER data chmod 755 data # Verificar permisos ls -la data ``` ### Opción 2: Usar Directorio en Home del Usuario Si prefieres usar un directorio con permisos garantizados: 1. **Crear directorio en home:** ```bash mkdir -p ~/parking-data ``` 2. **Modificar `src/db.js`** para usar una variable de entorno o cambiar la ruta: ```javascript const dbPath = process.env.DB_PATH || 'data/db.json' ``` 3. **Crear enlace simbólico:** ```bash ln -s ~/parking-data /var/www/PARKING/data ``` ### Opción 3: Ejecutar como Usuario Correcto Asegúrate de que el proceso se ejecute con el usuario correcto: ```bash # Verificar usuario actual whoami # Si necesitas cambiar propietario de todo el proyecto sudo chown -R dicomsuites:dicomsuites /var/www/PARKING ``` ## 🔍 Verificación Después de aplicar permisos: ```bash # Verificar permisos ls -la data/ # Intentar crear un archivo de prueba touch data/test.txt rm data/test.txt # Si funciona, ejecutar la aplicación npm start ``` ## 🚀 Con PM2 Si usas PM2, asegúrate de que el usuario sea correcto: ```bash # Verificar usuario de PM2 pm2 info parking-api | grep user # Si es diferente, eliminar y reiniciar pm2 delete parking-api pm2 start ecosystem.config.cjs ``` ## 📝 Nota sobre Permisos El directorio `data/` necesita permisos de escritura porque: - Lowdb crea archivos temporales (`.db.json.tmp`) antes de escribir - Necesita poder crear y eliminar estos archivos temporales