DecaTec

Home-Server | Linux | Nextcloud | Raspberry Pi | Programmierung | Fotografie

Nextcloud – Tipps & Tricks für Admins (und Benutzer)

Nextcloud Logo

Nextcloud ist mittlerweile eine stabile und einfach einzurichtende Alternative zu anderen (kommerziellen) Cloud-Anbietern geworden. Gerade ist Version 13 erschienen, die u.a. Unterstützung für End-To-End Verschlüsselung, Anpassungen der Benutzeroberfläche und Verbesserungen in Sachen Performance mit sich bringt. Im Rahmen des Updates meiner Nextcloud-Instanz habe ich mir auch gleich mal die Zeit genommen, einige Punkte anzugehen, damit die Cloud noch mehr meinen eigenen Wünschen entspricht. Hauptsächlich sind dies bestimmte Parameter, die in der Standard-Konfiguration von Nextcloud gar nicht weiter zur Geltung kommen und deshalb leicht zu übersehen sind.

Dieser Artikel soll daher kurz und knapp ein paar Tipps und Tricks zeigen, die Nextcloud-Admins das Leben etwas leichter machen und auch für Cloud-Benutzer einen Mehrwert bieten.

Als Basis dient hier wie immer der Artikel Nextcloud auf Ubuntu Server mit nginx, MariaDB, PHP, Let’s Encrypt, Redis und Fail2ban.

Update-Historie (letztes Update: 29.07.2018)
  • 29.07.2018:
    • Um anonyme Uploads möglichst komfortabel zu handhaben, sollten die entsprechenden Einstellungen in den Admin-Settings unter Teilen gesetzt werden.

Vordefinierte Dateien für neue Benutzer

Jeder Benutzer, der in der Cloud neu angelegt wird, bekommt beim ersten Einloggen standardmäßig bestimmte Dateien und Verzeichnisse zur Verfügung gestellt. Dies sind im Grunde genommen nur ein paar Multimedia-Dateien (Bilder, Musik, Text) und ein Benutzerhandbuch als PDF.

Standard-Dateien für einen neuen Nextcloud-Benutzer

Standard-Dateien für einen neuen Nextcloud-Benutzer

Diese Dateien sind eher als „Demo-Dateien“ gedacht, um bestimmte Funktionen der Cloud demonstrieren zu können (z.B. die Galerie-Funktion zur Anzeige von Bildern). Im Normalfall wird ein Benutzer diese Dateien einfach löschen bevor er mit der eigentlichen Nutzung der Cloud beginnt. Das einzig Sinnvolle ist hier meiner Meinung nach nur das Manual, weil neue Benutzer hier mehr über Nextcloud und seine Funktionen erfahren können.

Der Nextcloud-Administrator kann allerdings eine eigene Verzeichnis-Struktur festlegen, die für einen neuen Benutzer angelegt werden soll. Möglich ist auch, die automatische Neuanlage von Dateien für neue Benutzer zu deaktivieren.

Die Dateien, die standardmäßig angelegt werden, sind im Verzeichnis /var/www/nextcloud/core/skeleton hinterlegt. D.h. alles, was in diesem Verzeichnis zu finden ist, wird für jeden neuen Benutzer in das eigene User-Verzeichnis kopiert.

Wichtig: Man könnte nun auf die Idee kommen, in dieses Verzeichnis eigene Dateien zu kopieren oder bestimmte Dateien zu löschen. Dies wird jedoch nicht empfohlen, da bei jedem Update von Nextcloud dieses Verzeichnis wieder mit den Standard-Dateien gefüllt wird.

Automatische Anlage von Dateien deaktivieren

Um das automatische Anlegen der Verzeichnisse/Dateien für neue Benutzer komplett zu deaktivieren, reicht es aus, eine kleine Änderung in der Konfigurations-Datei von Nextcloud vorzunehmen:

Hier wird am Ende der Datei (aber vor der letzten Klammer) folgendes hinzugefügt:

Diese kleine Änderung reicht schon aus, dass ein neuer Benutzer nun ohne „Dummy-Dateien“ beginnen kann – die Files-App ist nun standardmäßig leer.

Eigene vordefinierte Dateien hinterlegen

Wenn man als Admin allerdings eigene Dateien für neue Benutzer hinterlegen möchte, sieht das Vorgehen etwas anders aus. In diesem Beispiel möchte ich die Cloud nun so konfigurieren, dass ein neuer User lediglich das Benutzerhandbuch nach dem ersten Login vorfindet.

Dazu wird zunächst einmal ein Verzeichnis außerhalb des Nextcloud-Verzeichnisses erzeugt und nur das Benutzerhandbuch aus dem entsprechenden Verzeichnis hierhin kopiert. Anschließend müssen noch die notwendigen Verzeichnisrechte gesetzt werden.

Nun muss diese Änderung noch der Nextcloud-Installation bekannt gemacht werden. Dazu wird die Konfiguration aufgerufen:

Hier fügen wir weiter unten folgende Zeile ein:

Nun muss das soeben angelegte Verzeichnis noch die in die Liste der Verzeichnisse aufgenommen werden, auf die PHP Zugriff gewährt werden soll. Dazu wird der virtuelle Host von Nextcloud aufgerufen:

Hier wird nun das neu angelegte Verzeichnis bei open_basedir hinzugefügt:

Nachdem dies erledigt ist, wird der Webserver neu gestartet:

Wenn nun ein neuer Benutzer angelegt wird, erhält dieser nach dem ersten Einloggen nur noch das Nextcloud Benutzerhandbuch angezeigt.

Imagick-Erweiterung für individuelle Favoriten-Icons

Der nächste Tipp bezieht sich auf das sog. Theming, also das Anpassen des Look and Feels der eigenen Cloud. Hier bietet Nextcloud eine eigene Benutzeroberfläche in den Admin-Einstellungen. Hier kann beispielsweise ein eigenes Farbschema oder auch ein individuelles Icon hinterlegt werden.

Theming-Einstellungen in Nextcloud

Theming-Einstellungen in Nextcloud

Allerdings fällt auf, dass sich die hier vorgenommenen Änderungen nicht auf das das sog. Favicon auswirken (das Icon, welches in der Titelleiste des Browsers angezeigt wird). Hier wird immer das Standard-Icon mit dem Nextcloud-Logo auf blauem Grund angezeigt.

Damit ein individuelles Favicon genutzt wird, sind zwei Pakete zu installieren, die diese Funktion „nachrüsten“: Zunächst einmal Imagemagick (kurz: Imagick) und zum zweiten die entsprechende PHP-Erweiterung.

Nach der Installation sollte der ganze Server neu gestartet werden:

Wenn man sich nun neu in der Cloud anmeldet, wird ein individuelles Favicon in der Titelleiste des Browsers angezeigt:

Nextcloud mit Imagick-Erweiterung: Das Favoriten-Icon wird an das Theming angepasst

Nextcloud mit Imagick-Erweiterung: Das Favoriten-Icon wird an das Theming angepasst

Externer Speicher als Haupt-Speicher

Im Normalfall werden die Dateien der Nextcloud-Benutzer auf dem lokalen Speicher des Servers im Verzeichnis /var/nextcloud_data/<User>/files abgelegt. Wenn der Server nur über einen geringen Speicherplatz verfügt, z.B. bei einem Raspberry Pi (Affiliate-Link) mit nur einer kleinen SD-Karte, kann der Cloud-Speicher leicht durch externen Speicherplatz erweitert werden. Dies kann z.B. eine SMB-Freigabe auf einem NAS sein, oder auch ein beliebiger FTP-Server.

Bei Einbindung des externen Speichers (in der Admin-Oberfläche oder in den persönlichen Einstellungen des Benutzers) wird dazu ein Ordner angegeben, in dem der externe Speicher „gemountet“ wird (auf dem Bild rot markiert).

Einbinden externen FTP-Speichers

Einbinden externen FTP-Speichers

Der entsprechende Benutzer sieht dann in diesem Beispiel einen Ordner „FTP“ in der Datei-Übersicht, wohinter sich der externe FTP-Speicher verbirgt. Der Benutzer hat damit die Wahl, ob der seine Dateien lieber lokal auf dem Server speichern möchte (im „Root-Verzeichnis“ in der Files-App) oder lieber den externen Speicher verwenden möchte (im entsprechenden Unterordner).

Wenn – wie bereits erwähnt – der Speicherplatz auf dem lokalen Server sehr begrenzt ist, kann es für den Admin von Vorteil sein, den Zugriff der Benutzer auf den lokalen Speicher des Servers zu unterbinden. Dazu kann in der Admin-Oberfläche unter Verwaltung Externer Speicher beliebiger Speicher eingebunden werden. Der Trick hierbei ist nun die Angabe unter Ordnername. Wenn hier nämlich nur ein Slash („/“) angegeben wird, wird dieser externe Speicher quasi als Root-Verzeichnis der Cloud eingebunden. Der hinzugefügte externe Speicher kann an dieser Stelle auch noch gleich exklusiv für nur einen Benutzer freigegeben werden.

Dieser Benutzer sieht dann unter Dateien nur noch den externen Speicher. Für ihn besteht somit keine Möglichkeit mehr, Dateien oder Verzeichnisse auf dem lokalen Server anzulegen. So kann der Cloud-Administrator auf sehr einfache Weise den lokalen Speicherplatz schonen und die User zur Benutzung des externen Speichers „zwingen“. Trotzdem kann ein Benutzer in seinen persönlichen Einstellungen weitere externe Speicherorte hinzufügen (solange der Admin diese Option für die Benutzer freigeschaltet hat).

Vordefiniertes Verzeichnis für geteilte Dateien

Ein weiteres Detail, was mich schon immer etwas gestört hat, ist die Anzeige von Dateien, die ein Benutzer mit einem anderen User geteilt hat. Diese geteilten Dateien werden dabei nämlich einfach im das Root-Verzeichnis des jeweiligen Benutzers angezeigt (also auf oberster Datei-Ebene). Werden sehr viele Dateien geteilt, geht die Übersicht in der Files-App sehr leicht verloren.

Nextcloud bietet nun die Möglichkeit, einen speziellen Ordner anzugeben, in dem die geteilten Dateien für einen User „gesammelt“ werden. Dazu wird wieder die Konfigurations-Datei von Nextcloud bearbeitet:

Hier wird am Ende (aber vor der letzten Klammer) folgende Zeile hinzugefügt:

Wenn nun Dateien oder Verzeichnisse unter den Benutzern geteilt werden, landen diese (für jeden Benutzer) automatisch im Verzeichnis Mit mir geteilt. Aus User-Sicht wird mir durch diesen Trick nicht mehr das Root-Verzeichnis bei vielen File-Shares „zugemüllt“ und ich habe eine saubere Trennung zwischen den eigenen Daten und Dateien, die mit mir geteilt sind.

File-Drop Konfiguration für anonyme Uploads

Der letzte Tipp ist eigentlich kein solcher, sondern ein ganz normales Feature von Nextcloud: Anonyme Uploads über einen sog. File-Drop. Allerdings habe ich dieses Feature auch erst vor kurzem entdeckt und bin davon begeistert, daher möchte ich es euch nicht vorenthalten.

Es geht dabei um die Möglichkeit, fremden Benutzern (also Leuten ohne eigenen Account in eurer Cloud) das Hochladen von Dateien zu ermöglichen. Sinn und Zweck des Ganzen ist die Bereitstellung von Dateien für einen angemeldeten Nextcloud-Benutzer. Auf diese Weise kann braucht man beispielsweise keine E-Mails mehr mit großen Dateien im Anhang verschicken.

Hier sollten zunächst einmal die Einstellungen unter Teilen in den Admin-Einstellungen der Cloud kontrolliert werden. Für den maximalen Komfort sind dabei zwei Optionen von Bedeutung:

  • Öffentliches Hochladen erlauben: Diese Option muss gesetzt sein, damit ein anonymer Upload überhaupt möglich ist.
  • Passwortschutz erzwingen: Wenn diese Option gesetzt ist, wird beim Zugriff auf das Upload-Verzeichnis immer nach einem Passwort gefragt. Wenn man es externen Benutzern möglichst einfach machen will, dann kann man diese Option deaktivieren und das Verzeichnis für den anonymen Upload ohne Passwort freigeben.
Einstellungen für Teilen in den Admin-Settings

Einstellungen für Teilen in den Admin-Settings

Um dieses Feature nun nutzen zu können, legt sich ein Benutzer zunächst einmal ein spezielles Verzeichnis in der Files-App an (z.B. Public Upload). Nun kann in den Details zu diesem Ordner die Teilen-Funktion aktiviert werden (Link teilen). Wählt man nun noch die Option Dateien ablegen (nur Hochladen), hat man damit ein Verzeichnis zum anonymen Hochladen von Dateien erzeugt.

Konfiguration von File-Drop über einen geteilten Link

Konfiguration von File-Drop über einen geteilten Link

Den automatisch von Nextcloud erzeugten Link kann man nun über die kleine Schaltfläche neben dem Textfeld kopieren und an Freunde oder Bekannte weitergeben.

Ruft man diesen Link nun im Browser auf, kann eine Datei hochgeladen werden, die dann dem entsprechenden Benutzer der Cloud zur Verfügung gestellt wird und im extra dafür angelegten Ordner gespeichert wird.

Anonymer Upload mit File-Drop

Anonymer Upload mit File-Drop

Fazit

Der Artikel ist nun doch etwas länger geworden als ursprünglich gedacht. Trotzdem hoffe ich mal, dass ein paar Tipps für Nextcloud-Admins und/oder User dabei waren, die noch nicht hinlänglich bekannt sind.

Habt ihr weitere Tipps und Tricks, um Nextcloud besser an eure eigenen Wünsche und Nutzungsgewohnheiten anzupassen? Hinterlasst mir doch einfach einen Kommentar…

Weiterführende Artikel

Links

, , ,

Kommentare: 41

  • Sebastian sagt:

    Tolle Anleitung, vielen Dank dafür!

  • bernd sagt:

    wie immer super!

    Danke

    Gruß Bernd

  • Hans sagt:

    Hallo Jan,

    vielen Dank.

    Vielleicht hast du noch einen Tip, wie man die Passwortphrase von E2E löscht und wieder neu anlegt.

    Gruß Hans

    • Jan sagt:

      Hi Hans,

      die E2E-Verschlüsselung basiert auf einer Client-seitigen Verschlüsselung, von der der Server eigentlich gar nichts mitbekommst. Daher ist es nicht möglich, die E2E-Passpgrases Server-seitig zu ändern. Um eine neue Passphrase zu „generieren“, musst du das auf der Client-Seite machen, indem du einen neuen verschlüsselten Ordner anlegst, die alten Dateien da reinkopierst und anschließend den alten verschlüsselten Ordner einfach löschst.
      Bitte beachten, dass das E2E-Feature immer noch in der Beta-Phase ist, daher ist es nicht ausgeschlossen, dass hier noch Fehler auftreten.

      Gruß,
      Jan

  • Dominik sagt:

    Der Tipp mit dem Externer Speicher als Haupt-Speicher ist gold Wert! Ich hab wie nach deiner Anleitung die Nextcloud auf einer VM laufen und diese selbst ist sehr klein.
    Die Daten selbst sollen auf meinem Server selbst gesichert durch RAID abgespeichert werden. Mit dieser Möglichkeit muss gar keine großen Tricks machen und den Benutzern sagen, sie sollen ihre Daten nur in vorgefertigte Ordner legen.
    Danke!

  • Hans sagt:

    Hallo Jan, die Vorrausetzung für die externe Speicheranbindung ist die Installation des smbclients unter Linux. Je nach Distribution, muss dieser ggf. nachinstalliert werden.

    Weiß nicht ob du hierzu einen Passus mit aufnehmen möchtest.

    Gruß Hans

    • Jan sagt:

      Hi Hans,

      ja, der smbclient muss nachinstalliert werden, allerdings nur, wenn man auch Speicher per SMB einbinden möchte. Für FTP gibt es solche Voraussetzungen derzeit nicht. Aber genau deshalb habe ich ja einen Link auf die Dokumentation für den externen Speicher hinzugefügt, hier wird das alles pro Speicher-Art genau erklärt.

      Gruß,
      Jan

  • Magnus sagt:

    Hi Jan,

    vielen Dank für diese tolle Beschreibung.

    Vielleicht kannst du mir auch bei einem anderen Problem helfen.

    Ich habe auf externen Platten viele Daten gesichert (z.B. Fotos). Die möchte ich nicht einzeln hochladen, sondern möglichst per copy-befehl in meine Nextcloud integrieren.

    Wie bekomme ich das hin?

    Vielen Dank und Gruß
    Magnus

    • Jan sagt:

      Hi Magnus,

      wenn das Datenverzeichnis unverschlüsselt ist, dann könnte man auf die Idee kommen, sämtliche Dateien hier einfach reinzukopieren. Das ist allerdings nicht empfehlenswert, da Informationen zu allen Dateien auch noch in der Datenbank gespeichert werden.
      Wie wäre es, wenn du im Nextcloud Desktop-Client einfach einen eine neue (temporäre) Synchronisation anlegst (z.B. Foto-Order auf ext. HDD < -> Foto-Order in NC). Der Sync-Client wird dann alle Dateien vollautomatisch hochladen, danach kannst du die Synchronisierung bei Bedarf wieder entfernen. So dürfte das am wenigsten Arbeit machen, oder?

      Gruß,
      Jan

      • Magnus sagt:

        Vielen Dank,

        die Lösung ist super.

        Gruß
        Magnus

      • teqq sagt:

        Guten Morgen,

        doch, man kann die Daten einfach in /data//files/ kopieren. Nachdem die Daten kopiert wurden, kann man mit

        sudo -u www-data php occ files:scan –all
        bzw.
        sudo -u www-data php occ files:scan

        die Files sichtbar machen, die DB-Einträge werden dann geschrieben. Mittlerweile bei diversen Umzügen unserer privaten Nextcloud ausprobiert (meine Frau hätte mich bereits gekillt, wenn da was schiiefgegangen wäre. :) )

        • teqq sagt:

          Anmerkung, leider wurden Worte in Klammern nicht mitgeliefert.

          Pfad wäre *nc-dataverz.*/data/*user*/files/,
          Scanbefehl für einen User
          sudo -u www-data php occ files:scan –*user*.

          • Jan sagt:

            Hi,

            ja, mittlerweile funktioniert das schon recht gut. Ich nutze als Haupt-Datenverzeichnis eine externe SMB-Freigabe und kopiere viele Dateien einfach manuell in die entsprechende Netzwerk-Freigabe. Das Ganze klappt natürlich nur dann, wenn die Server-seitige Verschlüsselung nicht aktiv ist.
            Ich bin mir allerdings nicht sicher, ob man danach nochmal manuell einen File-Scan anwerfen muss. Bisher hat das auch immer ohne Scan gut geklappt.

            Gruß,
            Jan

  • Micha sagt:

    Hallo,

    wenn ich eine SMB-Freigabe als root Verzeichnis bereitstelle, auf der dann die Daten gespeichert werden sollen. Wie kann ich hier automatisieren, dass User, die über das Active-Directory authentifiziert werden, nicht alle das root verzeichnis sehen, sondern er am liebsten ein verzeichnis mit dem jeweiligen Usernamen unterhalb von root anlegt, was dann quasi das root des benutzers ist?

    Danke :)

    • Jan sagt:

      Hi Micha,

      eine ähnliche Anforderung hatte ich auch mal, allerdings ohne AD.
      In der SMB-Freigabe habe ich dazu Unterordner pro Benutzer angelegt. Jedem Benutzer habe ich dann in der NC-Admin-UI pro Benutzer einen externen Speicher zugeordnet, so dass jeder Benutzer nur sein Verzeichnis auf der SMB-Freigabe sieht.
      Allerdings befürchte ich hier, dass man dies kaum automatisieren kann. Wäre vielleicht ein Feature-Request, den man mal auf GitHub einbringen könnte.

      Gruß,
      Jan

      • Micha sagt:

        Danke, das habe ich mir schon fast gedacht, dass das Plugin das so nicht kann. Trotzdem danke für deine Antwort :)

        Was auch ein seltsames Verhalten des Plugins ist. Wenn ich bei UID unter Experte nichts eintrage, kommt als Interner Username sowas raus „9429EEF9-D12E-4C1B-A487-1C8520792976“. Wenn ich wie in der Doku beschrieben einfach nur „ID“ eintrage, ist überhaupt keine Anmeldung mehr möglich. Wenn ich wie ich es mir ergoogelt habe „sAMAccountName“ eintrage, schlägt der erste und der zweite Login fehl, er legt aber den User mit dem korrekten Internen Username an und ab dem 3. mal lässt es sich normal anmelden. Woher die 2 fehlerhaften Anmeldungen kommen, verstehe ich aber nicht.

        • Jan sagt:

          Hi Micha,

          der interne Username ist dann wohl die UUID (SID) des AS-Users.
          Doch leider muss ich beim Thema Nextcloud/LDAP passen. Das habe ich bisher noch nicht ausprobieren können, da ich kein AD betreibe. Wenn man sich die Doku ansieht, dann ist das wohl ein sehr weiters Feld. Sorry, aber hier kann ich dir wohl nicht wirklich weiter helfen.

          Gruß,
          Jan

  • Dan sagt:

    Servus,
    jetzt muss ich auch nochmal hier fragen ^^
    Wegen dem „Vordefiniertes Verzeichnis für geteilte Dateien“.
    Habe ich so eingetragen und neugestartet. Hat aber nichts bewirkt. Was habe ich übersehen? :)

  • Dirk sagt:

    Hallo jan,
    ich brauche mal bitte wieder Deine Hilfe: ich habe in NC versucht, meinen externen Speicher nach Deiner Anleitung einzubinden. Irgendwas ist schief gelaufen, nun kann ich NC nicht mehr über den Browser aufrufen. Was tun?

    Danke vielmals im voraus und viele Grüße
    Dirk

    • Jan sagt:

      Hi Dirk,

      ich denke du meist das Einbinden des externen Speichers als Hauptspeicher, oder?

      Hier ist die Frage, welchen externen Speicher du einbinden willst (FTP,Smb,etc.). Hier sollte beim fehlerhaften Einbinden auch ein Fehler im Nextcloud Log erscheinen. Ist hier irgendetwas zu sehen?

      Gruß,
      Jan

      • Dirk sagt:

        Hi Jan,
        danke für Deine Antwort. Das Einbinden von externen Festplatten ist zwar überall ein wenig beschrieben, aber was genau eingetragen werden muss, eben nicht explizit. Jedenfalls wollte ich nach Deiner Anleitung die Festplatte, welche bereits gemountet ist und auf die ich auch über windows verfügen kann, im BE von NC entsprechend eintragen als externer Speicher. Ich habe den / gesetzt, Lokal ausgewählt und den Pfad zur Platte eingegeben mit /name/name/.
        Seitdem kommt der interne Fehler. Habe aus dem Protokoll mall die entsprechende Fehlermeldung kopiert, hoffe es reicht:
        {„reqId“:“6M4TdIwZyxdGhoP2kEEw“,“level“:3,“time“:“2018-12-20T08:14:06+01:00″,“remoteAddr“:“31.150.45.5″,“user“:“NCAdmin“,“app“:“PHP“,“method“:“GET“,“url“:“\/nextcloud\/apps\/files\/“,“message“:“realpath(): open_basedir restriction in effect. File(\/media\/pi) is not within the allowed path(s): (\/var\/www:\/tmp\/:\/var\/nextcloud_data:\/dev\/urandom:\/proc\/meminfo:\/media\/pi\/raspiplatte:\/media\/pi\/NCspeicher) at \/var\/www\/nextcloud\/lib\/private\/Files\/Storage\/Local.php#68″,“userAgent“:“Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/69.0.3497.100 Safari\/537.36 OPR\/56.0.3051.116″,“version“:“14.0.4.2″}

        • Jan sagt:

          Hi Dirk,

          die Fehlermeldung sagt aus, dass er auf das Verzeichnis /media/pi/ nicht zugreifen kann. Als erstes könntest du nun noch /media/pi/ unter open_basedir hinzufügen.
          Da hier allerdings schon Einträge für /media/pi/raspiplatte und /media/pi/NCspeicher vorhanden sind, kann es sein, dass du beim Einbinden des externen Speichers eine Verzeichnisebene zu wenig angegeben hast. Das Einbinden von lokalem externen Speicher ist hier genauer beschrieben. So wie ich das sehe, müsstest du unter „Configuration“ den vollen Pfad (also z.B. /media/pi/NCspeicher) eingeben.

          Erst wenn der Speicher korrekt eingebunden wurde, kann das Hauptverzeichnis auf den externen Speicher gelegt werden.

          Gruß,
          Jan

          • Dirk sagt:

            Danke Dir sehr für den Ratschlag. Aber wie komme ich denn nun wieder ins BE?

            Gruß Dirk

          • Jan sagt:

            Hi Dirk,

            was meinst du mit BE? Ich gehe mal davon aus, dass NC nicht mehr im Browser abrufbar ist.
            Wenn es wirklich am externen Speich er liegen sollte, dann würde ich diesen erst einmal mittels occ-Befehl wieder entfernen (siehe hier). Danach sollte NC wieder erreichbar sein, oder aber der Fehler liegt doch wo anders.

            Gruß,
            Jan

          • Dirk sagt:

            Mit BE meinte ich Backend, wie doof. Ich möchte natürlich NC im Browser aufrufen und mich einloggen um dann im Adminbereich den external storage ändern. Was aber ja nicht klappt. Nun bin ich Deinem Link gefolgt wegen dem OCC-Befehl. Verstehe aber leider nur Bahnhof. Könntest Du mir bitte diesen Befehl aufschreiben…? Bevor alles noch mehr nicht funktioniert…

          • Jan sagt:

            Hi,

            erst einmal checken, um welchen externen Speicher es sich handelt:
            sudo -u www-data php /var/www/nextcloud/occ files_external:list

            Das sollte dann eine ID oder Bezeichnung ausspucken, damit sollte sich dann der ext. Speicher entfernen lassen:
            sudo -u www-data php /var/www/nextcloud/occ files_external:delete [ID/Bezeichnung]

            Gruß,
            Jan

          • Dirk sagt:

            Lieber Jan,
            wieder einmal der Retter in der Not!!! Tausend Dank, es hat wunderbar geklappt. Nun konnte ich mich wieder einloggen in NC. Nun noch mal zur Sicherheit: ich muß also meine bereits gemountete USB Festplatte im Feld externer Speicher als LOKAL auswählen und dann bei Konfiguration den in open_basedir festgelegten Pfad eingeben. Korrekt?
            Gruß
            Dirk

          • Jan sagt:

            Hi Dirk,

            ja, im Prinzip schon. Wenn dein externes Verzeichnis auf der Platte unter /media/pi/NCspeicher liegt (und auch unter open_basedir aufgeführt wird), dann erst einmal sicher stellen, dass der Webserver-User Zugriff hat: chown -R www-data:www-data /media/pi/NCspeicher
            Anschließend den externen Speicher als lokalen Speicher in der Admin- oder User-UI einbinden. Hier würde ich erst einmal unter einem Namen (z.B. „Test“) einbinden und nicht unter „/“. Damit siehst du dann schonmal, ob es prinzipiell funktioniert. Falls alles OK ist, dann einfach den ext. Speicher als „/“ einbinden und dann solltest du diesen externen Speicher als Hauptspeicher nutzen können.

            Gruß,
            Jan

          • Dirk sagt:

            Hallo Jan,
            habe den Test genau nach Deiner letzten Antwort durchgeführt. Hatte alles wunderbar funktioniert. Einloggen ebenfalls. Danach hatte ich hoffentlich alle Änderungen Deines Skripts eingearbeitet, also die Hosts überarbeitet. Dann wieder in NC eingeloggt und den externen Speicher als / abgeändert. Schon hatte ich wieder das Problem mit der Fehlermeldung:

            {„reqId“:“mCiYrGjty45GPknBPGNE“,“level“:3,“time“:“2018-12-20T17:00:03+01:00″,“remoteAddr“:““,“user“:“–„,“app“:“PHP“,“method“:““,“url“:“–„,“message“:“is_readable(): open_basedir restriction in effect. File(\/media\/pi\/NCspeicher\/) is not within the allowed path(s): (\/var\/www\/:\/tmp\/:\/var\/nextcloud_data:\/var\/genealogie_data:\/media\/pi\/NCspeicher:\/media\/pi\/raspiplatte) at \/var\/www\/nextcloud\/lib\/private\/Files\/Storage\/Local.php#172″,“userAgent“:“–„,“version“:“14.0.4.2″}

            Ich habe gerade die open_base Einträge geprüft, ich habe in der /cli/php und in den hosts jeweils den Pfad eingebunden. In der /fpm/php steht jedoch nur open_basedir = /var/www/:/tmp/

            Ist das der Fehler?
            LG Dirk

          • Jan sagt:

            Hi Dirk,

            das einzige, was mir hier auffällt: Die Fehlermeldung widerspricht sich ja eigentlich. Der einzige Unterschied zwischen dem Pfad (den er anmeckert) und dem Pfad in open_basedir ist der Slash am Ende. Hier könntest du noch probieren, bei open_basedir (im vHost von NC, die Anweisungen in den php.ini Dateien sind nur allgemein gültig) den Slash am Ende noch hinzuzufügen.

            Fügst du den ext. Speicher eigentlich als Admin oder als User hinzu? Ich mache das eigentlich immer als Admin und gebe den ext. Speicher dann explizit für einen User frei.

            Mich wundert es aber, dass durch den Fehler die ganze NC-Instanz runter gezogen wird. Das sollte eigentlich nicht so sein. Evtl. hast du hier auch einen Fehler gefunden. In diesem Fall würde ich mal einen Issue auf GitHub erstellen.

            Edit: Welches Dateisystem hat der ext. Speicher?

            Gruß,
            Jan

          • Dirk sagt:

            Hi Jan,
            Danke für die Hilfe. Ich habe den Slash mal zugefügt. Keine Änderung, daher wieder geändert. Danach mit dem occ Befehl erstmal alles wieder auf Anfang. Das ganze mache ich als Admin. Beide Festplatten sind ext formatiert.
            Das mit dem Issue könnte man machen, wenn ich noch ein wenig den Fehler gegoogelt habe, vielleicht finde ich einen Hinweis. Es gab vor ein paar Versionen (ich glaube 10.) mal einen Fehler in Zusammenhang mit dem / im Bezug.
            Dir auf jeden Fall ein großes Dankeschön und ein schönes Weihnachtsfest.
            LG Dirk

          • Dirk sagt:

            Hi Jan,
            noch eine Frage: mit welchem Befehl kann ich am besten erreichen, das root, pi, www-data und windows auf beiden externen Platten Schreib und Leserechte haben? Vielleicht hakt es ja auch daran…
            Danke!
            Gruß, Dirk

          • Jan sagt:

            Hi,

            das kommt v.a. darauf an, wie du mit Windows darauf zugreifst. Per Freigabe (Samba), oder wird die Platte auch temporär an Windows-Rechner angeschlossen?

            Gruß,
            Jan

          • Dirk sagt:

            Von Windows greife ich nur per Freigabe darauf.
            Gruß, Dirk

          • Jan sagt:

            Hi Dirk,

            ich würde das vermutlich so machen, dass alle User in eine Gruppe zusammengefasst werden, also z.B.:
            addgroup homegroup
            usermod -aG homegroup pi

            Mit den anderen Usern dann analog.
            Dann könntest du das entsprechende Verzeichnis mit chown der Gruppe zuordnen:
            chown -R www-data;homegroup /var/...
            Dateirechte setzt du dann per chmod:
            chmod 770 /var/...
            Die 770 setzt die Dateirechte. Mehr Infos dazu findest du z.B. hier.

            Gruß,
            Jan

          • Dirk sagt:

            Hallo Jan,
            vielen herzlichen Dank für die Unterstützung! Ich werde das in einer ruhigen Stunde während der Feiertage mal probieren. Bin gespannt, ob das vielleicht auch das andere NC Problem beseitigt…
            Liebe Grüße und schöne Weihnachten
            Dirk

  • Roland Hirsch sagt:

    Hallo Dirk,
    wie weit kennst Du dich mit den Clienten Android und Apple für Nextcloud aus?
    Ich würde gerne unsere Tablets in der Schule mit einer Nextcloud betreiben.
    Installation der Clienten und der Nextcloud funktionier soweit gut.
    Allerdings werden die Tablets nicht 1:1 sonder 1:n verwendet. D. h. die Tablets werden von verschiedenen Schülern, Klassen genutzt. Wenn ich aber z. B.
    den Nextcloud Client für Android hernehme muss man ja beim 1. Login die Serveradresse, Anmeldename und PW eingebe. Nun ist es so, dass diese
    dann auf dem Tablet gespeichert bleiben. Wenn der neue Nutzer dann das die Nextcloud App öffnet, landet er ja auf dem Speicher vom Vorgänger. Es wäre
    schön, wenn z. B. nur die Serveradresse gespeichert bleibt und bei jedem Start der Client-App die Anmeldedaten abgefragt werden. . (Benutzername und Passwort). So könnte das Tablet für mehrere User ohne Probleme genutzt werden. Gibt es schon solch eine modifizierte App oder hast Du einen Vorschlag bzw. Lösungsansatz ?

    • Jan sagt:

      Hallo Roland,

      ich bin zwar nicht Dirk, aber ich antworten mal trotzdem. ;-)
      Ich denke nicht, dass die Nextcloud-App ein solches Feature bietet. In der Android-App kann man sich z.B. gar nicht explizit ausloggen, hier muss immer der ganze Account auf dem Mobilgerät mit allen Offline-Daten gelöscht werden.
      Was mir nun dazu einfällt: Du wirst ein OS brauchen, welches Multi-User-Support bietet. Android kann das schon, bei iOS bin ich mir fast sicher, dass das nicht geht. Mit Multi-User-Support dürfte jede App eine eigene Instanz darstellen und jeder User sollte „seine eigene“ Nextcloud-App haben. Das müsste man mal ausprobieren.
      Nicht vergessen, dass u.U. auch andere Apps beteiligt sind, z.B. wenn Termine auch über Nextcloud verwaltet werden sollen (DavDroid). Hier muss dann ein Multi-User-Support auch greifen.

      Meine Schulzeit liegt zwar schon einige Jahre hinter mir, aber wie sieht es denn mittlerweile mit BYOD aus? Dies würde mir bei deinem Problem zuerst in den Sinn kommen.

      Gruß,
      Jan

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.