名前

smbget — SMB 経由でファイルをダウンロードするための wget ライクな ユーティリティー

書式

smbget [-a, --guest] [-r, --resume] [--recursive] [-D, --dots] [-o, --outputfile] [-q, --quiet] [-v, --verbose] [-b, --blocksize] [-O, --stdout] [-u, --update] [-e, --encrypt] [--limit-rate=INT] [-?|--help] [--usage] [-d|--debuglevel=DEBUGLEVEL] [--debug-stdout] [-s|--configfile=CONFIGFILE] [--option=name=value] [-l|--log-basename=LOGFILEBASE] [--leak-report] [--leak-report-full] [-R|--name-resolve=NAME-RESOLVE-ORDER] [-O|--socket-options=SOCKETOPTIONS] [-m|--max-protocol=MAXPROTOCOL] [-n|--netbiosname=NETBIOSNAME] [--netbios-scope=SCOPE] [-W|--workgroup=WORKGROUP] [--realm=REALM] [-U|--user=[DOMAIN/]USERNAME%[PASSWORD]] [-N|--no-pass] [--password=STRING] [--pw-nt-hash] [-A|--authentication-file=FILE] [-P|--machine-pass] [--simple-bind-dn=DN] [--use-kerberos=desired|required|off] [--use-krb5-ccache=CCACHE] [--use-winbind-ccache] [--client-protection=sign|encrypt|off] [-V|--version] {smb://host/share/path/to/file} [smb://url2/] [...]

説明

このツールは samba(7) スイートの一部である。

smbget は SMB サーバーからファイルをダウンロードできる、wget ライクな 使い勝手を持つシンプルなユーティリティーである。ダウンロードしたい ファイルをコマンドラインで指定することができる。

ファイルは smb-URL の書式で指定する。たとえば UNC パスで \\\\HOST\\SHARE\\file というファイルであれば、 smb://host/share/file のように指定する。

オプション

-a, --guest

guest ユーザーとして接続する

-r, --resume

前回中断したファイルから自動的に処理を継続する

--recursive

ファイルを再帰的にダウンロードする

-D, --dots

プログラムの進行状況をドットで表示する

-o, --outputfile

出力ファイル名として別のファイル名を指定する。-R と同時には指定できない。

--stdout

ダウンロードしたファイルを標準出力に出力する。

-q, --quiet

処理中にメッセージを出力しない

-v, --verbose

冗長表示を行う

-b, --blocksize

ダウンロードする際の読み込み単位(バイト)。 デフォルトは 64000。

-u, --update

リモートファイルがローカルファイルよりも 新しいか、ローカルファイルがない場合にのみダウンロード。

-e, --encrypt

SMB 暗号化を有効にする。

--limit-rate=INT

ダウンロード速度をこの KB/s 単位で制限する。

-?|--help

コマンドラインオプションの要約を表示する。

--usage

簡単な使用法を表示する。

-d|--debuglevel=DEBUGLEVEL

level は0から10までの整数値である。 このパラメータが設定されていない場合の規定の値は、 クライアントアプリケーションに対しては、1 である。

この値を大きくするほど、サーバーの動作に関するより詳細な情報が ログファイルに記録される。レベル 0 では、致命的なエラーと重大な警告 のみが記録される。レベル 1 は日々の運用に適しており、少量の稼働状況 に関する情報を生成する。

1 より上のレベルは大量のログが生成されるので、問題解決の時にのみ 使用すべきである。 3 より上のレベルは開発者だけが利用するように設計されて おり、莫大な量のログデータが生成される。そのほとんどは非常に謎めいた内容 となっている。

このパラメーターの指定は、${prefix}/etc/smb.conf ファイル中の、 log level パラメーターの 指定よりも優先する事に注意。

--debug-stdout

このパラメータはデバッグ出力を STDOUT にリダイレクトする。既定では、 すべてのクライアントはログを STDERR に出力する。

--configfile=<configuration file>

クライアントが必要とする詳細な設定を含むファイルを指定する。 このファイル中にある情報は、クライアントまたはサーバに対して 一般的であるか、あるいは、 client smb encrypt のような、クライアント固有のオプションのみを提供することが できる。詳細については ${prefix}/etc/smb.conf を参照のこと。既定の 設定ファイルの名前はコンパイル時に決定される。

--option=<name>=<value>

コマンドラインから smb.conf(5) オプション "<name>" に値 "<value>" を設定する。 これはコンパイル時の既定値と設定ファイルから読み込まれた オプションを上書きする。名前または値に空白が入っていた場合、 引用符で --option=name=value 全体を囲む。

-l|--log-basename=logdirectory

ログ/デバッグファイルのベースディレクトリ名。拡張子 ".progname" が追加される (たとえば log.smbclient, log.smbd など)。ログファイルは クライアントによって削除されることはない。

--leak-report

終了時の talloc リークレポートを有効にする。

--leak-report-full

終了時の完全な talloc リークレポートを有効にする。

-V|--version

プログラムのバージョン番号を表示する。

-R|--name-resolve=NAME-RESOLVE-ORDER

このオプションは、ホスト名と IP アドレスの名前解決のために どのようなネーミングサービスをどのような順序で使用するかを決める のに使用される。このオプションには、異なった名前解決オプションを 空白で区切って並べる。--name-resolve=NAME-RESOLVE-ORDER 全体を 引用符でくくるのがもっとも良いやり方である。

指定できるオプションは: "lmhosts", "host", "wins" and "bcast" である。 それぞれにおいて、名前解決は次のように行われる:

  • lmhosts: Samba lmhosts ファイルで IP アドレスが検索される。 lmhosts の行に NetBIOS名にアタッチされるネームタイプが ない場合(詳細については lmhosts(5)を参照)、ネームタイプがどれであるかは 検索結果に影響しなくなる。

  • host: システムの /etc/hosts 、NIS、 DNS ルックアップを使用した、ホスト名 - IP アドレス間の 標準の名前解決が行われる。名前解決の方法の詳細な部分は、 IRIX、Solaris といった OS によって変わる。 /etc/nsswitch.confで制御できる場合も ある。この方法は、検索される NetBIOS 名のタイプが 0x20 (サーバー) である時にのみ使用できる点に注意。さもなければ 指定しても無視される。

  • wins: wins serverパラメーターに指定 された IP アドレスを持つ名前が検索される。WINS サーバーが 指定されていなければ、この方法は無視される。

  • bcast: interfacesパラメーターに指定された 既知のローカル・インターフェースそれぞれについてブロード キャストを行う。ターゲット・ホストがローカル接続サブネット 上にある場合にしか使えないので、最も信頼性の低い名前 解決法である。

このパラメーターが設定されなかった場合、名前解決方法の使用順序は ${prefix}/etc/smb.conf ファイル中のパラメーター (name resolve order)に指定されたとおりになる。

既定の順番は lmhosts, host, wins, bcast である。このパラメータがない 場合か何らかのエントリがname resolve order the ${prefix}/etc/smb.conf ファイル中のパラメータにある場合は、名前解決の手段は この順で行われる。

-O|--socket-options=SOCKETOPTIONS

クライアントのソケットに設定する TCP のソケットオプション。 有効なオプションの一覧については、${prefix}/etc/smb.conf マニュアルページ 中の socket options パラメーターを参照のこと。

-m|--maxprotocol=MAXPROTOCOL

このパラメータの値(文字列)は、クライアントによってサポートされる、 もっとも高位のプロトコルレベルである。

ここでこのパラメータを指定すると、${prefix}/etc/smb.conf ファイル中の client max protocol パラメータを 上書きすることに注意。

-n|--netbiosname=NETBIOSNAME

このオプションは Samba 自身が使う NetBIOS名を上書きする。 これは、${prefix}/etc/smb.conf ファイル中の netbios name パラメータで設定することと同じである。しかし、コマンド行での設定は ${prefix}/etc/smb.conf での設定よりも優先する。

--netbios-scope=SCOPE

nmblookupが、通信用のNetBIOS名を生成する時に 使うNetBIOS スコープを指定する。NetBIOS スコープの詳細な利用方法に ついては、 RFC 1001 と RFC 1002 を参照のこと。NetBIOSスコープは ごく稀にしか利用されない。NetBIOS システム 全体を運営している管理者が、そのシステム内の相手と通信する場合にのみ、 このパラメーターを設定する。

-W|--workgroup=WORKGROUP

ユーザー名の SMB ドメインを指定する。このオプションは、 smb.conf 内のデフォルトのドメイン設定よりも優先される。 ドメイン名としてサーバーの NetBIOS 名を指定すると、クライアントは (ドメインの SAM ではなく) サーバーのローカル SAM を使用して ログオンを試みる。

ここでこのパラメータを指定すると、${prefix}/etc/smb.conf ファイル中の workgroup パラメータを上書きすることに注意。

-r|--realm=REALM

ドメインのレルムを指定する。

ここでこのパラメータを指定すると、${prefix}/etc/smb.conf ファイル中の realm パラメータを上書きすることに注意。

-U|--user=[DOMAIN\]USERNAME[%PASSWORD]

SMB のユーザー名、またはユーザー名とパスワードを指定する。

もしも %password を指定しないと、ユーザーにパスワードの入力を求める。 クライアントはまず初めにUSERLOGNAMEの 順に環境変数の存在を調べ、もしもどちらかが存在するならば、その文字列を 大文字にする。環境変数が存在しない場合、ユーザー名として GUESTが用いられる。

このほかに、平文のユーザー名とパスワードを記述した認証ファイルを使用する 3番目のオプションがある。このオプションは主にスクリプト向けに用意されて おり、認証情報をコマンドラインや環境変数に含めたくない場合に有用である。 このオプションを利用するときは、ファイルのパーミッションを確認し、ほかの ユーザーから参照されないように注意すること。詳細は -Aオプションを参照のこと。

パスワードをスクリプトに含める場合は注意すること。セキュリティを確保する ため、必要に応じてクライアントにパスワードを要求させることを推奨する。

-N|--no-pass

このオプションを指定すると、クライアントはユーザーへの パスワード入力要求をしなくなる。パスワードが必要ないサービスに アクセスするときに有用である。

コマンドラインにパスワードが指定されておらず、このオプションも指定 されていないと、クライアントはパスワードを要求する。

もしも、パスワードがコマンドライン上で指定され、このオプションも 定義されていた場合、コマンドライン上のパスワードは無視され、 パスワードは使われない。

--password

コマンド行上でパスワードを指定する。

パスワードをスクリプトに含める場合は注意すること。セキュリティを確保する ため、必要に応じてクライアントにパスワードを要求させることを推奨する。

--pw-nt-hash

提供したパスワードは NT ハッシュである。

-A|--authentication-file=filename

このオプションは、指定したファイルから、接続時に使用する ユーザー名とパスワードを読み込むために使用する。 ファイルの形式は次の通り:

                                username = <value>
                                password = <value>
                                domain   = <value>
                        

ファイルのパーミッションを確認し、他のユーザーから参照されない ように注意すること。

-P|--machine-pass

保存されたマシンパスワードアカウントを使用する。

--simple-bind-dn=DN

シンプルバインドで使う DN。

--use-kerberos=desired|required|off

このパラメータは、Samba クライアントツールが Kerberos を 使って認証を試みるかを決定する。Kerberos 認証では、サービスに 接続する際、IP アドレスではなく、DNS 名を使用する必要がある。

ここでこのパラメータを指定すると、${prefix}/etc/smb.conf ファイル中の client use kerberos パラメータを 上書きすることに注意。

--use-krb5-ccache=CCACHE

Kerberos認証用の資格情報キャッシュの場所を指定する。

これは --use-kerberos=required も同時に設定する。

--use-winbind-ccache

winbindによってキャッシュされた資格情報を使うようにする。

--client-protection=sign|encrypt|off

クライアントツールが使うべき接続の保護を設定する。

ここでこのパラメータを指定すると、${prefix}/etc/smb.conf ファイル中の client protection パラメータを 上書きすることに注意。

さらに細かな制御が必要な場合は、以下を使用できる: --option=clientsmbencrypt=OPTION, --option=clientipcsigning=OPTION, --option=clientsigning=OPTION.

SMB URL

SMB の URL は以下の書式で指定する:

smb://[[[ドメイン名;]ユーザー名[:パスワード@]]サーバー名[/共有名[/パス名[/ファイル名]]]]
smb:// はすべてのワークグループを意味する
smb://名前/ - 名前 がワークグループ名の場合は
そのワークグループ内のすべてのサーバー、名前 が
サーバー名の場合はそのサーバー上のすべての共有名を意味する。

実行例

# 'src' ディレクトリー配下を再帰的にダウンロード
smbget --recursive smb://rhonwyn/jelmer/src
# FreeBSD の ISO ファイルをダウンロード。中断後のリジュームも有効に。
smbget --resume smb://rhonwyn/isos/FreeBSD5.1.iso
# すべての ISO ファイルをダウンロード
smbget --recursive --resume smb://rhonwyn/isos
# データを rhonwyn にバックアップ
smbget --recursive -resume smb://rhonwyn/

バグ

ある種の原因不明なエラー( URL の書式が誤っていたり、--resursive オプションなしで ディレクトリを取得しようとしたなど)の場合、Permission denied が 返されることがある。

バージョン

このマニュアルは Sambaバージョン 4.20.4 用である。

著者

オリジナルの Samba ソフトウェアおよび関連するユーティリティーは、 Andrew Tridgell によって書かれた。現在は Samba は Samba Team によって Linux カーネルの開発と同様に、オープンソースプロジェクトとして 開発されている。

smbget のマニュアルは Jelmer Vernooij によって書かれた。

日本語訳

このマニュアルページは Samba 4.19.0 - 4.20.4 に対応する。

このドキュメントの Samba 3.2.4 - 4.20.4 対応の翻訳は

  • 堀田 倫英(hotta@net-newbie.com)

  • 太田俊哉(ribbon@samba.gr.jp)

によって行なわれた。