名前

smbclient — サーバー上の SMB/CIFS リソースにアクセスする ftp のようなクライアント

書式

smbclient [-M|--message=HOST] [-I|--ip-address=IP] [-E|--stderr] [-L|--list=HOST] [-T|--tar=<c|x>IXFvgbNan] [-D|--directory=DIR] [-b|--send-buffer=BYTES] [-t|--timeout=SECONDS] [-p|--port=PORT] [-g|--grepable] [-q|--quiet] [-B|--browse] [-?|--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|--maxprotocol=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] [-c|--command=STRING]

smbclient {servicename} [password] [-?|--help] [--usage] [-M|--message=HOST] [-I|--ip-address=IP] [-E|--stderr] [-L|--list=HOST] [-T|--tar=<c|x>IXFvgbNan] [-D|--directory=DIR] [-b|--send-buffer=BYTES] [-t|--timeout=SECONDS] [-p|--port=PORT] [-g|--grepable] [-q|--quiet] [-B|--browse] [-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] [-n|--netbiosname=NETBIOSNAME] [-W|--workgroup=WORKGROUP] [--realm=REALM] [--netbios-scope=SCOPE] [-m|--maxprotocol=MAXPROTOCOL] [-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] [-k|--kerberos=STRING]

説明

このツールは Samba(7) システムの一部である。

smbclient は SMB/CIFS サーバーと「会話」をする ことができるクライアントである。ftp プログラム(ftp(1) を参照)とよく似たインターフェースを提供し、 サーバーからローカルマシンへファイルをダウンロードしたり、 ローカルマシンからサーバーへとファイルをアップロードしたり、 サーバーからディレクトリ情報を取得するなどの動作を行う。

オプション

servicename

servicename は利用したいサービスのサーバー上での 名前である。サービス名は //server/service のような形をとり、server は利用したい サービスを提供している SMB/CIFS サーバーの NetBIOS 名であり、 service は提供されているサービスの名前である。 したがって、SMB/CIFS サーバー "smbserver" の "printer" というサービスに接続するには、//smbserver/printer というサービス名を使用する。

必要とされるサーバー名が、一概にサーバーの IP (DNS) ホスト名であるとは限らないことに注意! 必要とされる名前は NetBIOS 名であり、その名前はサーバーの動作しているマシンの IP ホスト名と同じかも知れないし、 異なっているかも知れない。

サーバー名を解決する方法は、smbclient-R|--name-resolve オプションか、smb.conf(5) ファイル中の name resolve order パラメーターに よって決定される。 このパラメーターにより、管理者が、名前解決の順番や方式を変更する ことが可能になっている。

password

指定したサーバーのサービスへアクセスするために 必要なパスワードである。このパラメーターが指定された場合、 -N オプション(パスワードプロンプトの抑止) が自動的に設定される。

デフォルトのパスワードはない。(このパラメーターを用いるか、 -U オプション(以下を参照)でパスワードが 指定されなかったことにより)パスワードがコマンドラインから指定されず、 -N オプションも指定されていない場合、 サーバーがパスワードを要求しているかどうかに関わらず、 クライアントはパスワード入力を求める。 (パスワードが必要でない場合は、 単に ENTER キーを入力する事で、 空のパスワードを渡せばよい。)

注意: ある種のサーバー(OS/2、Windows for Workgroup など)は、 大文字のパスワードを要求する。小文字や、大文字小文字の混じった パスワードは拒否されるであろう。

パスワードをスクリプト中に記述するときは、十分注意すること。

-M NetBIOS name

このオプションを指定すると、"WinPopup" プロトコルを使って、別のコンピューターへメッセージを送信することが できる。接続が確立してから任意のメッセージを入力する。 終了するには、^D(control-D)を入力する。

受信したコンピューターで WinPopup が起動していれば、 ユーザーはおそらくビープ音とともに、メッセージを受信することになる。 WinPopup が起動していないとメッセージは失われ、 エラーメッセージは表示されない。

1600 バイトを越えるメッセージは、プロトコルの仕様による 制限のため、自動的に切り捨てられる。

便利な使用例として、smbclient を通してメッセージを cat する方法を紹介しよう。例えば: smbclient -M FRED < mymessage.txt とすると、 mymessage.txt ファイルの内容をメッセージ としてマシン FRED に送ることができる。

また -U-I オプションも、メッセージの FROM や TO に相当する設定を指定したい場合は、 便利なこともある。

Samba で WinPopup メッセージを受け取る方法は、smb.conf(5)message command パラメーターを参照のこと。

注意: WfWg PC で常にメッセージを 受信できるようにしたいなら、startup グループに WinPopup をコピーすること。

-p port

この値は、サーバーへ接続するときに利用する TCP のポート番号である。SMB/CIFS サーバー用の標準の(well-known)TCP ポート番号は 139 であり、これがデフォルト値となる。

-g

-L と組み合わせることで、パースしやすい出力を 得られる。これにより grep や cut といったユーティリティで処理 しやすくなる。

-m|--max-protocol protocol

このパラメーターを使うと、smbclient がサーバーに 接続する時に使う、最高位の SMB プロトコルを選択できるようになる。 既定値では、SMB3 プロトコルで最も最高位のものに設定されている。 SMB2 または SMB1 プロトコルで接続するためには、おのおの SMB2 または NT1 という文字列を使用する。暗号化された通信で Windows 2012 サーバーに 接続するためには、SMB3 が必要とされることに注意。

-P|--machine-pass

ローカルサーバーのマシンアカウントを使い、外部サーバーに対して問い合わせを行う。

-I IP-address

IP address は接続する サーバーの IP アドレスを表す。これは、標準的な "a.b.c.d" 形式で指定する。

通常クライアントは前述した name resolve order パラメーター中で記述した NetBIOS 名の解決メカニズムを 用いて検索する事により、その SMB/CIFS サーバーのアドレスを 解決しようとする。このパラメーターを使うことで、クライアントは、 強制的に指定された IP アドレスをサーバーの IP アドレスとみなし、 接続しようとしているリソースの NetBIOS 名を上書きする。

このパラメーターのデフォルト値はない。 このパラメーターが指定されなければ、アドレスは前述したようにして クライアントが自動的に決定する。

-E|--stderr

このパラメーターは、クライアントがメッセージを 標準出力ではなく、標準エラー出力(stderr)に出力するようにする。

既定値では、クライアントはメッセージを標準出力 - 一般的にはユーザーの tty - に出力する。

-L|--list

このオプションを指定すると、サーバー上で利用可能な サービスを一覧することができる。smbclient -L host のようにして使うと、サービスの一覧が表示される。 NetBIOS 名が TCP/IP の DNS のホスト名に一致しない場合や、 別のネットワーク上のホストの情報を表示しようとしている場合は、 -I オプションが役にたつ。

-b|--send-buffer buffersize

ファイル送受信時、smbclinetは、接続されたサーバに対して許可されたリクエストの 最大数を元にしたサイズの内部バッファを使う。このコマンドは、 このサイズを0バイト(サーバが制御している既定値のサイズを使う事を意味する) から16776960 (0xFFFF00)バイトまでの任意の値に変更できる。 サーバが制御している値を使う事は、大量の読み取りと書き込みが同時にあるとき、 サーバを最も効率よく動かすためにsmbclientがパイプライン動作するなどして、 もっとも効率的である。この値を、その他の任意の値に設定すると、転送は 遅くなるだろう。これはまたsmbclient内部にある iosizeコマンド使う事にもよって設定できる。

B|--browse

DNSを使ったSMBサーバのブラウズ。

-t|--timeout <timeout-seconds>

これを使うと、利用者に、各SMB要求で使う既定値の タイムアウトを修正出来るようになる。既定値は20秒である。サーバへの 要求がしばしばタイムアウトする場合、この値を増やすとよいだろう。 これはまた、SMB3暗号化が選択されていた場合とsmbclientが serverに対して過負荷な時に発生する可能性がある。また、 smbclient内部でtimeoutコマンドを使うことで も設定される。

-T|--tar tar options

smbclient は SMB/CIFS 共有上の全てのファイルに おいて、tar(1) 互換のバックアップを行うことが できる。このオプションに設定可能な副次的な tar フラグは以下のとおり。

  • c - ローカルシステム 上で tarファイルを作成する。このオプションの後には tar ファイルの名前、テープデバイス、もしくは標準出力を意味する "-" のいずれかを指定しなければならない。 標準出力を指定した場合、ログレベルを最低の -d0 にして、 tar ファイルの出力が破壊されないようにすること。 このフラグは x フラグと互いに 排他的な関係にある。

  • n - c フラグと同時に使い、 実際にアーカイブを作成せず、そのかわりに、 ファイルへの書き込み以外の、作成に関するすべての ことを実行する。

  • x - ローカルの tar ファイルを共有に展開(リストア)する。-D オプションが 指定されていないと、tar ファイルは共有の最上位 ディレクトリからリストアされる。 このオプションの後には tar ファイルの名前、デバイスの名前、 あるいは 標準入力を意味する "-" を指定しなければならない。 このフラグは c フラグと互いに 排他的な関係にある。リストアされたファイルは、作成日時 (mtime)が tar ファイルに保存された時点の日付になる。 また、現在ディレクトリについては、作成日時が正しく リストアされない。

  • I - 指定したファイルと ディレクトリを処理の対象にする。このオプションは、ファイル名が 指定されている場合のデフォルトの動作であり、tar ファイルを 展開または作成する時に、指定されたものだけを処理の対象にする (従って、それ以外のものは全て除外される)。 下記の例を参照のこと。ファイル名のワイルドカード指定機能は、 二つある方式のどちらかを使う。下記の r オプションを参照のこと。

  • X - 指定したファイルと ディレクトリを処理の対象から除外する。このオプションは tar ファイルを展開または作成する時に、指定されたものを処理の対象から 除外する。下記の例を参照のこと。 ファイル名のワイルドカード 指定機能は、二つある方式のどちらかを使う。下記の r オプションを参照のこと。

  • F - ファイルとディレクトリ の一覧を含むファイルである。Fオプションは、 展開または作成時に含まれるファイルとディレクトリのリストを含む ファイル名として作成するためのtarファイルの名前となる。 (従って、除外する他のすべてのファイルとディレクトリ) 以下の例を参照のこと。ファイル名の globbing は2つの方法のどちら かで動作する。下記の r オプションを参照のこと。

  • b - ブロックサイズ。 このオプションの後には有効な(1 以上の)ブロックサイズを 指定しなければならない。このオプションにより、tar ファイルは、 ブロックサイズ*TBLOCK(512 バイト)ブロックの単位で 書き出されるようになる。

  • g - インクリメンタル (増分)。 アーカイブビットが立っているファイルだけをバックアップ する。 c フラグが指定されている時のみ 意味をもつ。

  • q - 詳細表示 (Verbose) 。 処理中のファイルを表示する。既定値では表示しない。これは、 tarmode verbose と同じである。

  • r - 処理対象に入れるか外すかを ワイルドカードで指定。推奨しない。

  • N - 更新(newer)。 このオプションの後には、ファイル名を指定する必要がある。 そのファイルの日付と作成中に共有上で見つかったファイルの日付とが 比較される。指定されたファイルより新しいファイルだけが tar ファイルにバックアップされる。 c フラグが指定されている時のみ意味をもつ。

  • a - アーカイブビットを セットする。ファイルがバックアップされた時点でアーカイブビットが クリアされる。 g および c フラグが設定されている時のみ意味をもつ。

Tar における長いファイル名

smbclient の tar オプションは、 現在 バックアップとリストアの両方で長いファイル名をサポートしている。しかし、 ファイルのフルパス名は 1024 バイト以下である必要がある。また tar アーカイブが作成された時、 smbclient の tar オプションはそのアーカイブ内のすべてのファイルを絶対ファイル名ではなく、 相対ファイル名で記録する。

Tar ファイル名

すべてのファイルには、DOS のパス名('\\'をパス名の区切りとする) を付与するか、UNIX のパス名('/' をパス名の区切りとする)を付与する ことができる。

tar ファイルの backup.tar を mypc 上の myshare(パスワードなし)にリストアする。

smbclient //mypc/myshare "" -N -Tx backup.tar

users/docs 以外のすべてをリストアする。

smbclient //mypc/myshare "" -N -TXx backup.tar users/docs

users/docs 配下のファイルを含む tar ファイルを作成する。

smbclient //mypc/myshare "" -N -Tc backup.tar users/docs

上記と同じ tar ファイルを作成するが、DOS のパス名を使用する。

smbclient //mypc/myshare "" -N -Tc backup.tar users\\edocs

共有上にあるすべてのファイルとディレクトリを含む tar ファイルを作成する。

smbclient //mypc/myshare "" -N -Tc backup.tar *

-D initial directory

動作を開始する前に、ディレクトリ initial directory に移動する。おそらく、利用されるのは tar オプション -T が指定された ときだけだろう。

-c command string

command string はセミコロンで区切ったコマンドの リストである。このコマンドは、標準入力から受け取るコマンドの代わりに 実行される。-N オプションが -c オプションによって、暗黙の内に設定される。

このオプションが特に役立つのは、スクリプトで利用したり、 標準入力を例えば -c 'print -' のようにして サーバーに出力したりする場合である。

-?|--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:\>

バックスラッシュ("\\")はサーバー上の現在の作業ディレクトリを示しており、 作業ディレクトリを変えるとこの表示も変わる。

このプロンプトは、クライアントの準備ができ、ユーザーのコマンド実行を 待機していることを示している。各コマンドは、一つの単語であるが、コマンドによっては、 コマンド固有のパラメーターを指定する事もできる。コマンドとパラメーターは、 特に注釈がない限り、スペースで区切られる。 全てのコマンドは大文字小文字を識別しない。 コマンドのパラメーターは、コマンドによって大文字と小文字が区別されたり されなかったりする。

スペースが含まれているファイル名は、名前をダブルクオート文字で、例えば、 "a long file name" のように括る事で指定できる。

大括弧("[" と "]")で括られて示されているパラメーター(例えば "[parameter]") は、オプションである。指定されなかった場合、コマンドは適切なデフォルト値を用いる。 不等号記号("<" と ">")で括られて示されているパラメーター(例えば "<parameter>")は、必須である。

サーバー上でのコマンドの実行は、実際にサーバーに対して要求を発行することで 実行されることに注意してほしい。従って、その動作はサーバー間で異なる場合があり、 サーバーの実装方法に依存している。

利用できるコマンドを以下にアルファベット順で紹介する。

? [command]

command を指定すると、? コマンドは指定されたコマンドについての簡潔で有益な説明を表示する。 command を指定しないと、利用できるコマンドの一覧が表示される。

! [shell command]

shell command を指定すると、 ! コマンドはローカルでシェルを起動し、指定されたシェルコマンドを起動する。 コマンドを指定しないと、ローカルなシェルが起動する。

allinfo file

クライアントは、ファイルまたはディレクトリについてのすべての 存在する情報(streamを含む)をサーバーが返す要求を出す。

altname file

クライアントは、ファイルまたはディレクトリの "代わり" の名前(8.3形式の名前)を返すようにサーバーに要求する。

archive <number>

ファイル上で操作を行うときにアーカイブレベルを設定する。 0 はアーカイブビットを無視、1 はこのビットを設定するようにのみファイルを操作し、 2 は操作時にこのビットを設定し、操作終了後にビットを解除するのみ行い、 3 はすべてのファイルに対して操作時に設定を行い、操作終了後にビットを解除する。 既定値は 0 である。

backup

ディレクトリ表示とファイルのオープン時にサーバーに 送られる "backup intent" フラグを On/Off する。もしも "backup intent" フラグが真であれば、サーバーは、もしもユーザーが SE_BACKUP または SE_RESTORE 権限が許可されているならば、いくつかのシステムチェックを 試み、バイパスする。この状態は、バックアップまたはリストア操作を 行う時に便利である。

blocksize <number>

操作時のブロックサイズパラメーターを設定する。既定値は 20 である。 tar ファイルの出力を blocksize*TBLOCK(512 バイト)ユニットごとに行うようにする。

cancel jobid0 [jobid1] ... [jobidN]

クライアントは、与えられたジョブ ID の印刷ジョブを キャンセルするようにサーバーに要求する。

case_sensitive

サーバーに対して、ファイル名の大文字小文字の区別を行うことを 告げる SMB パケット中のフラグの On/Off を行う。既定値では、OFF に設定される (ファイルサーバーに対してファイル名の大文字小文字の区別を行わない事を告げる)。 smb.conf 中で case sensitive parameter が設定されている Samba 3.0.5 以降 のサーバーにのみ、現在影響する。

cd <directory name>

もしも、"ディレクトリ名"が指定されたならば、サーバー上の 現在の作業ディレクトリは指定されたディレクトリに変更される。この操作は、 そのディレクトリがアクセス不能の場合失敗する。

もしも、ディレクトリ名が指定されない場合は、サーバー上の現在の作業 ディレクトリが表示される。

chmod file mode in octal

このコマンドはサーバーの CIFS UNIX 拡張のサポートに依存し、 サーバーがサポートしていない場合は失敗する。クライアントは、UNIX での標準形式である 8 進数での UNIX パーミッションに変更するように サーバーに要求する。

chown file uid gid

このコマンドはサーバーの CIFS UNIX 拡張のサポートに依存し、 サーバーがサポートしていない場合は失敗する。クライアントは、与えられた 10 進数のユーザー ID、グループ ID に所有者を変更するようにサーバーに要求する。 現在は、与えられた名前からリモートの uid と gid を検索する方法は ないことに注意。これは、将来のバージョンの CIFS UNIX 拡張によって 対応されるかもしれない。

close <fileid>

open コマンドで開いたファイルを明示的にクローズする。 Samba 内部のテストプロセスでのみ使用する。

del <mask>

クライアントがサーバーに対し、サーバー上の現在の 作業ディレクトリで mask に一致するすべての ファイルを削除するように要求する。

deltree <mask>

クライアントがサーバーに対し、サーバー上の現在の 作業ディレクトリで mask に一致するファイル やディレクトリをすべて削除するように要求する。recurse コマンドが与えら れていなくても、指定されたディレクトリ配下のファイルやディレクトリを 再帰的に削除することに注意。削除要求が失敗した時点でコマンドの実行は 中断され、まだ処理を行っていないファイルやディレクトリは、削除されずに そのまま残る。これは設計仕様によるものである。

dir <mask>

サーバー上の現在の作業ディレクトリで、mask に一致するファイルの一覧をサーバーから入手し、表示する。

du <filename>

ディレクトリの表示を行い、次に、 現在のディスクの使用量と共有上の空きスペースを表示する。

echo <number> <data>

ping を行うため、SMBecho 要求をサーバーに対して送る。 Samba 内部のテストのためにのみ使われる。

exit

サーバーとの接続を終了し、プログラムを終了する。

get <remote file name> [local file name]

remote file name という名前の ファイルをサーバーからクライアントを実行しているマシンへコピーする。 local file name が指定されていると、 それがローカルにコピーされるファイルの名前となる。 smbclient によるファイルの転送は、すべて binary モードで行われることに注意してほしい。lowercase コマンドも参照のこと。

getfacl <filename>

サーバーが UNIX 拡張をサポートしていることを要求する。 ファイル上の POSIX ACL を要求し、表示する。

hardlink <src> <dest>

Windows の CIFS 文法をつかって、サーバー上にハードリンクを作成する。

help [command]

前述の ? コマンドを参照のこと。

history

コマンド履歴を表示する。

iosize <bytes>

ファイル送受信の際、smbclient は、接続されたサーバーへの、 許可された要求の最大数によってサイズが決まる内部バッファーを使用する。 このコマンドは、0 バイト(既定値で、サーバが制御したサイズを使うことを 意味する)から 16776960(0xFFFF00)バイトの範囲で、このサイズを変更する ことができる。 サーバーが制御している値を使う事は、大量の読み取りと書き込みが同時にあるとき、 サーバーを最も効率よく動かすために smbclient がパイプライン動作するなどして、 もっとも効率的である。この値を、その他の任意の値に設定すると、転送は 遅くなるだろう。

lcd [directory name]

directory name を指定すると、 ローカルマシン上の現在の作業ディレクトリが指定されたディレクトリになる。 何らかの理由で指定されたディレクトリにアクセスできないと、 操作は失敗する。

ディレクトリ名を指定しないと、ローカルマシン上の現在の 作業ディレクトリが表示される。

link target linkname

このコマンドはサーバーの CIFS UNIX 拡張のサポートに依存し、 サーバーがサポートしていない場合は失敗する。クライアントは、targetと linkname ファイルの間にハードリンクを作成するようにサーバーに要求する。 linkname ファイルが存在してはいけない。

listconnect

DFS のために、現在保持している接続状況を表示する。

lock <filenum> <r|w> <hex-start> <hex-len>

このコマンドはサーバーが CIFS UNIX 拡張をサポートしているかに 依存し、もしもそうでなければ失敗する。与えられたレンジ上で与えられたタイプの POSIX fcntl ロックを設定することを試みる。Samba 内部のテスト用のみに使われる。

logon <username> <password>

再度ログオンすることにより、このセッションのための新しい vuid を確立する。新しい vuid を表示する。Samba 内部のテスト用のみに使われる。

logoff

サーバーからログオフし、セッションをクローズする。 内部的な Samba テストの目的で使われる。

lowercase

get および mget コマンドにおいて、ファイル名を 小文字化するかどうかの設定を切り換える。

小文字化を ON にすると、 get および mget コマンドを使ったときに、 ローカルのファイル名が小文字に変換される。これは、サーバーから(いわゆる) MS-DOS 形式の名前を持つファイルをコピーするときに役立つ。 UNIX システムでは、ファイル名を小文字にするのが一般的であるためである。

ls <mask>

前述の dir コマンドを参照のこと。

mask <mask>

このコマンドは、mget と mput コマンドが再帰的な操作を 行うときに用いるマスクを設定する。

再帰モードが ON のとき、 mget と mput コマンドに指定するマスクは ファイルに対するフィルターとしてではなく、ディレクトリに対するフィルター として働く。

mask コマンドで指定するマスクは、それらのディレクトリ配下の ファイルをフィルターするために必要となる。たとえば、mget コマンドが "source*" のときに mask が指定されており、mask コマンドで指定されたマスクが "*.c" で、再帰モードが ON であったとする。すると mget コマンドは、 現在の作業ディレクトリ中の "source*" に一致するすべてのディレクトリ配下で、 "*.c" に一致するすべてのファイルを取得する。

既定値では mask の値は空('*' と同等)になっており、 mask コマンドを使って変更されるまで変わらない。mask の値は、最後に 指定された値を保ち続ける。 予想外の結果を招かないように、mget か mput コマンドを使った後には、 mask の値を '*' に戻しておくことが賢明である。

md <directory name>

mkdir コマンドを参照のこと。

mget <mask>

mask に一致するすべての ファイルを、サーバーからクライアントを実行しているマシンにコピーする。

再帰モードになっているかどうかによって、mask の解釈が異なることに注意。詳細は recurse と mask コマンドを参照のこと。smbclient によるファイルの転送は、 すべて binary モードで行われることに注意してほしい。 lowercase も参照のこと。

mkdir <directory name>

指定された名前の新しいディレクトリを(ユーザーのアクセスが 許可されている)サーバー上に作成する。

more <file name>

リモートファイルを取得し、環境変数 PAGER の内容に 従ってそのファイルを表示する。

mput <mask>

ローカルマシン上の現在の作業ディレクトリ内で mask に一致するすべてのファイルを、サーバー上の現在の 作業ディレクトリにコピーする。

再帰モードになっているかどうかによって、mask の解釈が異なることに注意。詳細は、recurse と mask コマンドを参照のこと。smbclient によるファイルの転送は、 すべて binary モードで行われることに注意してほしい。

notify <dir name>

変更通知をディレクトリに問い合わせる。このコマンドは、 すべての変更可能性について再帰的な filechangenotify 呼び出しを発行する。 変更があると、1 つの変更ごとに、1 行表示される。このコマンドが表示する アクションの番号の説明については、 https://msdn.microsoft.com/en-us/library/dn392331.aspx を参照のこと。

このコマンドは永久に終わらない。イベントを無限に待つ。

posix

CIFS UNIX 拡張をサポートするかをリモートサーバーに問い合わせし、 提供されている機能一覧を表示する。もしもそうであれば(もしも可能であれば)、 大きなファイルの読み書きと POSIX パス名の処理を ON にする。

posix_encrypt <domain> <username> <password>

このコマンドはサーバーが CIFS UNIX 拡張をサポートしているかに 依存し、そうでなければ失敗する。このコネクション上で SMB 暗号化の ネゴシエーションを試みる。もしも smbclient が kerberos 証明書(-k)で接続され ていたならば、このコマンドの引数は無視され、kerberos 証明書は GSSAPI の書名と sealing の代わりに使われる。最初の接続時に smbclent に対して暗号化を 強制する -e オプションも参照のこと。 このコマンドは Samba 3.2 から新規に導入された。

posix_open <filename> <octal mode>

このコマンドはサーバーが CIFS UNIX 拡張をサポートしているかに 依存し、もしもそうでなければ失敗する。CIFS UNIX 拡張を使ってリモートファイルを オープンし、ファイル ID を表示する。 Samba 内部のテスト用のみに使用される。

posix_mkdir <directoryname> <octal mode>

このコマンドはサーバーが CIFS UNIX 拡張をサポートしているかに 依存し、もしもそうでなければ失敗する。CIFS UNIX 拡張を使って与えられたモードで、 リモートディレクトリを作成する。 Samba 内部のテスト用のみに使用される。

posix_rmdir <directoryname>

このコマンドはサーバーが CIFS UNIX 拡張をサポートしているかに 依存し、もしもそうでなければ失敗する。CIFS UNIX 拡張を使って リモートディレクトリを削除する。 Samba 内部のテスト用のみに使用される。

posix_unlink <filename>

このコマンドはサーバーが CIFS UNIX 拡張をサポートしているかに 依存し、もしもそうでなければ失敗する。CIFS UNIX 拡張を使って リモートファイルを削除する。

posix_whoami

CIFS UNIX 拡張 WHOAMI 呼び出しを使って、リモートサーバーに ユーザートークンを問い合わせる。リモートサーバーがログオンしているユーザーの 代わりに、ゲストステータス、ユーザー、グループ、グループリストと SID リスト を表示する。

print <file name>

指定したローカルマシン上のファイルを、サーバー上の 印刷サービスを使って印刷する。

prompt

mget と mput コマンドの操作において、ファイル名の確認を 行うかどうかの設定を切り換える。

この設定が ON であると、これらのコマンドの実行中、各ファイルごとに 転送するかどうかをユーザーに確認する。設定が OFF であると、指定された すべてのファイルが確認なしに転送される。

put <local file name> [remote file name]

local file name という名前の ファイルをクライアントを実行しているマシンからサーバーにコピーする。 remote file name が指定されていると、それがサーバーに コピーされるファイルの名前となる。 smbclient によるファイルの転送は、すべて binary モードで行われることに注意してほしい。lowercase コマンドも参照のこと。

queue

印刷のキューを表示し、印刷ジョブの ID、名前、サイズ、 現在の状態が見られる。

quit

exit コマンドを参照のこと。

readlink symlinkname

このコマンドはサーバーの CIFS UNIX 拡張のサポートに依存し、 サーバーがサポートしていない場合は失敗する。シンボリックリンク "symlinkname" の値を表示する。

rd <directory name>

rmdir コマンドを参照のこと。

recurse

mget と mput コマンドにおいて、ディレクトリを再帰的に 辿るかどうかの設定を切り換える。

この設定が ON であると、それらのコマンドは、対象となるディレクトリ (すなわち、コピー元となるディレクトリ)内のすべてのディレクトリを処理し、 コマンドに指定した mask に一致するディレクトリを再帰的に辿る。 ファイルは、mask コマンドを使って指定したマスクに一致するものだけが、 処理の対象となる。 mask コマンドも参照のこと。

この設定が OFF である場合、コピー元となるマシンの作業ディレクトリから、 mget または mput コマンドに指定されたマスクに一致するファイルだけが コピーされる。mask コマンドを使って指定されたマスクは無視される。

rename <old filename> <new filename> [-f]

サーバー上の現在の作業ディレクトリ上の old filenamenew filename に改名する。 -f スイッチオプションは、対象先のファイルが存在していても上書きを行う。 これは NT1 プロトコルダイアレクトおよび SMB2 プロトコルファミリーにて サポートされる。

rm <mask>

mask に一致するすべての ファイルをサーバー上の現在の作業ディレクトリから削除する。

rmdir <directory name>

指定された名前の(ユーザーのアクセスが許可されている) ディレクトリをサーバーから削除する。

scopy <source filename> <destination filename>

もっとも適したサーバー側での copy 呼び出しを使って、 サーバー上でファイルのコピーを行う。サーバーがサーバー側でのコピー機能を サポートしていない場合、読み取りを行った後書き込むという動作に切り換える。

setmode <filename> <perm=[+|\-]rsha>

DOS 版の attrib コマンドと同等に、ファイルの パーミッションを設定する。 例えば

setmode myfile +r

は myfile を読み込み専用にする。

showconnect

DFS のために現在有効な接続情報を表示する。

stat file

このコマンドはサーバーが CIFS UNIX 拡張をサポートしているかに 依存し、もしもそうでなければ失敗する。クライアントは UNIX ベースの情報レベルを 要求し、ファイルについての Linux stat コマンドと同じ情報を出力する。これには サイズ、ディスクで使用されているブロック数、ファイルのタイプ、パーミッション、 inode 番号、リンクの数と最後に 3 つの時刻情報(アクセス、変更と更新)が含まれる。 もしもファイルがスペシャルファイル(シンボリックリンク、文字またはブロックデバイス、 fifo あるいはソケット)の場合は、拡張情報も出力される。

symlink target linkname

このコマンドはサーバーの CIFS UNIX 拡張のサポートに依存し、 サーバーがサポートしていない場合は失敗する。クライアントは、target と linkname ファイルの間にシンボリックリンクを作成するようにサーバーに 要求する。linkname ファイルは存在してはいけない。 サーバーは現在接続している共有の外を指すリンクは作成しないことに注意。 これは Samba server によって強制される。

tar <c|x>[IXbgNa]

tar 作業を行う。 前述の -T コマンドラインオプションを参照のこと。このコマンドの動作は tarmode コマンド(下記を参照)に影響される。 パラメーター g(増分)と N(更新)を使うと、tarmode の設定に影響を及ぼす。 tar x(展開)時のオプションに "-"(標準入力)を使っても動作しないだろう。 かわりにコマンドラインオプションで使うようにすること。

blocksize <blocksize>

ブロックサイズ。このオプションの後には有効な (1 以上の)ブロックサイズを指定しなければならない。 このオプションにより、tar ファイルは、 blocksize*TBLOCK(通常 512 バイト) ブロックの単位で書き出されるようになる。

tarmode <full|inc|reset|noreset|system|nosystem|hidden|nohidden|verbose|noverbose>

DOS アーカイブビットに関する tar の動作を設定する。 4 つのモードがあり、それぞれ on/off できる。

Incremental(増分)モード(既定値は off)。off の場合、 (full を使うと) tar は archive ビットの設定にかかわらず、すべてをバックアップする。on の場合、 (incを使うと)tar はアーカイブビットが設定されて いるもののみをバックアップする。

Reset モード(既定値は off)。on にすると(reset を使うと)、tar はバックアップ先のすべてのファイルにおいてアーカイブビット をクリアする(読み書きできる共有において)。 noreset を使うと off になる。

System モード(既定値は on)。off にすると、tar はシステムファイルを バックアップしない。nosystem で off になる。

Hidden モード(既定値は on)。off にすると、tar は 隠し(hidden) ファイルをバックアップしない。nohidden で off になる

timeout <秒単位での動作単位のタイムアウト>

これを使うと、各 SMB 要求で使う既定値のタイムアウトを 変更できる。既定値は 20 秒である。サーバーへの接続要求がしばしばタイム アウトする時にはこれを増やすと良いだろう。 これはまた、SMB3 暗号化が選択されていた場合と smbclient が server に対して過負荷な時に発生する可能性がある。

unlock <filenum> <hex-start> <hex-len>

このコマンドはサーバーの CIFS UNIX 拡張のサポートに依存し、 サーバーがサポートしていない場合は失敗する。与えられたレンジで POSIX fcntl ロックの解除を試みる。 Samba 内部のテストのみに用いられる。

volume

共有のボリューム名を表示する。

vuid <number>

与えられた任意の番号に対するプロトコル中の現在使われている vuid を変更する。引数が与えられないと、現在使われている vuid を表示する。 Samba 内部のテストのみに用いられる。

tcon <sharename>

新しい tree connect(共有への接続)を確立する。 現在の tree connect を置き換える。新しい tid(tree id)を表示する。 内部的な Samba テスト目的で使われる。

tdis

現在の共有接続をクローズする(tree disconnect)。 内部的な Samba テスト目的で使われる。

tid <number>

新しい arbitrary 番号のために、プロトコル中の 現在の tree id(tid)を変更する。引数が無い場合、現在使われている tid を表示する。 内部的な Samba テスト目的で使われる。

utimes <filename> <create time> <access time> <write time> < change time>

指定されたファイルのタイムスタンプを変更する。 時刻は [YY]YY:MM:DD-HH:MM:SS 形式で指定する。 -1 は変更なしである。

注意

サーバーによっては、与えられたユーザー名、パスワード、共有名 (サービス名とも言う)、マシン名などの大文字小文字を厳格に識別する。 サーバーへの接続が失敗したときは、すべてのパラメーターを大文字にして 試してみよう。

ある種のサーバーに接続するときには、-n オプションを使わなければ ならないような場合がよくある。たとえば OS/2 の LanManager では、有効な NetBIOS 名が使われていなければならない。 よって、サーバーが知っている有効な名前を与える必要がある。

サーバーが LANMAN2 かそれ以降のプロトコルをサポートしている場合、 smbclient は長いファイル名をサポートする。

環境変数

変数 USER の値は、クライアントが使用するユーザーの名前となる。 この情報は、プロトコルのレベルが充分高く、セッションレベルのパスワードを サポートしている場合にだけ利用される。

変数 PASSWD の値は、クライアントが使用するユーザーの パスワードとなる。この情報は、プロトコルのレベルが充分高く、セッションレベルの パスワードをサポートしている場合にだけ利用される。

インストール

クライアントプログラムをどこに置くべきかは、各システム管理者が 判断すべき問題である。よって、以下はただの提案である。

クライアントソフトウェアは /usr/local/samba/bin/usr/samba/bin にインストールし、ディレクトリは 全ユーザーから読み出し可能で root のみ書き込み可能にすることが推奨される。 クライアントプログラム自身はすべてのユーザーから実行可能にするべきである。 クライアントを setuid や setgid しないように!

クライアントのログファイルは、そのユーザーだけが読み書き可能な ディレクトリに置くこと。

クライアントをテストするには、動作している SMB/CIFS サーバーの名前を 知らなくてはならない。smbd(8) は一般ユーザーでも起動することが できるので、ユーザーが利用できるポート(たいていは 1024 より大きいポート番号 ならどこでもよい)でデーモンとしてサーバーを起動することで、 適切なテスト環境となるだろう。

診断

クライアントによって出されたほとんどの診断メッセージは、 指定されたログファイルに記録される。ログファイルの名前はコンパイル時に 指定されるが、コマンドラインで変更することもできる。

利用できる診断メッセージの量と内容は、クライアントで設定された デバッグレベルに依存する。問題を抱えているなら、デバッグレベルを 3 に設定してログファイルに目を通してほしい。

バージョン

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

著者

オリジナルの Samba ソフトウェアと関連するユーティリティは、Andrew Tridgell によって作られた。Samba は現在、Linux カーネルが開発されているような 方法でのオープンソースプロジェクトである Samba Team によって開発されている。

日本語訳

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

このドキュメントの Samba 3.0.0 - 3.0.24 対応の翻訳は

  • 高橋 基信 (monyo@samba.gr.jp)

  • 佐藤 文優

  • はせがわ ようすけ

  • 山田 史朗 (shiro@miraclelinux.com)

によって行なわれた。

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

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

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

によって行なわれた。

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

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

  • matsuand(michio_matsuyama@yahoo.co.jp)

によって行われた。