dwscript.sh 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  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. sudo ./dwagent.sh -silent key="$INSTALL_CODE" || {
  28. echo "Error durante la instalación del agente."
  29. exit 1
  30. }
  31. echo "===> Corrigiendo permisos del directorio $INSTALL_DIR..."
  32. sudo chown -R "$DW_USER":"$DW_USER" "$INSTALL_DIR"
  33. sudo chmod +x "$INSTALL_DIR/native/dwagsvc"
  34. echo "===> Verificando servicio systemd..."
  35. if [ ! -f "$SERVICE_FILE" ]; then
  36. echo "No se encontró el archivo $SERVICE_FILE. Abortando."
  37. exit 1
  38. fi
  39. echo "===> Creando override systemd para ejecutar como $DW_USER..."
  40. sudo mkdir -p /etc/systemd/system/dwagent.service.d
  41. sudo tee /etc/systemd/system/dwagent.service.d/override.conf >/dev/null <<EOF
  42. [Service]
  43. User=$DW_USER
  44. EOF
  45. echo "===> Recargando systemd y reiniciando el servicio..."
  46. sudo systemctl daemon-reload
  47. sudo systemctl enable dwagent
  48. sudo systemctl restart dwagent
  49. sleep 3
  50. sudo systemctl status dwagent --no-pager
  51. echo "===> Instalación completada."
  52. echo "El servicio DWAgent ahora corre bajo el usuario: $DW_USER"