croeh
19.06.15, 12:32
Hallo
Ich habe ein NAS was ich über einen browser kontrolieren möchte.
Das ganze funktioniert wunderbar. =>lighttpd bekommt per Button ein Befehl und ruft dann ein python script auf, der die ensprechende Aktion auf dem NAS dann ausführt.
Für einige Aktionen muss ich mich über SSH mit dem NAS verbinden. Aus diesem Grund muss dem python script natürlich das PW und der USER des NAS (kein root) bekannt sein.
Da das python script unter /var/www liegt und die Gruppe www-data:www-data besitzt, kann somit jeder auf das script zugreifen und es lesen.
Das ist natürlich nicht gewünscht.
auszug aus dem wsgi script (info: stark gekürzt)
import nas_control as nas
from flup.server.fcgi import WSGIServernas_contro
import urlparse
def http_server_respons(environ, start_response):
info = urlparse.parse_qs(environ["QUERY_STRING"])
if "index" in info:
command=info["index"][0]
if (command == "status"):
nas.status()
antwort=nas.json()
start_response("200 OK", [("Content-Type", "text/plain"),("Content-Length", str(len(antwort))) ] )
return antwort
WSGIServer(http_server_respons).run()
Wie kann ich das script "nas_control" einbinden ohne das von aussen einer Zugriff auf das Passwort hat.
Bibt es da Möglichkeiten?
Gruß
croeh
Ich habe ein NAS was ich über einen browser kontrolieren möchte.
Das ganze funktioniert wunderbar. =>lighttpd bekommt per Button ein Befehl und ruft dann ein python script auf, der die ensprechende Aktion auf dem NAS dann ausführt.
Für einige Aktionen muss ich mich über SSH mit dem NAS verbinden. Aus diesem Grund muss dem python script natürlich das PW und der USER des NAS (kein root) bekannt sein.
Da das python script unter /var/www liegt und die Gruppe www-data:www-data besitzt, kann somit jeder auf das script zugreifen und es lesen.
Das ist natürlich nicht gewünscht.
auszug aus dem wsgi script (info: stark gekürzt)
import nas_control as nas
from flup.server.fcgi import WSGIServernas_contro
import urlparse
def http_server_respons(environ, start_response):
info = urlparse.parse_qs(environ["QUERY_STRING"])
if "index" in info:
command=info["index"][0]
if (command == "status"):
nas.status()
antwort=nas.json()
start_response("200 OK", [("Content-Type", "text/plain"),("Content-Length", str(len(antwort))) ] )
return antwort
WSGIServer(http_server_respons).run()
Wie kann ich das script "nas_control" einbinden ohne das von aussen einer Zugriff auf das Passwort hat.
Bibt es da Möglichkeiten?
Gruß
croeh