Ich baue eine Website, die ein Formular hat, das Benutzerdaten erfasst und einige CGI auf den Benutzerdaten ausführt. Einer der ersten Schritte des CGI ist, dass es Dateien vom Linux-Webserver auf Windows-Maschinen kopieren muss. Der Server würde ein Active Directory-Rollenkonto für den Kopierberechtigungsnachweis verwenden. Ich hatte gehofft, einfach so etwas wie folgt zu verwenden:Python kopiert Dateien von Linux nach Windows
mount -t cifs -o username=someUsername,password=somePasword //someMachine/someShare /someMountPoint
Leider bekomme ich Fehler über das Passwort ungültig zuschreibt, wenn ich diesen Befehl in bash laufen. Im Idealfall würde ich diese Methode verwenden, um die remote Windows c $ share zu mounten und dann die Dateien zu kopieren, aber ich bin bereit, andere Module auszuprobieren, wenn sie sinnvoller sind.
Ich hatte so etwas, aber es funktioniert nicht, erstellt die notwendigen temporären Verzeichnisse, aber nie mounts. Ich bin froh, etwas anderes zu versuchen, würde aber gerne wissen, was hier los ist.
import subprocess
import random
def makeDir():
tempDir = random.randrange(111111,999999)
subprocess.Popen(["mkdir","/mntDir/"+str(tempDir)])
return tempDir
def mountShare(hostname, username, password):
mountDir = makeDir()
try:
subprocess.Popen(["mount","-t","cifs", "-o",
"username="+username+",password="+password,
"//"+hostname+"/c$",
"/mntDir/"+mountDir])
except:
print("Mounting failed")
Sie möchten eine Website mit Administratorrechten für den Windows-Server (benötigt für die C $ -Freigabe) und Root-Berechtigungen zum Mounten von Dateisystemen auf dem Linux-Server für den alltäglichen normalen Betrieb ausführen? Ew. Es ist viel besser, einen eingeschränkten Benutzeraccount auf dem Windows-Server mit nur den richtigen Ordner- und Freigabeberechtigungen und etwas wie [smbclient] (http://superuser.com/a/562728) auf der Linux-Seite zu verwenden, um zu vermeiden, dass der Teilen Sie überhaupt. (Überprüfen Sie auch das [tempfile] (https://docs.python.org/3/library/tempfile.html) Modul, um Ihre random.randrange bodge zu vermeiden) – TessellatingHeckler
Ja, ich stimme mit den Konten überein und würde ideal mounten Gemieden werden. Diese Seite wird auf eine kleine Gruppe von Personen beschränkt sein und ist intern, aber Sicherheit ist offensichtlich wichtig. Ich kann Freigaben auf Remote-Computern nicht wirklich verwenden, da sie im laufenden Betrieb erstellt werden müssten. Es ist jedoch möglicherweise möglich, dass der Benutzer die Anmeldeinformationen dafür bereitstellt. Danke für die Eingabe, ich werde mir sicherlich die Möglichkeit ansehen smbclient zu benutzen, ich mag auch das Aussehen dieses Tempfilemoduls. Danke –