release r008 add safe read-only shell

This commit is contained in:
Mikei386
2026-08-21 07:53:34 +02:00
parent 65922b7f57
commit 6480b9678c
10 changed files with 203 additions and 21 deletions
+9 -5
View File
@@ -7,7 +7,7 @@ Kompiliertes Bun-Binary (TypeScript), läuft als SysVinit-Service auf Unraid.
- **Health-Check:** `http://<unraid-ip>:3002/health` (offen, ohne Auth)
- **Config-Server:** `http://127.0.0.1:3013/config` (localhost + separater Admin-Token)
- **Auth:** API-Key (Bearer-Token) für `/mcp`
- **Tools:** 22 (Docker: 14, Netzwerk: 6, System: 2)
- **Tools:** 23 (Docker: 14, Netzwerk: 6, System: 3)
---
@@ -43,6 +43,10 @@ Die WebGUI schützt schreibende Formulare außerdem mit einem CSRF-Token.
- Neuinstallationen starten im Profil **Nur Lesen**. Container-Steuerung,
aktive Netzwerktests, Container-Umbauten und die Root-Shell sind aus.
- Für Diagnosen steht `unraid_system_shell_readonly` bereit. Es startet nur
fest freigegebene Leseprogramme als direkte Argumentliste, niemals über
`/bin/sh`; Verkettungen, Pipes, Umleitungen und schreibende Optionen werden
dadurch verhindert. Die freie Root-Shell bleibt separat und kritisch.
- `none` bedeutet tatsächlich **keine Tools aktiv**; `all` ist ein expliziter
Vollzugriff und wird in der GUI deutlich gewarnt.
- Container-Umgebungswerte werden nie ausgegeben, nur ihre Variablennamen.
@@ -68,10 +72,10 @@ Oder manuell:
```bash
# .txz von Gitea laden
curl -O http://192.168.1.2:4000/michael/MUA-Mikes-Unraid-Agent/raw/branch/main/dist/mua-2026.08.21.r007-x86_64-1.txz
curl -O http://192.168.1.2:4000/michael/MUA-Mikes-Unraid-Agent/raw/branch/main/dist/mua-2026.08.21.r008-x86_64-1.txz
# Installieren
upgradepkg --install-new mua-2026.08.21.r007-x86_64-1.txz
upgradepkg --install-new mua-2026.08.21.r008-x86_64-1.txz
```
### 2. Service starten
@@ -86,7 +90,7 @@ Der Service startet automatisch bei jedem Boot (SysVinit).
```bash
curl http://192.168.1.2:3002/health
# → {"status":"ok","version":"2026.08.21.r007","auth":"required"}
# → {"status":"ok","version":"2026.08.21.r008","auth":"required"}
```
---
@@ -206,7 +210,7 @@ Zusätzlich kann jedes Werkzeug einzeln nach Risikostufe freigegeben werden:
|--------|-------|
| **Docker (14)** | `unraid_docker_list`, `unraid_docker_inspect`, `unraid_docker_logs`, `unraid_docker_analyze_logs`, `unraid_docker_processes`, `unraid_docker_stats`, `unraid_docker_info`, `unraid_docker_start`, `unraid_docker_stop`, `unraid_docker_restart`, `unraid_docker_create`, `unraid_docker_modify`, `unraid_docker_update`, `unraid_docker_rebuild` |
| **Netzwerk (6)** | `unraid_network_inventory`, `unraid_network_list`, `unraid_network_inspect`, `unraid_network_host_state`, `unraid_network_audit_tcp`, `unraid_network_lan_probe` |
| **System (2)** | `unraid_system_connection_test`, `unraid_system_shell` |
| **System (3)** | `unraid_system_connection_test`, `unraid_system_shell_readonly`, `unraid_system_shell` |
Deaktivierte Tools werden vom MCP-Server gefiltert — sie erscheinen nicht in
`tools/list` und können nicht aufgerufen werden (→ `ERROR: Tool disabled`).