smbclient — サーバ上の SMB/CIFS リソースにアクセスする ftp のようなクライアント
smbclient {servicename} [password] [-b <buffer size>] [-d debuglevel] [-D Directory] [-U username] [-W workgroup] [-M <netbios name>] [-m maxprotocol] [-A authfile] [-N] [-l logfile] [-L <netbios name>] [-I destinationIP] [-E] [-c <command string>] [-i scope] [-O <socket options>] [-p port] [-R <name resolve order>] [-s <smb config file>] [-T<c|x>IXFqgbNan] [-k]
このツールは Samba(7) スイートの一部である。
smbclient は SMB/CIFS サーバと「会話」をする ことができるクライアントである。ftp プログラム (ftp(1)を参照) とよく似たインターフェースを提供し、 サーバからローカルマシンへファイルをダウンロードしたり、 ローカルマシンからサーバへとファイルをアップロードしたり、 サーバからディレクトリ情報を取得するなどの動作を行う。
servicename は利用したいサービスのサーバ上での 名前である。サービス名は //server/service のような形をとり、server は利用したい サービスを提供している SMB/CIFS サーバの NetBIOS 名であり、 service は提供されているサービスの名前である。 したがって、SMB/CIFS サーバ "smbserver" の "printer" というサービスに接続するには、//smbserver/printer というサービス名を使用する。
必要とされるサーバ名が、一概にサーバの IP (DNS) ホスト名であるとは限らないことに注意! 必要とされる名前は NetBIOS 名であり、その名前はサーバの動作しているマシンの IP ホスト名と同じかも知れないし、 異なっているかも知れない。
サーバ名を解決する方法は、smbclient の -R オプションか、smb.conf(5) ファイル中の name resolve order パラメータに よって決定される。 このパラメータにより、管理者が、名前解決の順番や方式を変更する ことが可能になっている。
指定したサーバのサービスへアクセスするために 必要なパスワードである。このパラメータが指定された場合、 -N オプション (パスワードプロンプトの抑止) が自動的に設定される。
デフォルトのパスワードはない。 (このパラメータを用いるか、 -U オプション (以下を参照) でパスワードが 指定されなかった事により) パスワードがコマンドラインから指定されず、 -N オプションも指定されていない場合、 サーバがパスワードを要求しているかどうかに関わらず、 クライアントはパスワード入力を求める。 (パスワードが必要でない場合は、 単に ENTER キーを入力する事で、 空のパスワードを渡せばよい。)
注意: ある種のサーバ (OS/2、Windows for Workgroup など) は、 大文字のパスワードを要求する。小文字や、大文字小文字の混じった パスワードは拒否されるであろう。
パスワードをスクリプト中に記述するときは、十分注意すること。
ホスト名から IP アドレスを解決する際に利用するネームサービスと利用する順序を指定する。 オプションの値には、ネームサービスごとに異なる文字列をスペースで区切って指定する。
指定できるのは「lmhosts」、「host」、「wins」 そして「bcast」である。それぞれ以下のような名前解決を行う:
lmhosts: Samba の lmhosts ファイルから IP アドレスを探す。 lmhosts 内の NetBIOS 名に名前種別がついていない場合 (詳細は lmhosts(5) を参照)、 検索の際、すべての名前種別に一致する。
host: システム標準の /etc/hosts ファイルや NIS、DNS などの方式を利用してホスト名から IP アドレスを解決する。 この名前解決の手順はオペレーティングシステムに依存する。 例えば IRIX や Solaris は、 /etc/nsswitch.conf ファイルにより制御されている。 注意: この方式は、問い合わされた NetBIOS 名の種別が 0x20 (サーバ) であるときのみ利用され、 それ以外の場合は利用されない。
wins: wins server パラメータに列挙された IP アドレスに対して名前の問い合わせを行なう。 WINS サーバが指定されていないと、この方式は無視される。
bcast: interfaces パラメータに列挙されたローカルインターフェイスに対し、 ブロードキャストを行う。 対象のホストが同じサブネット内に存在している必要があるため、 あまり確実ではない名前解決の方式である。
このパラメータが指定されていなければ、 smb.conf ファイルで定義されている name resolve order パラメータの値が使用される。
デフォルトの順序は lmhosts, host, wins, bcast である。 このパラメータが指定されず、 smb.conf ファイルにも name resolve order パラメータ指定がなければ、 この順番で名前解決が試行される。
このオプションを指定すると、"WinPopup" プロトコルを使って、別のコンピュータへメッセージを送信する事が できる。接続が確立してから任意のメッセージを入力する。 終了するには、^D (control-D) を入力する。
受信したコンピュータで WinPopup が起動していれば、 ユーザはおそらくビープ音とともに、メッセージを受信する事になる。 WinPopup が起動していないとメッセージは失われ、 なんのエラーメッセージも表示されない。
1600 byte を越えるメッセージは、プロトコルの仕様による 制限のため、自動的に切り捨てられる。
便利な使用例として、smbclient を通してメッセージを cat する方法を紹介しよう。例えば: cat mymessage.txt | smbclient -M FRED とすると、 mymessage.txt ファイルの内容をメッセージ としてマシン FRED に送ることができる。
また -U や -I オプションも、メッセージの FROM や TO に相当する設定を指定したい場合は、 便利なこともある。
Samba で WinPopup メッセージを受け取る方法は、smb.conf(5) の message command パラメータを参照のこと。
注意: WfWg PC で常にメッセージを 受信できるようにしたいなら、startup グループに WinPopup をコピーすること。
この値は、サーバへ接続するときに利用する TCP のポート番号である。SMB/CIFS サーバ用の標準の (well-known) TCP ポート番号は 139 であり、これがデフォルト値となる。
コマンドラインオプションの要約を表示する。
IP address は接続する サーバの IP アドレスを表す。これは、標準的な "a.b.c.d" 形式で指定する。
通常クライアントは前述した name resolve order パラメータ中で記述した NetBIOS 名の解決メカニズムを 用いて検索する事により、その SMB/CIFS サーバのアドレスを 解決しようとする。このパラメータを使うことで、クライアントは、 強制的に指定された IP アドレスをサーバの IP アドレスとみなし、 接続しようとしているリソースの NetBIOS 名を上書きする。
このパラメータのデフォルト値はない。 このパラメータが指定されなければ、アドレスは前述したようにして クライアントが自動的に決定する。
このパラメータは、クライアントがメッセージを 標準出力ではなく、標準エラー出力 (stderr) に出力するようにする。
デフォルトでは、クライアントはメッセージを標準出力 - 一般的にはユーザの tty - に出力する。
このオプションを指定すると、サーバ上で利用可能な サービスを一覧することができる。smbclient -L host のようにして使うと、サービスの一覧が表示される。 NetBIOS 名が TCP/IP の DNS のホスト名に一致しない場合や、 別のネットワーク上のホストの情報を表示しようとしている場合は、 -I オプションが役にたつ。
リモートサーバが表示するファイル名をどのように変換すべきかを 指定する。通常、アジア言語のマルチバイト文字の UNIX 上での実装は、 SMB/CIFS サーバと異なる文字セットを使用している (例えば SJIS と EUC のように)。 このパラメータを設定することで、smbclient は UNIX 上のファイル名と SMB サーバ上のファイル名との変換を正しく 行うようになる。このオプションは厳格にテストされたものではなく、 多少問題があるかも知れない。
terminal code には CWsjis, CWeuc, CWjis7, CWjis8, CWjunet, CWhex, CWcap がある。これらは全てではなく、完全なリストは、 Samba のソースコードをチェックして欲しい。
このオプションはサーバとファイルの送受信を 行なうときの送受信バッファのサイズを変更する。 デフォルト値は 65520 バイトである。この値を (最小 1200 バイトまで) 小さくすることで、 Windows 9x サーバとのファイルの転送がスピードアップすることが 確認されている。
プログラムのバージョン番号を表示する。
サーバーが必要とする詳細な設定を含む設定ファイルを指定する。 このファイルには、 サーバーが提供するサービスに関する記述や、 どの printcap ファイルを利用するかといった情報が含まれている。 詳細は smb.conf を参照のこと。 デフォルトの設定ファイルの名前は、コンパイル時に決定される。
デバッグレベルを debuglevel に設定する。 debuglevel は、0 から 10 までの整数である。 このパラメータを指定しないときのデフォルト値は 0 である。
この値を大きくするほど、 サーバーの動作に関するより詳細な情報がログファイルに記録される。 レベル 0 では、致命的なエラーと重大な警告のみが記録される。 レベル 1 は日々の運用に適しており、 少量の稼働状況に関する情報を生成する。
1 より上のレベルは大量のログが生成されるので、 問題解決の時にのみ使用すべきである。 3 より上のレベルは開発者だけが利用するように設計されており、 莫大な量のログデータが生成される。 そのほとんどは非常に謎めいた内容となっている。
ログ/デバッグファイルのファイル名。 拡張子として ".client" が追加される。 ログファイルはクライアントによって削除されることはない。
このオプションを指定すると、 クライアントはユーザーへのパスワード入力要求をしなくなる。 パスワードが必要ないサービスにアクセスするときに有用である。
コマンドラインにパスワードが指定されておらず、 このオプションも指定されていないと、 クライアントはパスワードを要求する。
Kerberos による認証を試みる。 アクティブディレクトリ環境でのみ有効である。
接続に使用するユーザー名とパスワードを指定したファイル filename から読み込む。 ファイルの形式は次の通り:
username = <value> password = <value> domain = <value>
ファイルのパーミッションを確認し、 ほかのユーザーから参照されないように注意すること。
SMB のユーザー名、またはユーザー名とパスワードを指定する。
パスワードとして %password を指定しないと、 ユーザーにパスワードの入力を求める。 このオプションが指定されていない場合、 クライアントは環境変数 USER, LOGNAME の有無を順番に調べ、 設定してあるならその値を大文字にしてユーザー名として使用する。 それらが設定されていなければ、GUEST をユーザー名として使用する。
このほかに、 平文のユーザー名とパスワードを記述した認証ファイルを使用するオプションがある。 このオプションは主にスクリプト向けに用意されており、 認証情報をコマンドラインや環境変数に含めたくない場合に有用である。 このオプションを利用するときは、 ファイルのパーミッションを確認し、 ほかのユーザーから参照されないように注意すること。 詳細は -A オプションを参照のこと。
パスワードをスクリプトに含める場合は注意すること。 多くのシステムでは、実行中のプロセスのコマンドラインは ps コマンドで参照することができてしまう。 安全のため、 クライアントが必ずパスワードを要求するようにして、 パスワードを直接入力するようにしておくこと。
Samba 自身の NetBIOS 名を指定する。 このオプションは、 smb.conf の netbios name パラメータの設定に相当する。 コマンドラインの指定は、 smb.conf 内の設定よりも優先される。
NetBIOS スコープを指定する。 NetBIOS スコープは、 クライアントが通信用の NetBIOS 名を生成するときに利用される。 NetBIOS スコープの詳細な利用方法については、 RFC 1001 と RFC 1002 を参照のこと。 NetBIOS スコープは、ごく稀にしか利用されない。 NetBIOS システム全体を運営している管理者が、 そのシステム内の相手と通信する場合にのみ、 このパラメータを設定する。
ユーザー名の SMB ドメインを指定する。 このオプションは、smb.conf 内のデフォルトのドメイン設定よりも優先される。 ドメイン名としてサーバーの NetBIOS 名を指定すると、 クライアントは (ドメインの SAM ではなく) サーバーのローカル SAM を使用してログオンを試みる。
クライアントのソケットに設定する TCP のソケットオプション。 指定できる値については、 smb.conf マニュアルページ中の socket options パラメータを参照のこと。
smbclient は SMB/CIFS 共有上の全てのファイルに おいて、tar(1) 互換のバックアップを行う事が できる。このオプションに設定可能な副次的な tar フラグは以下のとおり。
c - UNIX 上で tar ファイルを作成する。このオプションの後には tar ファイルの名前、テープデバイス、もしくは標準出力を意味する "-" のいずれかを指定しなければならない。 標準出力を指定した場合、ログレベルを最低の -d0 にして、 tar ファイルの出力が破壊されないようにすること。 このフラグは x フラグと互いに 排他的な関係にある。
x - ローカルの tar ファイルを共有に展開 (リストア) する。-D オプションが 指定されていないと、tar ファイルは共有の最上位 ディレクトリからリストアされる。 このオプションの後には tar ファイルの名前、デバイスの名前、 あるいは 標準入力を意味する "-" を指定しなければならない。 このフラグは c フラグと互いに 排他的な関係にある。リストアされたファイルは、作成日時 (mtime) が tar ファイルに保存された時点の日付になる。 また、現在ディレクトリについては、作成日時が正しく リストアされない。
I - 指定したファイルと ディレクトリを処理の対象にする。このオプションは、ファイル名が 指定されている場合のデフォルトの動作であり、tar ファイルを 展開または作成する時に、指定されたものだけを処理の対象にする (従って、それ以外のものは全て除外される)。 下記の例を参照のこと。ファイル名のワイルドカード指定機能は、 二つある方式のどちらかを使う。下記の r オプションを参照のこと。
X - 指定したファイルと ディレクトリを 処理の対象から除外する。このオプションは tar ファイルを展開または作成する時に、指定されたものを処理の対象から 除外する。下記の例を参照のこと。 ファイル名のワイルドカード 指定機能は、二つある方式のどちらかを使う。下記の r オプションを参照のこと。
b - ブロックサイズ。 このオプションの後には有効な (1 以上の) ブロックサイズを 指定しなければならない。このオプションにより、tar ファイルは、 ブロックサイズ*TBLOCK (通常 512 バイト) ブロックの単位で 書き出されるようになる。
g - インクリメンタル (増分)。 アーカイブビットが立っているファイルだけをバックアップ する。 c フラグが指定されている時のみ 意味をもつ。
q - 表示の抑止(quiet)。 動作中の状態メッセージの表示を抑止する。これは、tar モードでも 同様である。
r - 正規表現。 HAVE_REGEX_H フラグを設定してコンパイルした場合は、処理対象に 含めるか除外するファイルを指定する為に正規表現を使うことができる。 (訳注: 原文では "excluding or excluding files" となっているが、 "including or excluding files" の誤りだと思われる) しかし、このモードは非常に遅い。HAVE_REGEX_H フラグなしで コンパイルされた場合は、 * と ? を用いる 限定的なワイルドカードが 使用できる。
N - 更新(newer)。 このオプションの後には、ファイル名を指定する必要がある。 そのファイルの日付と作成中に共有上で見付かったファイルの日付とが 比較される。指定されたファイルより新しいファイルだけが tar ファイルにバックアップされる。 c フラグが指定されている時のみ意味をもつ。
a - アーカイブビットを セットする。ファイルがバックアップされた時点でアーカイブビットが クリアされる。 g および c フラグが設定されている時のみ意味をもつ。
Tar における長いファイル名
smbclient の tar オプションは、 現在 バックアップとリストアの両方で長いファイル名をサポートしている。しかし、 ファイルのフルパス名は 1024 バイト以下である必要がある。また tar アーカイブが作成された時、 smbclient の tar オプションはそのアーカイブ内の全てのファイルを絶対ファイル名ではなく、 相対ファイル名で記録する。
Tar ファイル名
全てのファイルには、DOS のパス名('\'をパス名の区切りとする) を付与するか、UNIX のパス名 ('/'をパス名の区切りとする) を付与する ことができる。
例
tar ファイルの backup.tar を mypc 上の myshare (パスワードなし) にリストアする。
smbclient //mypc/yshare "" -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
(訳注: 原文は -tc となっているが、-Tc が正しいと思われる。また、 \ はコマンドライン上では \\ とする必要がある。)
共有上にある全てのファイルとディレクトリを含む tar ファイルを作成する。
smbclient //mypc/myshare "" -N -Tc backup.tar *
動作を開始する前に、ディレクトリ initial directory に移動する。おそらく、利用されるのは tar オプション -T が指定された ときだけだろう。
command string はセミコロンで区切ったコマンドの リストである。このコマンドは、標準入力から受け取るコマンドの代わりに 実行される。-N オプションが -c オプションによって、暗黙の内に設定される。
このオプションが特に役立つのは、スクリプトで利用したり、 標準入力を例えば -c 'print -' のようにして サーバに出力したりする場合である。
クライアントが起動すると、ユーザには以下のようなプロンプトが表示される。
smb:\>
バックスラッシュ ("\\") はサーバ上の現在の作業ディレクトリを示しており、 作業ディレクトリを変えるとこの表示も変わる。
このプロンプトは、クライアントの準備ができ、ユーザのコマンド実行を 待機している事を示している。各コマンドは、一つの単語であるが、コマンドによっては、 コマンド固有のパラメータを指定する事もできる。コマンドとパラメータは、 特に注釈がない限り、スペースで区切られる。 全てのコマンドは大文字小文字を識別しない。 コマンドのパラメータは、コマンドによって大文字と小文字が区別されたり されなかったりする。
スペースが含まれているファイル名は、名前をダブルクオート文字で、例えば、 "a long file name" のように括る事で指定できる。
大括弧 ("[" と "]") で括られて示されているパラメータ (例えば "[parameter]") は、オプションである。指定されなかった場合、コマンドは適切なデフォルト値を用いる。 不等号記号 ("<" と ">") で括られて示されているパラメータ (例えば "<parameter>") は、必須である。
サーバ上でのコマンドの実行は、実際にサーバに対して要求を発行する事で 実行される事に注意してほしい。従って、その動作はサーバ間で異なる場合があり、 サーバの実装方法に依存している。
利用できるコマンドを以下にアルファベット順で紹介する。
command を指定すると、? コマンドは指定されたコマンドについての簡潔で有益な説明を表示する。 command を指定しないと、利用できるコマンドの一覧が表示される。
shell command を指定すると、 ! コマンドはローカルでシェルを起動し、指定されたシェルコマンドを起動する。 コマンドを指定しないと、ローカルなシェルが起動する。
クライアントは、ファイルまたはディレクトリの "代わり" の名前 (8.3形式の名前) を返すようにサーバに要求する。
クライアントは、与えられたジョブ ID の印刷ジョブを キャンセルするようにサーバに要求する。
このコマンドはサーバの CIFS UNIX 拡張のサポートに依存し、 サーバがサポートしていない場合は失敗する。クライアントは、UNIX での標準形式である 8 進数での UNIX パーミッションに変更するように サーバに要求する。
このコマンドはサーバのCIFS UNIX拡張のサポートに依存し、 サーバがサポートしていない場合は失敗する。クライアントは、与えられた 10進数のユーザID、グループIDに所有者を変更するようにサーバに要求する。 現在は、与えられた名前からリモートの uid と gid を検索する方法は ないことに注意。これは、将来のバージョンの CIFS UNIX 拡張によって 対応されるかもしれない。
"directory name" を指定すると、 サーバ上の現在の 作業ディレクトリが指定されたディレクトリになる。 何らかの理由で指定されたディレクトリにアクセスできないと、 操作は失敗する。
ディレクトリ名を指定しないと、 サーバ上の現在の作業ディレクトリが 表示される。
クライアントがサーバに対し、サーバ上の現在の 作業ディレクトリで mask に一致するすべての ファイルを削除するように要求する。
サーバ上の現在の作業ディレクトリで、mask に一致するファイルの一覧をサーバから入手し、表示する。
サーバとの接続を終了し、プログラムを終了する。
remote file name という名前の ファイルをサーバからクライアントを実行しているマシンへコピーする。 local file name が指定されていると、 それがローカルにコピーされるファイルの名前となる。 smbclient によるファイルの転送は、すべて binary モードで行われることに注意してほしい。lowercase コマンドも参照のこと。
前述の ? コマンドを参照のこと。
directory name を指定すると、 ローカルマシン上の現在の作業ディレクトリが指定されたディレクトリになる。 何らかの理由で指定されたディレクトリにアクセスできないと、 操作は失敗する。
ディレクトリ名を指定しないと、ローカルマシン上の現在の 作業ディレクトリが表示される。
このコマンドはサーバの CIFS UNIX 拡張のサポートに依存し、 サーバがサポートしていない場合は失敗する。クライアントは、source と destination ファイルの間にハードリンクを作成するようにサーバに要求する。 source ファイルが存在してはいけない。
get および mget コマンドにおいて、ファイル名を 小文字化するかどうかの設定を切り換える。
小文字化を ON にすると、 get および mget コマンドを使ったときに、 ローカルのファイル名が小文字に変換される。これは、サーバから (いわゆる) MS-DOS 形式の名前を持つファイルをコピーするときに役立つ。 UNIX システムでは、ファイル名を小文字にするのが一般的であるためである。
前述の dir コマンドを参照のこと。
このコマンドは、mget と mput コマンドが再帰的な操作を 行うときに用いるマスクを設定する。
再帰モードが ON のとき、 mget と mput コマンドに指定するマスクは ファイルに対するフィルタとしてではなく、ディレクトリに対するフィルタ として働く。
mask コマンドで指定するマスクは、それらのディレクトリ配下の ファイルをフィルタするために必要となる。たとえば、mget コマンドが "source*" のときに mask が指定されており、mask コマンドで指定されたマスクが "*.c" で、再帰モードが ON であったとする。すると mget コマンドは、 現在の作業ディレクトリ中の "source*" に一致するすべてのディレクトリ配下で、 "*.c" に一致するすべてのファイルを取得する。
デフォルトでは mask の値は空 ('*' と同等) になっており、 mask コマンドを使って変更されるまで変わらない。mask の値は、最後に 指定された値を保ち続ける。 予想外の結果を招かないように、mget か mput コマンドを使った後には、 mask の値を '*' に戻しておくことが賢明である。
mkdir コマンドを参照のこと。
mask に一致するすべての ファイルを、サーバからクライアントを実行しているマシンにコピーする。
再帰モードになっているかどうかによって、mask の解釈が異なることに注意。詳細は recurse と mask コマンドを参照のこと。smbclient によるファイルの転送は、 すべて binary モードで行われることに注意してほしい。 lowercase も参照のこと。
指定された名前の新しいディレクトリを (ユーザのアクセスが 許可されている) サーバ上に作成する。
ローカルマシン上の現在の作業ディレクトリ内で mask に一致するすべてのファイルを、サーバ上の現在の 作業ディレクトリにコピーする。
再帰モードになっているかどうかによって、mask の解釈が異なることに注意。詳細は、recurse と mask コマンドを参照のこと。smbclient によるファイルの転送は、 すべて binary モードで行われることに注意してほしい。
指定したローカルマシン上のファイルを、サーバ上の 印刷サービスを使って印刷する。
printmode コマンドも参照のこと。
印刷モードを、バイナリデータ (グラフィカルな情報など) 用、またはテキスト用に設定する。設定後の print コマンドで、 現在設定されている印刷モードが利用される。
mget と mput コマンドの操作において、ファイル名の確認を 行うかどうかの設定を切り換える。
この設定が ON であると、これらのコマンドの実行中、各ファイルごとに 転送するかどうかをユーザに確認する。設定が OFF であると、指定された すべてのファイルが確認なしに転送される。
local file name という名前の ファイルをクライアントを実行しているマシンからサーバにコピーする。 remote file name が指定されていると、それがサーバに コピーされるファイルの名前となる。 smbclient によるファイルの転送は、すべて binary モードで行われることに注意してほしい。lowercase コマンドも参照のこと。
印刷のキューを表示し、印刷ジョブの ID、名前、サイズ、 現在の状態が見られる。
exit コマンドを参照のこと。
rmdir コマンドを参照のこと。
mget と mput コマンドにおいて、ディレクトリを再帰的に 辿るかどうかの設定を切り換える。
この設定が ON であると、それらのコマンドは、対象となるディレクトリ (すなわち、コピー元となるディレクトリ) 内のすべてのディレクトリを処理し、 コマンドに指定した mask に一致するディレクトリを再帰的に辿る。 ファイルは、mask コマンドを使って指定したマスクに一致するものだけが、 処理の対象となる。 mask コマンドも参照のこと。
この設定が OFF である場合、コピー元となるマシンの作業ディレクトリから、 mget または mput コマンドに指定されたマスクに一致するファイルだけが コピーされる。mask コマンドを使って指定されたマスクは無視される。
mask に一致するすべての ファイルをサーバ上の現在の作業ディレクトリから削除する。
指定された名前の (ユーザのアクセスが許可されている) ディレクトリをサーバから削除する。
DOS 版の attrib コマンドと同等に、ファイルの パーミッションを設定する。 例えば
setmode myfile +r
は myfile を読み込み専用にする。
このコマンドはサーバの CIFS UNIX 拡張のサポートに依存し、 サーバがサポートしていない場合は失敗する。クライアントは、source と destination ファイルの間にシンボリックリンクを作成するようにサーバに 要求する。source ファイルは存在してはいけない。 サーバは現在接続している共有の外をさすリンクは作成しないことに注意。 これは Samba server によって強制される。
tar 作業を行う。 前述の -T コマンドラインオプションを参照のこと。このコマンドの動作は tarmode コマンド (下記を参照) に影響される。 パラメータ g (増分) と N (更新) を使うと、tarmode の設定に影響を及ぼす。 tar x (展開) 時のオプションに "-" (標準入力) を使っても動作しないだろう。 かわりにコマンドラインオプションで使うようにすること。
ブロックサイズ。このオプションの後には有効な (1 以上の) ブロックサイズを指定しなければならない。 このオプションにより、tar ファイルは、 blocksize*TBLOCK (通常 512 バイト) ブロックの単位で書き出されるようになる。
アーカイブビットに関する tar の動作を設定する。 full (完全) モードでは、tar はアーカイブビットの状態に関わらず、 すべてをバックアップする (これがデフォルトのモード)。 incremental(増分) モードでは、tar はアーカイブビットが設定された ファイルだけをバックアップする。 reset モードでは、tar はバックアップしたファイルのアーカイブビットを クリアする (読み書きできる共有において)。
サーバによっては、与えられたユーザ名、パスワード、共有名 (サービス名とも言う)、マシン名などの大文字小文字を厳格に識別する。 サーバへの接続が失敗したときは、すべてのパラメータを大文字にして 試してみよう。
ある種のサーバに接続するときには、-n オプションを使わなければ ならないような場合がよくある。たとえば OS/2 の LanManager では、有効な NetBIOS 名が使われていなければならない。 よって、サーバが知っている有効な名前を与える必要がある。
サーバが LANMAN2 かそれ以降のプロトコルをサポートしている場合、 smbclient は長いファイル名をサポートする。
変数 USER の値は、クライアントが使用するユーザの名前となる。 この情報は、プロトコルのレベルが充分高く、セッションレベルのパスワードを サポートしている場合にだけ利用される。
変数 PASSWD の値は、クライアントが使用するユーザの パスワードとなる。この情報は、プロトコルのレベルが充分高く、セッションレベルの パスワードをサポートしている場合にだけ利用される。
変数 LIBSMB_PROG にはサーバへの接続に代わりクライアントが 接続する、system() で起動されるパスを設定する。この機能は aid の開発を主用途とし、 LMHOSTS ファイルの利用時に効果を発揮する。
クライアントプログラムをどこに置くべきかは、各システム管理者が 判断すべき問題である。よって、以下はただの提案である。
クライアントソフトウェアは /usr/local/samba/bin か /usr/samba/bin にインストールし、ディレクトリは 全ユーザから読み出し可能で root のみ書き込み可能にすることが推奨される。 クライアントプログラム自身はすべてのユーザから実行可能にするべきである。 クライアントを setuid や setgid しないように!
クライアントのログファイルは、そのユーザだけが読み書き可能な ディレクトリに置くこと。
クライアントをテストするには、動作している SMB/CIFS サーバの名前を 知らなくてはならない。smbd(8) は一般ユーザでも起動することが できるので、ユーザが利用できるポート (たいていは 1024 より大きいポート番号 ならどこでもよい) でデーモンとしてサーバを起動することで、 適切なテスト環境となるだろう。
クライアントによって出されたほとんどの診断メッセージは、 指定されたログファイルに記録される。ログファイルの名前はコンパイル時に 指定されるが、コマンドラインで変更することもできる。
利用できる診断メッセージの量と内容は、クライアントで設定された デバッグレベルに依存する。問題を抱えているなら、デバッグレベルを 3 に設定してログファイルに目を通してほしい。
このマニュアルページは Samba スィートのバージョン 3.0 用である。 (訳注: 原文では 2.2 用となっているが、3.0 に使用されるパラメータの項目が 増えているため、3.0 とした。)
オリジナルの Samba ソフトウェアと関連するユーティリティは、Andrew Tridgell によって作られた。Samba は現在、Linux カーネルが開発されているような 方法でのオープンソースプロジェクトである Samba Team によって開発されている。
オリジナルの Samba のマニュアルページは Karl Auer によって書かれた。 マニュアルページのソースは YODL 形式(別の、優秀なオープンソースソフトウェアで、 ftp://ftp.icce.rug.nl/pub/unix/ にある)で変換され、Jeremy Allison によって Samba 2.0 リリースのために更新された。 Samba 2.2 のための DocBook 形式への変換は Gerald Carter が行った。 Samba 3.0 のための DocBook XML 4.2 形式の変換は Alexander Bokovoy によって行われた。