Hermes-Terminal same-origin + Passwort-Login; Engine/OS-Update-Fixes
Terminals (wie die Box-Konsole): - hermes-terminal bindet jetzt NUR Loopback (--interface lo --base-path /hermes-terminal) und wird von MC2 same-origin durchgereicht (routers/console.py generalisiert auf beide ttyd-Instanzen). Kein eigener Firewall-Port mehr noetig. - Beide Terminals starten die Shell/CLI ueber `su - hitonabi` → fragen beim Oeffnen das Box-Passwort ab (PAM gegen das echte Konto, nichts gespeichert). „Login mit sudo-PW". - agent_status.terminal_url = /hermes-terminal/ (+ reachable via Loopback-Check). Engine-Update (llama.cpp) — Fix „nicht moeglich": - update-engine.sh/update-swap.sh sind per sudoers NOPASSWD freigegeben → das fruehere `sudo true`-Passwort-Gate hat sie faelschlich blockiert (wenn kein/falsches Box-PW). Gate entfernt → Engine-/Router-Update laufen jetzt passwortlos. OS-Update (apt) — Fix „nicht moeglich": - DEBIAN_FRONTEND wird jetzt INNERHALB `sudo bash -c '…'` gesetzt statt `sudo VAR=… cmd` (sonst lehnt sudos env-Policy die Variable ab und das Upgrade bricht ab). - Frontend verschluckt password_required/incorrect_password nicht mehr still, sondern zeigt einen klaren Hinweis (Box-Passwort in „Box-Zugang" setzen/pruefen). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -158,10 +158,29 @@ export function SystemDrawer({ open, onClose, defaultTab = "maintenance" }: Syst
|
||||
return false
|
||||
}
|
||||
|
||||
// Passwort-Fehler NICHT mehr verschlucken: OS-Update braucht das Box-Passwort. Früher
|
||||
// lief die Aktion bei fehlendem/falschem Passwort ins Leere („passiert nichts").
|
||||
function handledSudo(res: any): boolean {
|
||||
if (res?.status === "password_required" || res?.status === "incorrect_password") {
|
||||
showAlert(
|
||||
"Box-Passwort nötig",
|
||||
res.status === "incorrect_password"
|
||||
? "Das gespeicherte Box-Passwort stimmt nicht. Bitte in der Konsole unter „Box-Zugang“ korrigieren (oder hier in den Einstellungen)."
|
||||
: "Für dieses Update braucht die Box dein Passwort. Bitte in der Konsole unter „Box-Zugang“ setzen (oder hier in den Einstellungen).",
|
||||
)
|
||||
return true
|
||||
}
|
||||
if (res && res.ok === false) {
|
||||
showAlert("Update fehlgeschlagen", res.err || "Unbekannter Fehler.")
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
async function triggerOsUpdate() {
|
||||
try {
|
||||
const res = await api<any>("/api/maintenance/os-update", { method: "POST" })
|
||||
if (handledBusy(res)) return
|
||||
if (handledBusy(res) || handledSudo(res)) return
|
||||
loadJobs()
|
||||
setActiveTab("maintenance")
|
||||
} catch (e: any) {
|
||||
@@ -172,7 +191,7 @@ export function SystemDrawer({ open, onClose, defaultTab = "maintenance" }: Syst
|
||||
async function triggerEngineUpdate() {
|
||||
try {
|
||||
const res = await api<any>("/api/maintenance/engine-update", { method: "POST" })
|
||||
if (handledBusy(res)) return
|
||||
if (handledBusy(res) || handledSudo(res)) return
|
||||
loadJobs()
|
||||
setActiveTab("maintenance")
|
||||
} catch (e: any) {
|
||||
@@ -183,7 +202,7 @@ export function SystemDrawer({ open, onClose, defaultTab = "maintenance" }: Syst
|
||||
async function triggerSwapUpdate() {
|
||||
try {
|
||||
const res = await api<any>("/api/maintenance/swap-update", { method: "POST" })
|
||||
if (handledBusy(res)) return
|
||||
if (handledBusy(res) || handledSudo(res)) return
|
||||
loadJobs()
|
||||
setActiveTab("maintenance")
|
||||
} catch (e: any) {
|
||||
|
||||
Reference in New Issue
Block a user