Docs

Usuarios, roles y acceso

En el juego (ACE)

En el juego no hay usuario ni contraseña: el rol sale de ACE o del grupo de tu framework. Ejemplos para server.cfg:

# Propietario: solo por ACE, nunca por grupo del framework
add_ace identifier.license:TU_LICENSE guardian.role.owner allow

# Un grupo entero
add_ace group.admin guardian.role.admin allow
add_ace group.mod guardian.role.moderator allow
add_principal identifier.license:LICENSE_DE_ALGUIEN group.mod

Opcionalmente, los grupos del framework se traducen a roles en ServerConfig.Roles.FrameworkGroups (por defecto superadmin y god son administrador y admin es moderador). En Qbox los grupos son principales ACE (group.<nombre>), así que el ejemplo anterior ya sirve.

Rol Qué puede hacer
owner Todo, incluida la gestión de cuentas del panel web y el globo terráqueo (view.geo)
admin Ver todo, sancionar, desbanear, capturas, CCTV y vídeo, escucha de voz (cctv.listen), vigilancia, revisar casos, cambiar modos de detección
moderator Ver, avisar, expulsar, notas, observar, vigilancia, revisar casos
viewer Solo lectura (resumen, jugadores, detecciones, baneos)

Los permisos de cada rol se editan en ServerConfig.Roles.Permissions; la sección "Roles y accesos" del panel muestra la tabla completa. El permiso exempt deja al staff fuera de las detecciones: quítaselo a un rol si quieres que también se le vigile.

Panel web: crear un usuario paso a paso

El panel web viene desactivado. Mientras lo esté, http://IP_DEL_SERVIDOR:30120/guardian/ muestra un texto que explica cómo activarlo.

  1. En config/server.lua pon ServerConfig.WebPanel.Enabled = true y reinicia Guardian (ensure guardian).
  2. En la consola del servidor (la ventana del FXServer o la consola de txAdmin, no la F8 del juego) escribe:
    guardian_panel create nombre_de_usuario owner
    El rol puede ser owner, admin, moderator o viewer. La consola muestra una contraseña aleatoria una sola vez: cópiala entera, sin espacios.
  3. Abre http://IP_DEL_SERVIDOR:30120/guardian/ (en el mismo PC del servidor, http://localhost:30120/guardian/) y entra con ese usuario y esa contraseña.
  4. El panel te obliga a cambiar la contraseña (mínimo PasswordMinLength, 12 caracteres).
  5. Recomendado: activa la verificación en dos pasos en "Roles y accesos > Mi seguridad" con una app como Google Authenticator, Aegis o Authy, y guarda los códigos de recuperación (cada uno sirve una vez). Con RequireTwoFactor = true es obligatoria para todos.
  6. Repite el paso 2 para cada miembro del staff con su rol. El propietario también puede crear cuentas desde "Roles y accesos > Cuentas del panel web".

Si alguien olvida la contraseña: guardian_panel reset nombre_de_usuario genera otra (y desbloquea la cuenta). Si pierde el móvil de la 2FA y los códigos: guardian_panel disable2fa nombre_de_usuario. Tras MaxFailedLogins intentos fallidos la cuenta se bloquea LockoutMinutes minutos.

Recomendado en producción: sirve el panel por HTTPS detrás de un proxy inverso tuyo y activa TrustProxy (con su IP en TrustedProxies) y SecureCookie.

Seguridad del panel web: contraseñas con bcrypt (natives del servidor) o PBKDF2-HMAC-SHA256, bloqueo por intentos, límite de peticiones por IP, sesión en cookie HttpOnly; SameSite=Strict ligada a la IP, token CSRF en cada petición, cabeceras de seguridad y CSP sin scripts ni estilos en línea. Cada acceso, fallo y cambio queda en la auditoría.