| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- #!/bin/bash
- # Instalador automatizado DWService con cambio de usuario systemd
- # Compatible con Ubuntu/Debian/CentOS
- # ===== CONFIGURACIÓN =====
- DW_USER="fourier" # Cambia por el usuario que quieras usar
- INSTALL_DIR="/usr/share/dwagent"
- SERVICE_FILE="/etc/systemd/system/dwagent.service"
- # ===== VALIDAR PARÁMETRO =====
- INSTALL_CODE="$1"
- if [ -z "$INSTALL_CODE" ]; then
- echo "❌ Error: Debes especificar el código de instalación."
- echo "Uso: sudo $0 <CODIGO_INSTALACION>"
- exit 1
- fi
- echo "===> Código de instalación: $INSTALL_CODE"
- # ===== FUNCIONES =====
- set -e
- echo "===> Verificando que el usuario $DW_USER existe..."
- if ! id "$DW_USER" &>/dev/null; then
- echo "El usuario $DW_USER no existe. Creándolo..."
- sudo useradd -m -s /bin/bash "$DW_USER"
- fi
- echo "===> Descargando e instalando DWAgent..."
- cd /tmp
- wget -N https://www.dwservice.net/download/dwagent.sh
- chmod +x dwagent.sh
- echo "===> Instalando DWAgent de forma interactiva automática..."
- sudo bash -c "bash ./dwagent.sh <<EOF
- 1
- 1
- 1
- $INSTALL_CODE
- EOF"
- echo "===> Corrigiendo permisos del directorio $INSTALL_DIR..."
- sudo chown -R "$DW_USER":"$DW_USER" "$INSTALL_DIR"
- sudo chmod +x "$INSTALL_DIR/native/dwagsvc"
- echo "===> Verificando servicio systemd..."
- if [ ! -f "$SERVICE_FILE" ]; then
- echo "No se encontró el archivo $SERVICE_FILE. Abortando."
- exit 1
- fi
- echo "===> Creando override systemd para ejecutar como $DW_USER..."
- sudo mkdir -p /etc/systemd/system/dwagent.service.d
- sudo tee /etc/systemd/system/dwagent.service.d/override.conf >/dev/null <<EOF
- [Service]
- User=$DW_USER
- EOF
- echo "===> Recargando systemd y reiniciando el servicio..."
- sudo systemctl daemon-reload
- sudo systemctl enable dwagent
- sudo systemctl restart dwagent
- sleep 3
- sudo systemctl status dwagent --no-pager
- echo "===> Instalación completada."
- echo "El servicio DWAgent ahora corre bajo el usuario: $DW_USER"
|