Instalación y operación

Instalar PoisonZero: referencia completa

PoisonZero instala en cada dispositivo un pequeño daemon que vigila localmente los archivos de memoria de tus agentes. Esta página documenta el instalador de principio a fin: los comandos de instalación rápida, cada variable de entorno, el directorio de datos por sistema operativo, el servicio que ejecuta el daemon y cómo desplegarlo de forma desatendida.

~9 min de lectura · Instalación y operación

Resumen

Lo que hace el instalador, en orden:

  • Descarga el binario del daemon correspondiente desde https://poisonzero.com/dl/latest (Linux/macOS/Windows, amd64 o arm64).
  • Verifica su suma de comprobación SHA-256 contra el archivo SHA256SUMS publicado; aborta ante cualquier discrepancia.
  • Instala un servicio privilegiado y, opcionalmente, inscribe el dispositivo con una clave de instalación del panel.
Instalar el servicio requiere permisos elevados: root (sudo) en Linux/macOS, una PowerShell de Administrador en Windows. Usa PZ_FETCH_ONLY=1 para solo descargar y verificar.

Requisitos comprobados antes de instalar:

  • x86-64: AVX2 (Intel Haswell/2013+, AMD Zen+).
  • ARM64: i8mm (Apple M2+; Apple M1 no compatible).
  • Windows: directorio de datos en un volumen NTFS.

Instalación rápida

Crea una clave de instalación en el panel (o usa un código heredado por dispositivo) y ejecuta el comando para tu plataforma:

bashTerminal
curl -fsSL https://poisonzero.com/install.sh | sudo \
  PZ_ENROLL_CODE="tu-codigo" sh
powershellPowerShell
$env:PZ_ENROLL_CODE="tu-codigo"
irm https://poisonzero.com/install.ps1 | iex
  • Sin código predefinido: el instalador pide la clave de instalación (más las opciones de aceleración/nivel y headless en una terminal real); solo pide un app ID para el procedimiento heredado por dispositivo.
  • Una clave de instalación es de uso múltiple hasta su límite de canjes; un código heredado por dispositivo sigue siendo de un solo uso.
  • Ya inscrito y reejecutado sin código nuevo = actualización: reemplaza el binario, reinicia el servicio, conserva tus credenciales.
Las actualizaciones se ejecutan automáticamente. Instala una vez por dispositivo; reejecuta solo para cambiar la inscripción o forzar un reemplazo del binario.

Claves de instalación

Crea una clave de instalación en el panel, en Claves de instalación. Es la forma recomendada de enrolar dispositivos:

  • De uso múltiple: una clave enrola dispositivos hasta el límite de canjes que fijas al crearla; cada enrolamiento cuenta contra ese límite.
  • Se muestra una sola vez: cópiala al crearla - el panel no vuelve a mostrarla después.
  • Revocable: revócala en el panel para detener de inmediato más canjes; los dispositivos ya enrolados siguen funcionando.
  • Sin app ID necesario: el backend asigna a cada dispositivo su identidad en el momento del canje.
El procedimiento heredado, crear un dispositivo en el panel para obtener un app ID a juego y un código de un solo uso, sigue funcionando sin cambios. Úsalo para instaladores más antiguos o integraciones ya construidas en torno a él.

Variables de entorno

Fija cualquier opción mediante una variable de entorno para ejecutar la instalación de forma no interactiva:

VariableValoresPor defectoEfecto
PZ_ENROLL_CODEclave de instalaciónningunoLa clave de instalación del panel. Requerida para un enrolamiento nuevo; sola basta, porque el backend asigna la identidad del dispositivo. Pasar una clave nueva en un dispositivo ya inscrito fuerza una reinscripción deliberada.
PZ_APP_IDApp IDningunoHeredada y opcional: solo hace falta junto con un código por dispositivo más antiguo, generado antes de las claves de instalación. Se ignora sola.
PZ_HEADLESSnone, standard, strictnoneFija la gestión de las solicitudes de confirmación del usuario en una máquina sin usuario de escritorio. none autodetecta a partir del usuario conectado; standard/strict escriben un archivo headlessmode que el daemon lee.
PZ_BACKENDcpu, gpucpuBackend de aceleración. Solo CPU es el valor por defecto recomendado y más seguro. La GPU es opcional y muestra un aviso de seguridad; el motor de GPU aún no está publicado.
PZ_TIERenterprise, ultraenterpriseNivel de producto. ultra implica GPU y es fail-closed sin retorno a CPU; enterprise con GPU recae en una instalación de solo CPU que funciona.
PZ_FETCH_ONLY1sin definirSolo descarga y verifica el binario, luego sale. No se instala ningún servicio, así que no hacen falta permisos elevados.
PZ_FETCH_DESTruta./poisonzero (.\poisonzero.exe en Windows)Ruta de destino del binario verificado cuando PZ_FETCH_ONLY=1.
PZ_SETUP_AGENTSlista separada por comas, p. ej. claude,codexsin definirConecta el comando local de estadísticas /poisonzero en los agentes indicados (Claude Code, Codex, Gemini, Cursor). Totalmente local, por adhesión.
PZ_SETUP_STATUSLINE1sin definirAñade la línea de estado de PoisonZero en Claude Code (~/.claude/settings.json). Una línea de estado existente nunca se reemplaza.
PZ_DRY_RUN1sin definirImprime el modo resuelto (fresh/re-enroll/upgrade) y sale antes de cualquier efecto secundario. Útil para probar la automatización.
POISONZERO_DATA_DIRrutavalor por defecto según el SO (ver abajo)Sobrescribe el directorio de datos que usan el daemon y el instalador.
Linux/macOS también aceptan una opción --headless none|standard|strict (gana sobre PZ_HEADLESS); el script de despliegue de Windows toma -Headless.

Directorio de datos y archivos

Binario: /usr/local/bin/poisonzero (Linux/macOS), <ProgramFiles>\PoisonZero\poisonzero.exe (Windows). Directorio de datos por SO:

SODirectorio de datosPropietario
Linux/var/lib/poisonzero (archivo enroll en /etc/poisonzero/enroll)poisonzero:poisonzero
macOS/Library/Application Support/PoisonZeroroot:wheel
Windows<ProgramData>\PoisonZeroSYSTEM / Administradores

Archivos dentro del directorio de datos:

  • credentials - token almacenado del dispositivo; su presencia marca el dispositivo como inscrito y nunca se sobrescribe en una actualización.
  • enroll - entrada de inscripción de un solo uso (la clave de instalación, más appId en el procedimiento heredado) que consume poisonzero enroll en el primer arranque.
  • headlessmode - presente solo cuando se fijó standard/strict; ausente o vacío = autodetección.
  • vault/ - almacén de cuarentena para el contenido revertido.

Servicio / daemon

Se ejecuta como un servicio en segundo plano privilegiado, un mecanismo por SO:

SOTipoNombre y comando de estado
Linuxunidad systemd (root)poisonzero.service · systemctl status poisonzero
macOSLaunchDaemon de launchdcom.poisonzero.daemon · launchctl print system/com.poisonzero.daemon
WindowsTarea programada (SYSTEM, al arrancar)PoisonZero · Get-ScheduledTask -TaskName PoisonZero
  • Windows usa una tarea programada, no un servicio de Windows: el binario de Go carga su modelo en el primer arranque y perdería el tiempo de espera de arranque del Service Control Manager.
  • Un notificador de escritorio se ejecuta en cada sesión de usuario para la solicitud de confirmación del usuario: autoarranque XDG (Linux), LaunchAgent por usuario (macOS), envoltorio VBS vía clave Run (Windows).

Instalación desatendida (Intune / SCCM)

Define la clave de instalación en el entorno y luego ejecuta la misma línea; con el código presente y sin terminal, se ejecuta sin avisos:

bashDesatendida
PZ_ENROLL_CODE="tu-codigo" \
  sh -c "$(curl -fsSL https://poisonzero.com/install.sh)"
powershellDesatendida
$env:PZ_ENROLL_CODE="tu-codigo"
irm https://poisonzero.com/install.ps1 | iex
Añade PZ_DRY_RUN=1 para imprimir el modo resuelto (fresh/re-enroll/upgrade) y salir antes de cualquier cambio.

Solo descargar y verificar

PZ_FETCH_ONLY=1 descarga el binario, verifica su suma de comprobación SHA-256 y lo escribe en disco sin instalar un servicio (sin permisos elevados):

bashSolo descargar
curl -fsSL https://poisonzero.com/install.sh | PZ_FETCH_ONLY=1 sh
# escribe ./poisonzero (sobrescribir con PZ_FETCH_DEST)
powershellSolo descargar
$env:PZ_FETCH_ONLY="1"; irm https://poisonzero.com/install.ps1 | iex
# escribe .\poisonzero.exe (sobrescribir con $env:PZ_FETCH_DEST)
La verificación de la suma de comprobación es obligatoria en cada ruta; una descarga manipulada o truncada nunca se instala.

Verificar el dispositivo

  1. Comprueba que el servicio está en marcha con el comando de estado para tu SO (tabla de arriba).
  2. Abre el panel: el dispositivo inscrito aparece con su estado en tu lista de dispositivos.
  3. Para pasar un dispositivo a una clave de instalación nueva, reejecuta el instalador con una nueva PZ_ENROLL_CODE - se reinscribe limpiamente.

Desinstalar

Detén el servicio, luego elimina el binario y el directorio de datos:

bashDesinstalar
sudo systemctl disable --now poisonzero.service
sudo rm -f /usr/local/bin/poisonzero
sudo rm -rf /var/lib/poisonzero /etc/poisonzero
bashDesinstalar
sudo launchctl bootout system /Library/LaunchDaemons/com.poisonzero.daemon.plist
sudo rm -f /Library/LaunchDaemons/com.poisonzero.daemon.plist /usr/local/bin/poisonzero
sudo rm -rf "/Library/Application Support/PoisonZero"
powershellDesinstalar
Unregister-ScheduledTask -TaskName PoisonZero -Confirm:$false
icacls "$env:ProgramFiles\PoisonZero\poisonzero.exe" /reset
Remove-Item -Recurse -Force "$env:ProgramFiles\PoisonZero", "$env:ProgramData\PoisonZero"
¿Pausar en vez de desinstalar? La protección es fail-closed por diseño, así que quitar el servicio es la forma limpia de detenerla por completo.
¿Te resultó útil?

Protege cada dispositivo con un solo comando.

Gratis para Linux, macOS y Windows. Instala una vez, las actualizaciones se ejecutan automáticamente.

Sign me up