10-user-provisioning-and-admin-ops.md (2708B)
1 # Provisionamento de utilizadores e operações admin 2 3 [← Índice](README.md) 4 5 ## Fonte canónica: `scripts/admin/create_runv_user.py` 6 7 - **Único** script de criação de **membros** com a política completa (docstring longa no ficheiro): `adduser`, chaves, `public_html` / gopher / gemini, permissões, jail (Jailkit), quota, metadados em `users.json`. 8 - Executar como **root** no servidor Debian. 9 10 ## Pós-criação: landing pública e constelação 11 12 - **`genlanding.py` completo** continua necessário para a **primeira** montagem do site (VirtualHost Apache, módulos, cópia inicial). Não é preciso repetir esse fluxo **a cada** novo membro. 13 - Flag **`--landing-document-root`** (default `/var/www/runv.club/html`): se o directório **existir**, após gravar `users.json` o script invoca **`site/genlanding.py --sync-public-only`** — recopia `site/public/` para o DocumentRoot, aplica `chown` a `www-data` e regenera `data/members.json` via `build_directory.py` interno ao genlanding. 14 - **`--no-refresh-landing-members`:** omite toda essa sincronização (nem cópia de `public/` nem `members.json`). 15 - Saída para o operador: linha **`landing (public + bolhas): sincronizado`** com contagem opcional, ou **AVISO** com comando manual (`genlanding.py --sync-public-only …`) se o DocumentRoot não existir ou o subprocess falhar. 16 17 ## Outros scripts admin 18 19 | Script | Uso | 20 |--------|-----| 21 | `update_user.py` | Actualizar metadados / quota / estado (`users.json` com lock) | 22 | `del-user.py` | Remover utilizador e metadados | 23 | `setup_alt_protocols.py` | Reparar protocolos para contas criadas fora do fluxo | 24 | `scripts/doom/doom.py` | **Perigoso:** remove contas em massa; só testes / com backup | 25 26 ## Fluxo de aprovação 27 28 1. JSON na fila `entre-queue/`. 29 2. Admin valida manualmente. 30 3. `create_runv_user.py` com dados aprovados, manualmente ou por `request_id` da fila. 31 4. Refresh público conforme [07](07-public-members-directory.md). 32 33 ### Aprovação rápida por `request_id` 34 35 Se o pedido veio do fluxo `entre`, o admin pode aprová-lo diretamente pelo UUID do ficheiro na fila: 36 37 ```bash 38 sudo python3 scripts/admin/create_runv_user.py --request-id UUID 39 ``` 40 41 O script lê `username`, `email` e `public_key` do JSON em `/var/lib/runv/entre-queue/UUID.json`, cria a conta e arquiva o pedido em `entre-queue/approved/` após sucesso. 42 43 ### Aprovação em lote da fila inteira 44 45 Para processar todos os pedidos pendentes de uma vez: 46 47 ```bash 48 sudo python3 scripts/admin/create_runv_user.py --all-pending 49 ``` 50 51 O script percorre os JSONs pendentes da fila, processa um a um em sequência e imprime um resumo final com sucessos e falhas. 52 53 Próximo: [11-daily-operations.md](11-daily-operations.md).