cotizador/PERMISOS_LINUX.md

4.5 KiB

🔧 Comandos para Permisos en Linux

Conectarse al Servidor

# 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

# 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)

# 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)

# 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)

# 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

# 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:

#!/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:

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"

# 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"

# 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

# 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)

# 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:
    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:

# Permisos más seguros para producción
chmod 750 data
chmod 640 data/*.json
# Solo si el usuario web es el propietario