install.sh --with-webexplorer --port <nummer> richtet pvesnap-web.service ein. Fehlt der Port, bricht das Skript mit einer Erklaerung ab; --port ohne --with-webexplorer, ein Port ausserhalb 1-65535, etwas anderes als eine Zahl und Port 8006 (Proxmox selbst) werden ebenfalls abgefangen - und zwar vor der root-Pruefung, damit ein Tippfehler sofort auffaellt. --help beschreibt jetzt alle Optionen mit Beispielen. Port, Adresse und Anmeldeart stehen in /etc/pvesnap/web.conf und lassen sich dort aendern, ohne die Unit anzufassen. Angemeldet wird mit den Benutzern von Proxmox VE: dieselbe Maske aus Benutzer, Passwort und Realm-Auswahl, geprueft ueber POST /access/ticket auf der lokalen API - also derselbe Weg wie im Proxmox-Webinterface. Alle Realms funktionieren damit automatisch; Zwei-Faktor-Anmeldungen werden abgewiesen statt halb durchgewinkt. Ein gueltiges Passwort allein reicht nicht: zusaetzlich braucht der Benutzer auf dem Gast das Recht VM.Snapshot (geprueft auf /, /vms, /vms/<id> und dem Pool). Sonst koennte jeder Proxmox-Benutzer saemtliche Dateien aller Gaeste lesen. In der Gastliste erscheinen nur erlaubte Gaeste, root@pam sieht wie in Proxmox alles. Anpassbar ueber --require-privilege und --allow-user. Ausserdem: SIGTERM haengt einen offenen Snapshot wieder aus (ohne das bliebe er bei "systemctl stop" eingebunden), und beim Start werden Reste von Prozessen abgeraeumt, die es nicht mehr gibt - parallel laufende Sitzungen bleiben dabei unangetastet. Auf pvetest01 geprueft: Dienststart ueber systemd, Anmeldemaske mit den Realms des Hosts, Abweisung ohne und mit falschen Zugangsdaten (401, protokolliert mit Absender-IP), Zugriff ohne Recht (403 auf Snapshot- Liste und Oeffnen), vollstaendiger Ablauf als Berechtigter bis zum Datei-Download, Abmelden macht die Sitzung ungueltig, und SIGTERM hinterlaesst weder rbd-Maps noch Mountpunkte. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
27 lines
908 B
Desktop File
27 lines
908 B
Desktop File
[Unit]
|
|
Description=pvesnap-web - Snapshot-Explorer im Browser
|
|
Documentation=file:/usr/share/doc/pvesnap/README.md
|
|
After=network-online.target pve-cluster.service pvedaemon.service pveproxy.service
|
|
Wants=pve-cluster.service pveproxy.service
|
|
|
|
[Service]
|
|
Type=simple
|
|
# Port, Adresse und Anmeldeart stehen in /etc/pvesnap/web.conf und lassen sich
|
|
# dort aendern - danach: systemctl restart pvesnap-web
|
|
EnvironmentFile=/etc/pvesnap/web.conf
|
|
ExecStart=/usr/local/bin/pvesnap-web $PVESNAP_WEB_ARGS
|
|
Environment=PYTHONUNBUFFERED=1
|
|
Restart=on-failure
|
|
RestartSec=15
|
|
TimeoutStopSec=120
|
|
|
|
# Snapshots einbinden und mounten geht nur als root.
|
|
User=root
|
|
|
|
# ACHTUNG: Hier duerfen KEINE Sandbox-Optionen stehen - siehe pvesnap.service.
|
|
# ProtectSystem= wuerde /etc schreibgeschuetzt einhaengen, womit pmxcfs seine
|
|
# Sperren nicht mehr anlegen kann und jeder Zugriff im Lock-Timeout endet.
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|