219 lines
4.5 KiB
Markdown
219 lines
4.5 KiB
Markdown
# 🔧 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
|
|
```
|