Frage

Ich habe eine Website schreiben, was mich verwirrt ist, wenn ich die Website laufen, zuerst muss ich die die App starten, so gibt es 3 Möglichkeiten:

  1. sudo python xxx.py
  2. Python xxx.py
  3. xxx.py

Ich habe nicht klar, mit wie jeden von ihnen zu verwenden, die NO.3 Methode zur Zeit in meinem Computer dosen't Arbeit gut

War es hilfreich?

Lösung

sudo wird die Anwendung mit Root-Rechten ausgeführt. Bedenkt man, dass Sie auf eine Website, sich beziehen, ist dies sicherlich nicht , was Sie tun wollen. (Für eine Webapp, wenn es Super-User-Berechtigungen erfordert, ist es kaputt ist. Das ist viel, viel zu groß ein Sicherheitsrisiko tatsächlich zu prüfen, verwenden.)

Unter anderen Umständen könnten Sie ein Python-Programm, das eine Art von System maintaince tut und als root erfordert wird, ausgeführt werden. In diesem Fall würden Sie sudo verwenden, aber Sie würden nie wollen dies für etwas tun, die öffentlich zugänglich sind und möglicherweise ausgenutzt werden könnte. In der Tat, für etwas anderes als zu testen, sollten Sie vielleicht die Webapp als separater Benutzer mit sehr begrenztem Zugang (zB mit Schale Set /dev/null, kein Lese- oder Schreibzugriff auf etwas laufen, dass sie nicht brauchen, etc ... ).

Die beiden anderen sind effektiv identisch (in therm, was sie tun), aber die letzte Option (Ausführung des Skripts direkt) erfordert:

  1. die ausführbare Bit gesetzt wird (auf UNIX-Systeme y) (z chmod +x whatever.py)
  2. shebang in der ersten Zeile (z. #! /usr/bin/python), der auf dem Python execuctable, dass Sie möchten, laufen die Dinge mit (wieder, gilt dies nur für Unix-y-Systeme)

Beim Python den Code (python whatever.py) und im Anschluss an die oben genannten Schritte auszuführen (was zu einem Skript, dass Sie direkt mit whatever.py nennen kann) tut genau das Gleiche (unter der Annahme, dass die shebang in der Python-Datei verweist auf die gleiche Python ausführbare Datei als „python“ tut, sowieso ...)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top