diff --git a/ops/restore-tests/nextcloud-compose.test.yml b/ops/restore-tests/nextcloud-compose.test.yml index c75f204..4b7ff79 100644 --- a/ops/restore-tests/nextcloud-compose.test.yml +++ b/ops/restore-tests/nextcloud-compose.test.yml @@ -57,5 +57,10 @@ services: # Restore-Lab-Pfade: alles isoliert, keine produktiven Mounts. - /mnt/user/backups/restore-lab/nextcloud/html:/var/www/html - /mnt/user/backups/restore-lab/nextcloud/data:/var/www/html/data - security_opt: - - no-new-privileges:true + # KEIN no-new-privileges fuer den Smoke-Test-Container. + # Der Nextcloud-Entrypoint fuehrt intern chown/chmod auf /var/www/html + # und /var/www/html/data aus. Auf Unraid (FUSE/shfs) ignoriert das + # Host-Dateisystem chown-Aufrufe von aussen, deshalb muss der + # Container-Entrypoint die Rechte selbst setzen koennen. Im isolierten + # Smoke-Kontext (127.0.0.1, kein Traefik, Wegwerf-Daten) ist das + # vertretbar. Test-Postgres und Test-Redis behalten no-new-privileges. diff --git a/ops/restore-tests/nextcloud-restore-test.sh b/ops/restore-tests/nextcloud-restore-test.sh index af3deb1..f7b0913 100644 --- a/ops/restore-tests/nextcloud-restore-test.sh +++ b/ops/restore-tests/nextcloud-restore-test.sh @@ -126,11 +126,11 @@ mv "$EXTRACT_DIR/local/borg-dumps/latest/nextcloud.dump" "$RESTORE_ROOT/dumps/la # Im Restore-Lab ist das /mnt/user/backups/restore-lab/nextcloud/data. mkdir -p "$RESTORE_ROOT/data" -# Nextcloud laeuft im Container als www-data (UID 33, GID 33). -# Die aus Borg extrahierten Dateien gehoeren typischerweise dem -# borg-ui-Container-User (sshd o. ae.). Ohne chown scheitert Nextcloud -# beim Start mit "chmod(): Operation not permitted" und gibt dauerhaft 503. -chown -R 33:33 "$RESTORE_ROOT/html" "$RESTORE_ROOT/data" +# Unraid (FUSE/shfs) ignoriert chown auf User-Shares. Stattdessen setzen +# wir die Dateien auf world-writable, damit der Nextcloud-Entrypoint +# (der als root startet und intern auf www-data wechselt) die Dateien +# lesen und beschreiben kann. Im isolierten Smoke-Kontext vertretbar. +chmod -R a+rwX "$RESTORE_ROOT/html" "$RESTORE_ROOT/data" # Falls config.php einen anderen dbuser als das Test-Compose hat, patchen # wir die DB-Zugangsdaten in der restaurierten config.php fuer den Test.