Cache-Datei als Benutzer root - wie geht das?

Ein Shop wurde per FTP auf einem neuen (für Shopware optimierten Server) hochgeladen, installiert und eingerichtet. Der Benutzer, sagen wir ist “Hase”. Die komplette Domain, der komplette Shop und der Cronjob läuft unter dem Benutzer “Hase”.

Irgendwann ist der Shop plötzlich nicht mehr aufrufbar und zeigt nur noch eine weiße Seite mit diesem Text:
Warning: mkdir():
Permission denied in
/var/www/vhosts/…/vendor/symfony/http-kernel/HttpCache/Store.php on line 40

Grund dafür war, dass ein Cache-Ordner (/var/cache/production_2016xxxx) mit Benutzer “root” angelegt wurde und dadurch der mkdir()-Befehl nicht mehr ging. Nun stellt sich die Frage, wie kann das sein? Wie kann es innerhalb vom Shopsystem zu einem Benutzer-Wechsel kommen? Wie kann ich solche Fehler vermeiden ohne dafür einen Eingriff im System vornehmen zu müssen?

Laut Shopware-Support fällt das nicht in den technischen Support und konnte da nicht beantwortet werden. Man solle den Fehler in der Server-Konfiguration suchen. Allerdings ist ja der Benutzer “Hase” domainbezogen.

Eventuell jemand eine Idee?

 

Führst du denn irgendwelche Shell-Script aus - wie bspw. clear_cache.sh? Vielleicht führst du die ja ggf. als root aus.

Sowas kann auch an einen Server-Cron (CLI-Tools auf Shell-Ebene) liegen, der „aus Versehen“ nicht unter „Hase“ sondern unter „root“ angelegt wurde.

Die Frage ist, unter welchem Benutzer der Webserver läuft z.B. www-data? Genau dieser Benutzer benötigt Schreibrechte. Da spielt es keine Rolle, ob der FTP-Benutzer Hase ist oder nicht.

@Moritz Naczenski schrieb:

Führst du denn irgendwelche Shell-Script aus - wie bspw. clear_cache.sh? Vielleicht führst du die ja ggf. als root aus.

Ja hin und wieder, weil (ich glaube) Shopware nie den Cache-Ordner übers Backend komplett platt macht. 

@sonic

Nein, der Cron läuft über die Domain, und die Domain hat Benutzer „Hase“ :slight_smile: Der kann nicht versehentlich den Benutzer wechseln.

@Hille schrieb:

Die Frage ist, unter welchem Benutzer der Webserver läuft z.B. www-data? Genau dieser Benutzer benötigt Schreibrechte. Da spielt es keine Rolle, ob der FTP-Benutzer Hase ist oder nicht.

Es handelt sich hier um einen Root-Server - kein vServer. Der zustände Benutzer wird mit der Domain bzw. dem Abonnement vergeben.

@R4M schrieb:

@Moritz Naczenski schrieb:

Führst du denn irgendwelche Shell-Script aus - wie bspw. clear_cache.sh? Vielleicht führst du die ja ggf. als root aus.

Ja hin und wieder, weil (ich glaube) Shopware nie den Cache-Ordner übers Backend komplett platt macht. 

Das ist ja auch ganz bewusst so. Den Cache für die Attribut-Models kannst du über das Backend nicht leeren. Das wird lediglich bei Plugin-Installationen gemacht. Ist aber auch ganz bewusst so umgesetzt, da der Cache quasi nur neu aufgebaut werden braucht, wenn es eine neue Attributspalte gibt.

 

Es handelt sich hier um einen Root-Server - kein vServer. Der zustände Benutzer wird mit der Domain bzw. dem Abonnement vergeben.

 

ein VServer ist auch ein Root-Server ;-). Welche Distribution läuft denn überhaupt? Wie wird den PHP ausgeführt, mod_php, fcgi…?

Oder hast Du vielleicht mal ein Backup per SCP zurückgespielt als root user? Oder einen Compare durchgeführt? Also das ein Apache Prozess der unter “Hase” läuft den Owner von sich aus ändert ist quasi unmöglich, da ein Apache Prozess nie die Rechte haben sollte Verzeichnisrechte zu ändern (nur -RX).