Nextcloud-Probleme nach Systemupdate

Hallo mal wieder. Ich habe heute die übliche „Update-Runde“ durchgeführt, also alles installiert, was apt update/apt upgrade so liefern.

Auch für die VM, in der Nextcloud läuft, gab’s ein paar Updates, die auch problemlos installiert wurden. Nur tut seither unsere Nextcloud nicht mehr richtig. Wenn man auf die Webseite geht, erscheint die folgende Fehlermeldung, noch bevor man sich überhaupt einloggen kann.

Fehler

Ihr Datenverzeichnis ist schreibgeschützt.

Berechtigungen können normalerweise korrigiert werden, indem dem Webserver Schreibzugriff auf das Wurzel-Verzeichnis eingeräumt wird. Siehe auch Documentation Redirect .

Der Link zur Dokumentation scheint leider nicht mehr aktuell zu sein, ich lande damit nur auf der Startseite der Admin-Doku und wurde darin bislang nicht fündig.

Ich versuche nun schon seit Stunden, die Ursache dafür zu finden, komme aber irgendwie so gar nicht vorwärts.

Laut Nextcloud-Config-Datei ist unser Datenverzeichnis /usr/share/nextcloud Das Verzeichnis gehört root:www-data und hat Zugriffsrechte drwxrwx--- . Ich habe auch versucht, mittels sudo -u www-data darin eine Datei zu erzeugen, das geht ohne Probleme.

Auch die Nextcloud-Dateien in /var/www/nextcloud sehen in punkto Berechtigungen völlig unauffällig aus.

Beim Systemupdate waren eine ganze Menge PHP-Pakete dabei, unter anderem auch Updates für PHP8.2, welches, soweit ich das sehe, von unserem Apache via FPM genutzt wird.

Hatte vielleicht irgendwer schon einmal dieses Problem und hat noch eine Idee, wie man den Fehler eingrenzen bzw. woran das noch liegen könnte?

Ok, nach weiterer Suche habe ich Gott sei Dank die Ursache des Problems gefunden. In der Datei /usr/lib/systemd/system/php8.2-fpm.service gibt es eine Option ProtectSystem

Dies war auf full gesetzt, wodurch wohl der Schreibzugriff des jeweiligen Services eingeschränkt wird. Unter anderem /usr/ ist damit für den PHP-Prozess read-only.

Ich vermute, dass diese Konfigurationsoption mit dem letzten Update geändert wurde.

Habe die Option jetzt erst mal auf no geändert, aber man kann das wohl auch noch eleganter lösen. Letztlich war es dieser Thread hier, in dem ich die Lösung fand: