我正在建立一個網站,其中有一個表格可以捕獲用戶數據並在用戶數據上運行一些cgi。 cgi的第一步就是需要將文件從linux webserver複製到windows機器上。服務器將使用活動目錄角色帳戶作爲副本憑證。我希望簡單地使用這樣的事情:Python從Linux複製文件到WIndows
mount -t cifs -o username=someUsername,password=somePasword //someMachine/someShare /someMountPoint
不幸的是我得到了密碼錯誤歸於無效時,當我在bash中運行該命令。理想情況下,我會使用這種方法來安裝遠程窗口c $共享,然後複製文件,但我願意嘗試其他模塊,如果他們更有意義。
我有這樣的東西,但它不起作用,創建必要的臨時目錄,但從不安裝任何東西。我很樂意嘗試使用別的東西,但很想知道這裏有什麼問題。
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")
您想運行一個網站,該網站擁有Windows服務器的管理員權限(C $共享所需的權限)以及在Linux服務器上安裝文件系統的root權限,以實現日常的普通操作?好惡。更好的方法是在Windows服務器上使用有限的用戶帳戶,只需擁有正確的文件夾和共享權限,以及Linux端的[smbclient](http://superuser.com/a/562728),以避免必須安裝共享。 (另外,請檢查[tempfile](https://docs.python.org/3/library/tempfile.html)模塊,以避免你的random.randrange bodge) – TessellatingHeckler
是的,我同意關於帳戶和理想的安裝會應避免。這個網站將僅限於一小部分人,而且是內部的,但安全性顯然非常重要。我無法真正使用遠程機器上的共享,因爲它們需要隨時創建,但可能需要用戶爲此提供憑據。感謝輸入,我一定會看看使用smbclient的可能性,我也喜歡那個tempfile模塊的外觀。謝謝 –