Hallo zusammen,
folgendes Setup:
Problem:
Ich möchte über eine Django Website ein Verzeichnis (auf der Website werden ein paar Sachen eingegeben und dann nach einem Submit Button weiterverarbeitet) auf einem Windows Share anlegen und mit alternativen Berechtigungen arbeiten, weil das Share nicht für jedermann zugänglich ist.
Mit dem Python Modul
Der Gedanke war dann einfach mit
Führe ich das Codeschnipsel direkt aus (also ein .py File mit den paar Befehlen) klappt es tadellos, erfolgt der Aufruf aber über die Django Website stoße ich immer wieder auf Berechtigungsprobleme. Ich vermute irgendwo scheitert es dran, dass der IIS Prozess die PsExec.exe aufruft.
Der IIS Prozess läuft als AppPool mit dem Nutzer "django". Ich habe aber auch schon andere User probiert (selbst Domain Admins) und das Problem blieb bestehen.
Ich hoffe es ist soweit klar was ich vor habe und wo das Problem liegt.
Nun die Frage: Wie gehe ich weiter vor?
Ich der von mir eingeschlagene Weg (PsExec.exe) völlig der falsche?
Hat sonst noch wer Anhaltspunkte denen ich nachgehen könnte um mein Vorhaben umzusetzen?
Mit
Ich habe Freitag fast den ganzen Arbeitstag daran rumprobiert ohne Erfolg. Ich bin nun soweit das Ganze einfach an ein kleines PowerShell Script zu übergeben, was diese einfache Aufgabe (ein Verzeichnis auf einem Share anzulegen unter einem alternativen Userekontext) erledigt, widerum denke ich mir: Das muss doch auch mit Python gehen?
Danke vorab für euer Feedback.
folgendes Setup:
- IIS Web Server
- FastCGI
- Python 3.10.xx
- Django 4 (im venv)
Problem:
Ich möchte über eine Django Website ein Verzeichnis (auf der Website werden ein paar Sachen eingegeben und dann nach einem Submit Button weiterverarbeitet) auf einem Windows Share anlegen und mit alternativen Berechtigungen arbeiten, weil das Share nicht für jedermann zugänglich ist.
Mit dem Python Modul
os
kann ich nicht einfach os.system(cmd.exe mkdir)
arbeiten, weil es dann an den Berechtigungen scheitert.Der Gedanke war dann einfach mit
os.system
und dem Tool PsExec.exe -u -p
zu benutzen, da ich hier alternative Credentials mitgeben kann. Leider klappt das auch nicht, ich stoße immer auf Access Denied.Führe ich das Codeschnipsel direkt aus (also ein .py File mit den paar Befehlen) klappt es tadellos, erfolgt der Aufruf aber über die Django Website stoße ich immer wieder auf Berechtigungsprobleme. Ich vermute irgendwo scheitert es dran, dass der IIS Prozess die PsExec.exe aufruft.
Der IIS Prozess läuft als AppPool mit dem Nutzer "django". Ich habe aber auch schon andere User probiert (selbst Domain Admins) und das Problem blieb bestehen.
os.subprocess
habe ich auch probiert mit demselben Ergebnis.Ich hoffe es ist soweit klar was ich vor habe und wo das Problem liegt.
Nun die Frage: Wie gehe ich weiter vor?
Ich der von mir eingeschlagene Weg (PsExec.exe) völlig der falsche?
Hat sonst noch wer Anhaltspunkte denen ich nachgehen könnte um mein Vorhaben umzusetzen?
Mit
os.setuid
kann man wohl auch einen anderen User angeben, leider nur unter Linux.Ich habe Freitag fast den ganzen Arbeitstag daran rumprobiert ohne Erfolg. Ich bin nun soweit das Ganze einfach an ein kleines PowerShell Script zu übergeben, was diese einfache Aufgabe (ein Verzeichnis auf einem Share anzulegen unter einem alternativen Userekontext) erledigt, widerum denke ich mir: Das muss doch auch mit Python gehen?
Danke vorab für euer Feedback.