Joomla und Windows Fileberechtigungen

  • Hallo zusammen,


    ich habe das merkwürdige Phänomen, dass Dateien als beschädigt oder "nicht schreibbar" erscheinen für einen User, der eine Datei über meine Joomla-Website hochgeladen hat.


    Die Seite ist nur intern erreichbar und arbeitet mit LDAP Authentifizierung und SSO + SSI.
    Der Server im Hintergrund ist ein Windows Server 2012 R2. Hier ist für die Website die Windows Authentifizierung aktiviert für SSO + SSI.
    Ich habe allen LDAP Usern sowie dem Netzwerkdienst und der Gruppe IIS_IUSRS das Lese- + Schreibrecht auf Fileebene gegeben.


    Das Problem tritt nur bei Uploads über die Website auf. Wenn der User die Datei im Filesystem ablegt und dann auf der Website verlinkt, ist alles gut.
    Außerdem kann das Problem behoben werden, wenn man manuell die Vererbung auf dem Hauptordner erneut anstößt. Sprich "alle Berechtigungen durch vererbbare Berechtigungen dieses Ordners ersetzen".
    Das müsste man aber bei jedem Dateiupload machen...
    Zudem scheint sich die Berechtigung nach dem "Überschreiben" nicht zu verändern, aber die Datei ist wieder benutzbar für den User.


    Hat jemand dieses Problem schonmal gehabt?
    Kann mir jemand sagen, wie ein LDAP User über die Website auf das Filesystem zugreift? Mit welchem User wird die Datei hochgeladen, ist es wirklich der LDAP User selber??
    Und wie kann man dieses Problem umgehen? hmm


    Danke und Gruß
    Cass

  • Verwendest du das LDAP-Authentifizierungsplugin für die Anmeldung?
    Ich nutze das auch und auf unserer Intranet-Site arbeitet der User nach er Anmeldung als Joomla Benutzer.
    Zum Beispiel frage ich über LDAP bei der Anmeldung Gruppen oder OUs ab - muss dann aber den User in Joomla bei der Anmeldung trotzdem innerhalb von Joomla in die entsprechenden Zugriffsebenen setzten, damit er auf der Intranet Site richtig berechtigt ist.
    Auch für mich wäre es interessant zu erfahren, wie das andere machen.

  • Hey :)
    Also wir arbeiten mit Shmanic LDAP.
    Auch wir fragen die OUs ab und vergeben automatisch entsprechende Berechtigungen auf Joomla Ebene.
    Es scheitert aber nicht an den Joomla Berechtigungen, sondern an der File Ebene des Servers (vermute ich jedenfalls).


    Wenn es so wäre, dass der LDAP User auf der Website als normaler Joomla User arbeitet, müsste dann nicht die Berechtigung für den Netzwerkdienst und IIS_IUSRS greifen?


    Und was ich mit beschädigt meine:
    Bei Bildern erscheint kein Vorschaubild beim Hochladen, sondern dieses zerrissene Bild.
    Ist das Bild auf der Seite eingebunden, wird es nicht angezeigt. Gilt auch für alle anderen Dateien.


    Danke für eure Hilfe :)

  • Ich habe mir das nochmal ganz genau angeschaut.
    Hier der Workflow:
    - User lädt Datei hoch (Front- oder Backend)
    - Datei landet im Filesystem, User ist der Besitzer (der LDAP User wird wirklich als Besitzer eingetragen, nicht der Netzwerkdienst o.ä.)
    - Andere User sehen die Datei im Joomla als "nicht beschreibbar" (kaputte Vorschau bei Bildern und darunter ist das Stop Zeichen)
    - User selber kann ebenfalls die Datei nicht korrekt verwenden, sieht aber das Stop Zeichen nicht.
    - Auf File Ebene fehlen für die Datei Gruppenberechtigungen, die eigentlich vererbt werden müssten. Der User und andere User haben somit korrekter Weise keine Zugriff, da die benötigte Gruppe nicht vererbt wird. (Sorry, hatte ich vorher so nicht gesehen)


    Wie ist es möglich, dass Joomla die Vererbung außer Kraft setzt?
    Ich finde leider keine Lösung. Anscheinend ist es sehr ungewöhnlich, dass ein Windows Server verwendet wird... :D

  • Wow. Das ist, öhm, kurios. Denn das würde ja bedeuten, dass PHP selbst mit den Rechten des jeweiligen Nutzers ausgeführt würde, was ich spontan so auch nicht erlebt habe. Du kannst mal in den IIS Einstellungen schauen, ob du irgendwo eine Option o.Ä. findest wo man den Nutzer einstellen kann, mit dem PHP ausgeführt wird - wo du da genau suchen musst kann ich dir aber leider mangels IIS Erfahrung leider auch nicht sagen.

  • Bin jetzt nicht der ultimative Windows-Kenner - aber ich würde auch mal die Einstellungen im IIS überprüfen.
    So aus der Ferne auf die Schnelle ist das zwar schwierig, aber der Server steht ja intern (wenn ich das richtig verstanden habe)... eventuell spielt da noch was anderes rein wie AD, Domäne, GPO, etc...

    • Hilfreich

    Hallo zusammen,


    wir haben jetzt die Lösung gefunden.


    1. Die Windows Vererbung greift nicht für alle Programme, sprich Dateien, die über CMD o.ä. verschoben werden, behalten die Berechtigung der Datei und ignorieren die Vererbung des neuen Überordners.
    2. Dateien, die über die Weboberfläche hochgeladen werden, werden zunächst in C:\Windows\Temp geladen und dann erst in das Joomla Verzeichnis verschoben.
    3. Wie wir aus Punkt 1 wissen, wird beim Kopieren die Berechtigung aus dem Temp Ordner übernommen. Dadurch sieht es so aus, als ob die Vererbung ignoriert wird.


    Man ändert also die Berechtigung von C:\Windows\Temp so, wie man es für Joomla braucht und schon läuft es wieder.


    Das ist übrigens ein normales Windows Verhalten. Damit wird verhindert, dass man schreibgeschützte Dateien umkopiert und dadurch den Schutz aufhebt.
    Macht also manchmal sogar Sinn. Muss man nur erstmal drauf kommen...


    Also für alle, die Joomla mal auf Windows ausprobieren. Das solltet ihr auf jeden Fall umsetzen :)