# 🔧 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
```
