dwscript.sh 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #!/bin/bash
  2. # Instalador automatizado DWService con cambio de usuario systemd
  3. # Compatible con Ubuntu/Debian/CentOS
  4. # ===== CONFIGURACIÓN =====
  5. DW_USER="fourier" # Cambia por el usuario que quieras usar
  6. INSTALL_DIR="/usr/share/dwagent"
  7. SERVICE_FILE="/etc/systemd/system/dwagent.service"
  8. # ===== VALIDAR PARÁMETRO =====
  9. INSTALL_CODE="$1"
  10. if [ -z "$INSTALL_CODE" ]; then
  11. echo "❌ Error: Debes especificar el código de instalación."
  12. echo "Uso: sudo $0 <CODIGO_INSTALACION>"
  13. exit 1
  14. fi
  15. echo "===> Código de instalación: $INSTALL_CODE"
  16. # ===== FUNCIONES =====
  17. set -e
  18. echo "===> Verificando que el usuario $DW_USER existe..."
  19. if ! id "$DW_USER" &>/dev/null; then
  20. echo "El usuario $DW_USER no existe. Creándolo..."
  21. sudo useradd -m -s /bin/bash "$DW_USER"
  22. fi
  23. echo "===> Descargando e instalando DWAgent..."
  24. cd /tmp
  25. wget -N https://www.dwservice.net/download/dwagent.sh
  26. chmod +x dwagent.sh
  27. echo "===> Instalando DWAgent de forma interactiva automática..."
  28. sudo bash -c "bash ./dwagent.sh <<EOF
  29. 1
  30. 1
  31. 1
  32. $INSTALL_CODE
  33. EOF"
  34. echo "===> Corrigiendo permisos del directorio $INSTALL_DIR..."
  35. sudo chown -R "$DW_USER":"$DW_USER" "$INSTALL_DIR"
  36. sudo chmod +x "$INSTALL_DIR/native/dwagsvc"
  37. echo "===> Verificando servicio systemd..."
  38. if [ ! -f "$SERVICE_FILE" ]; then
  39. echo "No se encontró el archivo $SERVICE_FILE. Abortando."
  40. exit 1
  41. fi
  42. echo "===> Creando override systemd para ejecutar como $DW_USER..."
  43. sudo mkdir -p /etc/systemd/system/dwagent.service.d
  44. sudo tee /etc/systemd/system/dwagent.service.d/override.conf >/dev/null <<EOF
  45. [Service]
  46. User=$DW_USER
  47. EOF
  48. echo "===> Recargando systemd y reiniciando el servicio..."
  49. sudo systemctl daemon-reload
  50. sudo systemctl enable dwagent
  51. sudo systemctl restart dwagent
  52. sleep 3
  53. sudo systemctl status dwagent --no-pager
  54. echo "===> Instalación completada."
  55. echo "El servicio DWAgent ahora corre bajo el usuario: $DW_USER"