Sambaを使用してコマンドライン経由でクライアントマシンにアイテムを送信する方法があるかどうか疑問に思っていました(Sambaサーバーからファイルを送信する必要があります)。いつでもscp
を使用できることはわかっていますが、最初にSambaでそれを行う方法があるかどうか疑問に思いました。ありがとう!
Sambaに付属するプログラム smbclient
を使用します。
$ smbclient //server/share -c 'cd c:/remote/path ; put local-file'
-U
などの多くのフラグがあり、リモートユーザー名をローカルのものとは異なるものにすることができます。
Sambaを複数のバイナリパッケージに分割するシステムでは、Sambaサーバーがインストールされているにもかかわらず、smbclient
が不足している場合があります。このような場合は、smbclient
、samba-client
などの名前のパッケージがないか、パッケージリポジトリを確認してください。
curlはsmb
プロトコルをサポートします v7.40以降 :curl --upload-file /path/to/file.ext -u 'DOMAIN\Username' smb://172.16.17.52/ShareName/
本当に働くのはこれです:
$ smbclient //server/share -c 'cd c:/remote/path ; put local-file remote-file'
local-file-ローカルマシンのファイル
remote-file-リモートマシン上のこのファイルにコピーします
nautilus、cajaまたはその他のファイルマネージャーによって共有がすでにマウントされているデスクトップを実行している場合は、Fuse(smbclientの代わりに)。
その場合、いくつかのマウントポイントが次の場所にあります。
ls -l /run/user/$UID/gvfs/
drwx------ 1 charlie charlie 0 Feb 2 10:04 smb-share:server=hostname,share=documents
はい、これはmountpointです。
df -h /run/user/$UID/gvfs/*
Filesystem Size Used Avail Use% Mounted on
gvfsd-Fuse 16.2T 3.6T 12.6T 59% /run/user/1000/gvfs
そして、あなたはそれを通常のファイルシステムとして使うことができます。
cp $HOME/myfile \
/run/user/$UID/gvfs/smb-share:server=hostname,share=documents/destpath/
smbclient Version 4.9.5-Debian
およびcurl 7.64.0
はうまくいきませんでした(Linux kali 4.19.0-kali4-AMD64
)
これはしました:
smbmap -H server -u username -p password --upload local-filename share\\remote-filename