Wenn ownCloud nach einem Upgrade die Meldung „Integritätsprüfung fehlgeschlagen“ anzeigt, öffnen Sie zunächst die Administratorwarnung und prüfen Sie den Bericht über ungültige Dateien. Bearbeiten Sie die Datei nicht signature.json, deaktivieren Sie die Prüfung nicht und führen Sie das Upgrade nicht erneut aus. Der Bericht zeigt an, ob das Problem durch eine Inkompatibilität von Kerndateien, eine fehlende oder zusätzliche Datei oder ein Problem mit der App-Signatur verursacht wird. Stellen Sie nur den betroffenen Code aus der exakten offiziellen Version wieder her oder installieren Sie eine kompatible, signierte App und führen Sie anschließend einen erneuten Scan durch. Diese Vorgehensweise gilt für ownCloud Server (Classic). Infinite Scale verwendet eine andere Architektur und nutzt diesen PHP-Integritäts-Workflow nicht occ.
Wenn beispielsweise nach einem Upgrade von einer 10.x-Punktversion auf eine andere eine index.phpFehlermeldung version.phperscheint INVALID_HASH, liegt das Problem wahrscheinlich darin, dass einige Kerndateien noch zu einer anderen Version gehören oder verändert wurden. Wenn nur eine manuell installierte Anwendung wegen fehlender Signaturdaten als fehlerhaft markiert ist, behebt das Ersetzen von Kerndateien das Problem nicht. Die Fehlerdetails bestimmen, welche Lösung geeignet ist.
Lesen Sie den Bericht, bevor Sie Dateien ändern.
Melden Sie sich als Administrator an und öffnen Sie die gelbe Warnung zur Codeintegrität. Klicken Sie anschließend auf den Link, um ungültige Dateien aufzulisten. Die ownCloud-Dokumentation (Version 10.16) beschreibt diesen Bericht und die Option zum erneuten Scannen auf der Admin-Seite. Falls die Webseite nicht erreichbar ist, führen Sie die Prüfungen im ownCloud-Installationsverzeichnis als Webserver-Benutzer durch.
sudo -u www-data ./occ integrity:check-core
sudo -u www-data ./occ integrity:check-app <appid>
Ersetzen Sie www-data<Kontoname> durch das Konto Ihres Webservers und <appid><App-ID> durch die im Bericht angegebene App-ID. Führen Sie in Docker denselben occBefehl im ownCloud-Container mit der üblichen Bereitstellungsmethode aus. Die Befehle überprüfen Kerndateien und eine benannte App. Im ownCloud-Handbuch wird darauf hingewiesen, dass es keinen einzelnen Befehl gibt, mit dem alle Apps gescannt werden können.
Wählen Sie anhand des Fehlertyps die nächste Aktion aus:
INVALID_HASHEine Datei weicht in ihrer Signatur vom Hashwert ab. Dies kann auf ein teilweises oder gemischtes Versions-Upgrade, eine lokale Bearbeitung oder eine unerwartete Änderung hindeuten. Vergleichen Sie die Datei mit der exakten offiziellen Version, bevor Sie sie ersetzen .
FILE_MISSINGEine signierte Datei fehlt. Stellen Sie sie aus dem zugehörigen Release-Paket wieder her; prüfen Sie zuvor , ob sie bei der Bereitstellung, der Paketierung oder den Berechtigungen fehlte.
EXTRA_FILEEine Datei befindet sich zwar in einem signierten Verzeichnis, ist aber nicht Teil dieser Signatur. Möglicherweise handelt es sich um einen Überrest einer älteren Version oder eine lokal hinzugefügte Datei. Ermitteln Sie vor dem Löschen den Eigentümer und den Zweck der Datei.
EXCEPTIONSignaturdaten können fehlen, ungültig sein, außerhalb des Gültigkeitsbereichs liegen oder mit einem widerrufenen Zertifikat verknüpft sein. Überprüfen Sie bei einer App den Quellcode und den Veröffentlichungsstatus und bitten Sie den Entwickler um eine kompatible, signierte Version .
Eine manuell installierte Drittanbieter-App kann berechtigterweise eine Warnung auslösen, wenn sie nicht signiert ist. ownCloud weist darauf hin, dass nicht signierte Apps, die außerhalb des Marketplace installiert wurden, weiterhin als fehlerhaft markiert bleiben können. Dies erklärt jedoch keinen ungültigen Core-Hash. Behalten Sie die App- und Core-Ergebnisse bei der Diagnose getrennt.
Beheben Sie eine Kerninkompatibilität mit der entsprechenden Version.
- Erstellen Sie eine wiederherstellbare Sicherung. Bevor Sie Serverdateien ersetzen, sichern Sie Datenbank, Konfiguration und Daten gemäß der für Ihre Bereitstellung festgelegten Sicherungsprozedur. Falls das Upgrade unvollständig ist oder der Dienst instabil ist, aktivieren Sie den Wartungsmodus und stoppen Sie den Webverkehr vor der Reparatur. Eine Dateikopie ersetzt keine Datenbanksicherung.
- Prüfen Sie, ob die tatsächlich installierte ownCloud-Version korrekt ist. Überprüfen Sie die Administratorübersicht und die Versionsinformationen auf der Festplatte. Stellen Sie sicher, dass der Upgrade-Prozess abgeschlossen wurde und alle Cluster-Knoten bzw. Container dieselbe Zielversion verwenden. Überprüfen Sie die Upgrade-Protokolle auf abgebrochene Extraktionen, Berechtigungsfehler oder vorzeitig beendete Befehle.
- Besorgen Sie sich das offizielle Archiv für genau diese Version. Verwenden Sie kein „neuestes“ Archiv, wenn die Instanz eine ältere Version verwendet. Entpacken Sie es in ein separates temporäres Verzeichnis und vergleichen Sie nur die markierten Pfade. Wenn eine Datei von Ihrer Distribution oder Ihren Bereitstellungstools angepasst wurde, sollten Sie diese Anpassung verstehen, bevor Sie sie ersetzen.
- Ersetzen Sie betroffene Kerndateien sorgfältig. Kopieren Sie bei bestätigten Kerndateien die offiziellen Versionen aus dem entsprechenden Archiv und achten Sie dabei darauf, die Konfiguration, Daten und kompatiblen Anwendungsverzeichnisse der Instanz beizubehalten. Vermeiden Sie es, ein neues Serverarchiv ohne Befolgung der Upgrade-Anweisungen in eine bestehende Verzeichnisstruktur einzufügen: Überbleibsel von früheren Versionen können selbst
EXTRA_FILEProbleme verursachen. Stellen Sie die ursprünglichen Besitzverhältnisse und Berechtigungen mithilfe der für Ihre Installation dokumentierten Methode wieder her.
- Führen Sie die entsprechende Prüfung erneut durch. Verwenden Sie sie
integrity:check-corefür Kernergebnisse oder integrity:check-app <appid>für eine einzelne App. Sie können auch die Funktion „Erneuter Scan“ auf der Admin-Seite nutzen. Bearbeiten oder löschen Sie die Daten nicht manuell signature.json; es handelt sich um die Signaturdaten, die der Prüfer benötigt.
Die Anleitung von ownCloud zur Codesignierung enthält Beispiele wie das Wiederherstellen der korrekten Datei index.phpaus version.phpdem Release-Archiv, das Entfernen einer identifizierten, unnötigen Zusatzdatei und das Wiederherstellen einer fehlenden Datei .htaccessaus dem offiziellen Server-Tarball. Dies sind Beispiele, keine vollständige Liste: Gehen Sie in Ihrem Bericht genau nach den angegebenen Pfaden vor.
Eine App-Warnung behandeln, ohne sie zu maskieren
Wenn eine App nach dem Server-Upgrade als problematisch gemeldet wurde, prüfen Sie zunächst, ob sie die Zielversion von ownCloud unterstützt. Deaktivieren Sie inkompatible Apps über die dafür vorgesehenen Administrator- oder Befehlszeilenfunktionen und installieren Sie anschließend eine offizielle, kompatible Version aus dem Marketplace oder vom App-Entwickler. Falls eine zuvor signierte App nun unsigniert ist oder ihr Zertifikat als widerrufen gemeldet wird, wenden Sie sich an den Entwickler, um eine ordnungsgemäß signierte Ersatzversion zu erhalten. Kopieren Sie keine Signaturdaten von einer anderen App oder Version; Signaturen sind an den App-Inhalt und den Zertifikatsbereich gebunden.
Handelt es sich bei der markierten App um eine von Ihrer Organisation verwaltete benutzerdefinierte App, muss der autorisierte Verantwortliche die Version gemäß dem entsprechenden Verfahren und mit vertrauenswürdigen Signaturinformationen erstellen und signieren. Administratoren sollten keine Ersatzsignatur erstellen, um unbekannten oder modifizierten Code zuzulassen. Können Sie die Quelle und Integrität einer Datei nicht feststellen, speichern Sie den Bericht und untersuchen Sie ihn als potenzielles Sicherheitsproblem, anstatt die Warnung zu unterdrücken.
Überprüfen Sie die Reparatur
Führen Sie die entsprechende Integritätsprüfung erneut durch und aktualisieren Sie die Administratorübersicht. Vergewissern Sie sich, dass die gleichen Pfade nicht mehr angezeigt werden, die Warnung für die reparierte Komponente verschwunden ist und die ownCloud-Protokolle keine neuen Upgrade- oder Berechtigungsfehler mehr aufweisen. Testen Sie die Anmeldung, die Dateiauflistung, den Upload und die betroffene App. Überprüfen Sie in einer Multi-Node-Umgebung jeden Knoten; ein fehlerfreies Ergebnis auf einem Server beweist nicht, dass alle Knoten denselben Code verwenden.
Wenn der Bericht weiterhin besteht, beenden Sie das Ersetzen von Dateien und vergleichen Sie die aktuelle Verzeichnisstruktur mit dem exakten Paket, dem Bereitstellungsabbild oder dem eingebundenen Volume dieser Version. Prüfen Sie, ob eine zweite Codekopie, veraltete Bind-Mounts, ein Bereitstellungsskript, das alte Dateien wiederherstellt, oder lokale Patches vorhanden sind. Konsultieren Sie die versionsspezifischen Richtlinien zur Codesignierung und Integrität von ownCloud 10.16 , die ownCloud-Upgrade-Anweisungen und die Dokumentation zur Wiederherstellung . Diese Seite bezieht sich auf ownCloud Server 10.16; ältere Versionen können abweichen. Wählen Sie daher die Dokumentation, die zu Ihrer installierten Version passt.