OwnCloud ohne 'config.php' wiederherstellen

Konfiguration Symbol eines Kalenders 2019-03-08 Symbol eines Stiftes 2019-03-08 22:40 Symbol eines Auges 89

Die Daten sind gesichert, aber die config.php fehlt? In 5 einfachen Schritten ownCloud trotzdem wiederherstellen!

Eine schlechte Botschaft zuerst: Wenn die Dateien verschlüsselt sind, könnte es sein, dass diese nicht Wiederherzustellen sind. In der config.php ist der Schlüssel secret gesetzt, der unter Anderem zur Verschlüsselung dient.

Zur vollständigen Wiederherstellung sind folgende Dinge erforderlich:

  • Die Dateien der Nutzer
  • Datenbank

Schritte

1. ownCloud herunterladen & entpacken

Als erstes wird ownCloud-Quellcode heruntergeladen und entpackt. Es wird dabei die gleiche Version verwendet, die vorher verwendet wurde. Das dabei liegende Setup wird nicht ausgefürt.

2. Anlegen der neuen config.php

Eine neue Konfiguration wird aus der, bei ownCloud beiliegenden, config.sample.php angelegt: * Datenbanktyp, -adresse und -passwort angeben. * Tabellenpräfix angegeben werden (normalerweise oc_), mit diesen sind alle Tabellen in der Datenbank voran gestellt

Das Tabellenpräfix kann in der Datenbank nachgelesen werden.

<?php
$CONFIG = array (
// ...
  'dbname' => 'owncloud',
  'dbhost' => 'localhost',
  'dbport' => '',
  'dbtableprefix' => 'oc_',
  'dbuser' => 'nextcloud',
  'dbpassword' => 'geheimesPasswort123',
// ...
)

Auszug der neuen config.php

In diesem Beispiel wird eine MySQL-Datenbank verwendet.

3. Wiederherstellung des Datenordners

Der Datenordner wird an die gleiche Stelle wie vorher wiederhergestellt. Dies ist wichtig! Der Pfad ist in der Datenbank hinterlegt. Dies kann zwar später geändert werden, jedoch sollte davon abgesehen werden, dieses während der Wiederherstellungzu tun.

Der Pfad kann aus der Datenbankausgelesen werden (Beispiel für eine MySQL-Datenbank owncloud mit dem Präfix oc_), dafür muss die Datenbank bereits wiederhergestellt sein:

USE owncloud;
SELECT id FROM oc_storages WHERE id LIKE 'local::%';

Der Pfad wird ebenfalls in der neuen Konfigurationsdatei hinterlegt. Beispiel für den Pfad /srv/owncloud-data:

<?php
$CONFIG = array (
// ...
  'datadirectory' => '/srv/owncloud-data/'
// ...
)

Auszug der neuen config.php

Können später Dateien nicht heruntergeladen werde und es wird der Statuscode 404 angezeigt, liegt vermutlich der Datenordner nicht da, wo dieser vorher gelegen hat.

4. ownCloud die Änderungen mitteilen

Dazu wird in der neuen config.php die Option installed auf true gesetzt:

<?php
$CONFIG = array (
// ...
 'installed' => true,
// ...
)

Auszug der neuen config.php

Wird nun die Weboberfläche aufgerufen, sollte die Anmeldemaske erscheinen. Kann sich nicht angemeldet werden, liegt dies am verlorenen Passwort-Salt der ursprünglichen Konfigurationsdatei. Dieses kann durch die Kommandozeile wiederhergestellt werden.

5. Passwörter zurücksetzen

Die Passwörter werden in der Kommandozeile zurückgesetzt. Achtung: Spätestens ab hier ist der Zugriff auf verschlüsselte Dateien nicht mehr möglich, solange kein Wiederherstellungsschlüssel eingerichtet wurde.

$ sudo -u www-data php /var/www/owncloud/occ user:resetpassword admin
Enter a new password:
Confirm the new password:
Successfully reset password for admin

Fertig

Der Zugang auf die ownCloud oder Nextcloud sollte wieder möglich sein.

Links: - Meine eigene Antwort auf Serverfault.

Über den Autor

Simon Biewald

Der Autor des Blog programmiert bereits seit jungen Jahren in Python und beschäftigt sich nun mit den Themen der IT-Sicherheit und studiert deshalb nun "IT-Sicherheit und Mobile System" an der Hochschule Stralsund.