私は、ユーザーデータをキャプチャし、ユーザーデータでいくつかのCGIを実行する形式のWebサイトを構築しています。 cgiの最初のステップの1つは、Linux WebサーバーからWindowsマシンにファイルをコピーする必要があることです。サーバーは、コピー信任状にアクティブなディレクトリー役割acountを使用しています。PythonのLinuxからWIndowsへのコピーファイル
mount -t cifs -o username=someUsername,password=somePasword //someMachine/someShare /someMountPoint
残念ながら、私はパスワードに関するエラーが、私はbashでそのコマンドを実行したときに無効である帰属取得:私は単にこのような何かを使用することを望んでいました。理想的には、この方法を使用してリモートウィンドウをマウントしてファイルをコピーしますが、もっと理にかなっていると他のモジュールを試してみます。
私はこれに似ていますが、うまくいかず、必要な一時ディレクトリを作成しますが、何もマウントしません。私は何か他のものを使ってみてうれしいですが、ここで間違っていることを知りたいです。
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 $共有に必要)に対する管理者権限を持つWebサイトと、Linuxサーバー上のファイルシステムをマウントするためのroot権限を実行しますか? Eww。正しいフォルダと共有パーミッションを持つWindowsサーバ上の限られたユーザアカウントを使用する方がはるかに優れていて、Linux側の[smbclient](http://superuser.com/a/562728)のようなものをマウントする必要はありません。全く分かち合う。 (また、[tempfile](https://docs.python.org/3/library/tempfile.html)モジュールをチェックして、あなたのrandom.randrange bodgeを避けるようにしてください) – TessellatingHeckler
はい、アカウントに関しては理想的です。避けてください。このサイトは少人数のグループに限定され、社内ではありますが、セキュリティは明らかに重要です。リモートマシン上で共有を実際に使用することはできません。なぜなら、それらを即座に作成する必要があるからです。しかし、ユーザーにこのための資格情報を提供させることは可能かもしれません。入力をありがとう、私は確かにsmbclientを使用する可能性を見て、私はまた、そのtempfileモジュールの外観が好きです。おかげで –