【发布时间】:2017-02-19 06:57:03
【问题描述】:
我正在构建一个网站,该网站有一个表单,可以捕获用户数据并在用户数据上运行一些 cgi。 cgi 的第一步是它需要将文件从 linux 网络服务器复制到 windows 机器。服务器将使用活动目录角色帐户作为复制凭证。我曾希望简单地使用这样的东西:
mount -t cifs -o username=someUsername,password=somePasword //someMachine/someShare /someMountPoint
不幸的是,当我在 bash 中运行该命令时,我收到有关密码属性无效的错误。理想情况下,我会使用此方法挂载远程 windows 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")
【问题讨论】:
-
是的,我同意帐户方面的观点,理想情况下可以避免安装。该站点将仅限于一小群人,并且是内部的,但安全性显然很重要。我不能真正在远程机器上使用共享,因为它们需要动态创建,但可能会让用户为此提供凭据。感谢您的输入,我一定会看看使用 smbclient 的可能性,我也喜欢那个 tempfile 模块的外观。谢谢