mod_wsgi Arbeitsverzeichnis und Benutzer

8

Ich lasse Flasche auf mod_wsgi laufen. Meine flask-App, die sich auf /var/www/app befindet, erhält eine Datei vom Benutzer und speichert sie im /var/www/app/tmp -Verzeichnis. Aber selbst nach allen chmod und chown (dachte, es war ein Erlaubnissproblem), konnte ich dieses tmp-Verzeichnis nicht erreichen.

Nach einigem Debugging habe ich herausgefunden, dass das aktuelle Arbeitsverzeichnis der flask-App / ist. Ich kann das Arbeitsverzeichnis um os.chdir('/var/www/') ändern, aber ich möchte das aus Sicherheitsgründen vermeiden.

Hier ist meine Apache-Konfiguration:

%Vor%

Wie kann ich das Arbeitsverzeichnis meiner App von / in /var/www ?

ändern?     
thkang 11.02.2013, 08:47
quelle

1 Antwort

12

Die Dokumentation für WSGIDaemonProcess besagt, dass Sie die Zeilengruppe home=... verwenden können:

  

home = Verzeichnis

     

Definiert einen absoluten Pfad eines Verzeichnisses, das als verwendet werden soll   erstes aktuelles Arbeitsverzeichnis der Daemon Prozesse innerhalb der   Prozessgruppe. Wenn diese Option nicht definiert ist, können Sie in mod_wsgi 1.X   aktuelles Arbeitsverzeichnis des Apache-Elternprozesses wird sein   geerbt von den Daemon-Prozessen innerhalb der Prozessgruppe. Normalerweise   das aktuelle Arbeitsverzeichnis des Apache-Elternprozesses wäre   das Stammverzeichnis. In mod_wsgi 2.0+ funktioniert die anfängliche aktuelle Arbeit   Verzeichnis wird so eingestellt, dass es das Home-Verzeichnis des Benutzers ist, den das   Daemon-Prozess läuft als.

Ich bin allerdings neugierig - warum würde Ihrer Meinung nach os.chdir ein Sicherheitsrisiko darstellen?

    
AKX 11.02.2013, 08:50
quelle

Tags und Links