Nextcloud 19 Installationsprobleme

  • danke ThomasChr, langsam wird es ein bischen klarer:

    Wenn also eine Person aus dem Internet die Seite meinedomain/nextcloud/index.php aufruft, arbeitet er auf "meinem" Webhosting-Server mit den Rechten, die das Nextcloud Installationsprogramm vergeben hat. Was diese Person zu sehen bekommt (also die html-Ausgabe) richtet sich nach den jeweiligen Berechtigungen die die einzelnen PHP Dateien/Verzeichnisse haben.

    Welche Rolle spielt denn in diesem Zusammenhang überhaupt die 3. Ziffer der Berechtigungen (=other), wenn doch auch Besucher der Webseite mit User+Gruppenrechten agieren ?


    Zu meiner Ursprungsfrage aus #13: Ist es denn aus Sicherheitsgründen sinnvoll, wenn ich die Rechte des Nextcloud-Installationsverzeichnisses manuell auf 775 setze ? (weil nur so gelingt die Instatallation). Oder soll ich die Rechte nach der Installation auf 770 oder 750 oder 755 zurücksetzen ?

  • Ja, ich denke so langsam nähern wir uns der Sache an :-)


    Die Person die deine Website aufruft sieht niemals Dateien. Sie sieht dass was der Webserver ihr zeigt. Und der Webserver muss die Dateien lesen können.

    Die Other-Berechtigung macht gerade auf einem Linux System (das gibt es schon einige Jahrzehnte und auch schon bevor es das Internet gab) schon Sinn, in einem Shared Webhosting eventuell ein bisschen weniger, das kann durchaus sein.


    Afaik - und da kommt es auf das entsprechende Webhosting drauf an - kannst du die Rechte sogar ohne Gefahr für alles auf 777 setzen.

    Andere User (also die Websiten anderer Kunden) sollten in deine Verzeichnisse sowieso nicht reinkommen.

    Das ist natürlich nicht sonderlich "sauber" aber manchmal muss der scheiß halt einfach mal funktionieren :)


    Imho ist es wohl so dass der Webserver über deine Domain weiß in welchem Verzeichnis deine Dateien liegen (virtuell Host) und dieses nicht verlassen kann. Der Webserver kommt wohl als User www-data an. Der Webserver selbst liest aber nur Daten.

    Schreiben kann dann erst PHP. Dieses wird wahrscheinlich unter deinem User gestartet.

    Prinzipiell wäre es also sauber wenn die Dateien alle deinem User gehören und somit dein User (den auch PHP nimmt) alle Rechte drauf hat. Der Webserver selbst muss nur Leserechte drauf haben und auf bestimme Konfigurationsdateien (Datenbankverbindungsinfos) auch garkeine Rechte.

    Diese Dateien werden aber eigentlich noch auf anderem Wege vom Webserver versteckt, deshalb ist es auch nicht so schlimm wenn er diese lesen dürfte.

    Aber wie gesagt, ich kenn den Aufbau der Hostingumgebung nicht ganz und ich mach das lieber auf nem eigenen Server, da weiß ich welche User es gibt und wie die konfiguriert sind.

  • Tatsächlich hängt es stark von der Konfiguration des Servers ab, und je nachdem, wie man sich das zurecht biegt, können diese drei Ziffern entweder sehr mächtig oder völlig nutzlos sein. Jeder Datei sind zwei Eigentumseigenschaften zugewiesen: Ein Besitzer und eine Gruppe. Ein Benutzer auf dem System kann in mehreren Gruppen sein, und ein Programm, z.B. der Webserver, läuft mit den Rechten eines bestimmten Benutzers und einer Gruppe. Ein Programm, das von "root" gestartet wird, kann aber seinen eigenen Benutzer oder den der von ihm gestarteten Unterprogramme wechseln, z.B. auf den Account des Webhosting-Kunden. Für jede Datei können dann drei Zugriffsrechte, jeweils für den Besitzer, die Gruppe und alle anderen, zugewiesen werden: Lesen(4), Schreiben(2), und Ausführen(1). Durch das Addieren der Werte, werden mehrere Rechte zugewiesen. "Lesen" und "Schreiben" tut genau das, was man erwartet. "Ausführen" bedeutet auf Dateien, dass der berechtigte diese Datei als Programm starten kann. Auf Verzeichnissen bedeutet es, dass er berechtigt ist, dieses Verzeichnis überhaupt zu betreten. Hierin liegt die Sicherheit gegenüber den anderen Kunden auf dem Server: Wenn das Hauptverzeichnis, das dir als Kunde zugewiesen ist, dieses Recht für world/other nicht hat, ist alles, was du unterhalb dieses Verzeichnisses für world/other festlegst völlig egal, weil sie garnicht bis dahin kommen.

  • Die Erläuterungen von ThomasChr, Bachsau und killerbees19 waren, nachdem ich sie zusammengefügt und verstanden habe, die entscheidenden Informationen, die mir gefehlt haben, um die Nextcloud zu installieren.


    Also laienhaft ausgedrückt:

    Der Webserver von Netcup hat u.a. den Benutzer Root mit root-Rechten für alle Kunden-Accounts. Jeder Kunden-Account hat einen Benutzer (=Systembenutzer) mit dem Namen „hostingxxxxxx“ und Gruppenzugehörigkeiten mit den Namen „psaserver“ und „psacln“. Benutzer und Gruppen haben die Berechtigungen Lesen(4), Schreiben(2), und Ausführen(1). (4+2+1=7). Und zwar für einzelne Dateien als auch für Verzeichnisse.


    Meine PHP-Skripte (also die von Nextcloud oder Wordpress) liegen in einem Unterverzeichnis von httpdocs. Das Verzeichnis httpdocs hat die Rechte 750.


    Wenn jetzt eine Person aus dem Internet auf meine Domain zugreift, werden die entsprechenden PHP-Skripte mit den Benutzerrechten meines Systembenutzers, also „hostingxxxxxx“ ausgeführt (Ziffer 7 = lesen + schreiben + ausführen) und der dadurch erzeugte html-Code wird durch den Webserver an die Person im Internet ausgeliefert.

    Deshalb benötigt der Webserver, bzw. die von Netcup eingerichteten Webserver-Gruppen „psaserver“ und „psacln“, ebenfalls Zugriffsrechte auf das Verzeichnis httpdocs (Ziffer 5 = lesen + ausführen). Die Benutzer „other“ (alle anderen user, also auch Zugriffe aus dem Internet) können auf dieses Verzeichnis nicht zugreifen (Ziffer = 0).

    Jeder Kunde hat einen eigenen Systembenutzer und kann daher auch nicht auf andere Domains bzw. Verzeichnisse zugreifen.

    Ist das soweit korrekt ?


    Für die Installation von Nextcloud heißt das:

    1. manuelles Erstellen eines Verzeichnisses /httpdocs/nextcloud mit den Rechten 777

    2. danach Installation der Nextcloud

    3. danach manuelles Ändern der Rechte dieses Verzeichnisses auf 755 (mit den Rechten 750 funktioniert es nicht !! Das bedeutet also doch, daß die 3. Ziffer nicht von httpdocs "vererbt" wird und doch für den Zugriff aus dem Internet steht, oder ?, siehe Kollege Bachsau)


    Ist getestet und funktioniert, aber ist es auch wirklich sicher ?

    Erstmal vielen Dank an alle, die sich beteiligt haben.


    Es gibt lediglich noch einen kleinen Fehler: das Verzeichnis /tmp kann vom Installationsprogramm nicht erstellt werden. Das erzeugt entsprechende Fehlermeldung in der installierten Nextcloud-Oberfläche. Daher sollte das Verzeichnis /tmp vor der Installation mit den Rechten 777 erstellt werden.


    Und noch eine mögliche Schlussfolgerung: falls ein update nicht funktionieren sollte, könnte man nur für das update temporär das Nextcloud-Verzeichnis mit den Rechten 777 ausstatten.

  • Für die Installation von Nextcloud heißt das:

    1. manuelles Erstellen eines Verzeichnisses /httpdocs/nextcloud mit den Rechten 777

    2. danach Installation der Nextcloud

    3. danach manuelles Ändern der Rechte dieses Verzeichnisses auf 755 (mit den Rechten 750 funktioniert es nicht !! Das bedeutet also doch, daß die 3. Ziffer nicht von httpdocs "vererbt" wird und doch für den Zugriff aus dem Internet steht, oder ?, siehe Kollege Bachsau)

    Diese Punkte kann ich jedenfalls nicht ganz nachvollziehen. Das funktioniert normalerweise definitiv auch ohne diese Schritte. So etwas war bei mir definitiv nicht notwendig.


    Ich sehe schon, ich muss in den nächsten Tagen nochmals den Nextcloud Installer in einem Testverzeichnis laufen lassen und davon berichten… ^^

  • Die Erläuterungen von ThomasChr, Bachsau und killerbees19 waren, nachdem ich sie zusammengefügt und verstanden habe, die entscheidenden Informationen, die mir gefehlt haben, um die Nextcloud zu installieren.

    .

    .

    .

    Hört sich grob schon ganz richtig an. Habs jetzt aber ned detailgenau geprüft.

    Falt ist für mich: Mit soviel Neugier und Lernbereitschaft bist du -imho- auf dem richtigen Weg dir irgendwann nen eigenen kleinen root Server zu basteln.

    Vielleicht noch nen Linux Buch vorher und ne Linux VM zuhause aber das Zeug dazu hast du.


    Der "durchschnittliche" Hosting Nutzer grummelt warums ned geht, stellt die Rechte 0777 ein für alles und denkt nicht mehr drüber nach.


    Thumbs up von mir!

  • 3. danach manuelles Ändernder Rechte dieses Verzeichnisses auf 755 (mit den Rechten 750funktioniert es nicht !! Das bedeutet also doch, daß die 3. Ziffer nicht von httpdocs "vererbt" wird und doch fürden Zugriff aus dem Internet steht, oder ?, siehe Kollege Bachsau)

    Normalerweise sollte es keinen Unterschied machen. Aber ich bin kein Webhosting-Kunde und weiß daher nicht, wie Netcup seine Server konfiguriert. Theoretisch gibt es natürlich auch hier wieder Möglichkeiten, das irgendwie zu umgehen. Es hängt z.B. davon ab, wann ein als root gestarteter Prozess seine Rechte abgibt, da der Zugriff auf eine bereits geöffnete Datei nach dem Wechsel bestehen bleibt. Das Gruppen-System ist auch sehr mächtig, da ein Nutzer ja in mehreren Gruppen sein kann. Zudem gibt es noch sog. genannte Access Control Lists (ACLs). Falls Netcup sie einsetzt, können damit Standard-Berechtigungen so gezielt überschrieben werden, wie mit der Rechteverwaltung von Windows NT. Tatsächlich ist das von @ThomasChr beschriebene Verhalten des "durchschnittlichen" Hosting-Nutzers daher garnicht so verwerflich. Ein guter Provider schafft es, einen Server zu konfigurieren, dass der Kunde sich dadurch nicht selbst gefährdet. Ich finde es gut, wenn sich jemand damit beschäftigt, und etwas dazu lernen möchte. Erwarten kann man es vom Nutzer eines "managed"-Produkts aber nicht.

  • Diese Punkte kann ich jedenfalls nicht ganz nachvollziehen. Das funktioniert normalerweise definitiv auch ohne diese Schritte. So etwas war bei mir definitiv nicht notwendig.


    Ich sehe schon, ich muss in den nächsten Tagen nochmals den Nextcloud Installer in einem Testverzeichnis laufen lassen und davon berichten… ^^

    Habe erst gestern Nextcloud 19 auf einem Webhosting-Paket installiert, da waren diese Schritte auf jeden Fall nicht nötig. Installer ausführen, Datenbank erstellen und fertig. Lief dann völlig problemlos durch.

  • Habe erst gestern Nextcloud 19 auf einem Webhosting-Paket installiert, da waren diese Schritte auf jeden Fall nicht nötig. Installer ausführen, Datenbank erstellen und fertig. Lief dann völlig problemlos durch.

    Bist du sicher, dass alles problemlos durchgelaufen ist?

    Sind alle Apps vollständig installiert worden?

    Hast du auf der Nextcloud-Benutzeroberfläche keine Fehlermeldungen im Menüpunkt „Protokollierung“ oder im Menüpunkt " Übersicht"

    Das würde mich wundern. Ansonsten herzlichen Glückwunsch. hat funktioniert, warum auch immer.

    Wenn ich mir hier die Diskussion der Experten ansehe, gibt es sehr wohl einige Stolpersteine, die auch von der individuellen Konfiguration des Netcup-Webhostingpaketes abhängen. Anscheinend gibt es da viele Variationsmöglichkeiten. Wenn diese nicht öffentlich dokumentiert sind ist es schwierig die richtigen Einstellungen zu tätigen.


    Wie ich ja bereits geschrieben habe, läuft meine Nextcloud inzwischen ja auch problemlos in ../Basisverzeichnis/httpdocs.

    Meine Ursprungsfrage an das Forum war ja warum die Installation in ../Basisverzeichnis/nextcloud nicht funktioniert (=Interner Serverfehler). Diese Frage ist weiterhin ungeklärt und hat ja auch bei den Experten neue Fragestellungen aufgeworfen.


    ich verlasse mich bei solchen Dingen weniger auf Glück sondern möchte die Zusammenhänge besser verstehen. Ich habe jedenfalls bei der bisherigen Diskussion schon jede Menge gelernt.

  • Ich hatte die Probleme auch nicht, wahrscheinlich weil ich den Web-Installer benutzt habe. Der setzt offenbar automatisch die Rechte so, wie sie gebraucht werden. Advanced wizardry or whatever. Das Rechtesystem ist so flexibel und die Konfigurationen bei shared Hostings sind teilweise doch sehr unterschiedlich. Man kann Dateien und Verzeichnisse mit dem Rechtesystem so einstellen, dass alle Mitglieder einer Gruppe außer dem Owner keinen Zugriff haben, aber dafür alle anderen, die nicht in der Gruppe sind. Manche Hoster nutzen das dann, um bei von allen Kunden gemeinsam genutzten Verzeichnissen den gegenseitigen Zugriff zu verhindern. Alle Kunden sind in der Gruppe, der Webserver nicht. Der bekommt dann das Zugriffsrecht über die Rechte für "Andere", die anderen Kunden aber nicht. Es ist also nicht so, dass die Rechte für "Andere" grundsätzlich immer für jeden Benutzer gelten. Ist der Gruppe der Zugriff total verwehrt und für "Andere" freigegeben, dann haben die Benutzer mit der Gruppe keinen Zugriff, sie sind ja keine "Anderen" ;). Man kann es sogar so einstellen, dass der Owner keine Rechte hat während alle anderen nach Belieben zugreifen können (077). Natürlich kann er sich aber die Rechte für seine eigenen Dateien selbst wieder setzen.