Name

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

Synopsis

smbclient [-b <buffer size>] [-d debuglevel] [-e] [-L <netbios name>] [-U username] [-I destinationIP] [-M <netbios name>] [-m maxprotocol] [-A authfile] [-N] [-g] [-i scope] [-O <socket options>] [-p port] [-R <name resolve order>] [-s <smb config file>] [-k] [-P|--machine-pass] [-c <command>]

smbclient {servicename} [password] [-b <buffer size>] [-d debuglevel] [-e|--encrypt] [-D Directory] [-U username] [-W workgroup] [-M <netbios name>] [-m maxprotocol] [-A authfile] [-N] [-g] [-l log-basename] [-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

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 パラメーターに よって決定される。 このパラメーターにより、管理者が、名前解決の順番や方式を変更する ことが可能になっている。

password

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

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

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

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

-R <name resolve order>

このオプションは、Samba スイートのプログラムによって、ホスト名と IP アドレスの名前解決のためにどのようなネーミングサービスをどのような順序で使用するかを決めるのに使用される。このオプションには、名前解決オプションを文字列のかたちで指定する。複数を指定する場合はスペースで区切る。

  

指定できるのは、"lmhosts"、"host"、"wins"、"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 パラメーターに指定された既知のローカル・インターフェースそれぞれについてブロードキャストを行う。ターゲット・ホストがローカル接続サブネット上にある場合にしか使えないので、最も信頼性の低い名前解決法。

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

デフォルトの優先順位は、lmhosts、host、wins、bcast となる。このパラメーターがない場合、あるいはsmb.conf(5) ファイルの name resolve order パラメーターにエントリがない場合、この順序で名前解決方法が試行される。

-M NetBIOS name

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

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

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

便利な使用例として、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 といったユーティリティで処理 しやすくなる。

-P|--machine-pass

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

-?|--help

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

-I IP-address

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

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

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

-E

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

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

-L

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

-t terminal code

このオプションは、smbclient に対してリモートサーバーが表示するファイル名をどのように変換すべきかを 指定する。通常、アジア言語のマルチバイト文字の UNIX 上での実装は、 SMB/CIFS サーバーと異なる文字セットを使用している (例えば SJIS ではなく EUC、というように)。 このパラメーターを設定することで、smbclient は UNIX 上のファイル名と SMB サーバー上のファイル名との変換を正しく 行うようになる。このオプションは厳格にテストされたものではなく、 多少問題があるかも知れない。

terminal code には CWsjis, CWeuc, CWjis7, CWjis8, CWjunet, CWhex, CWcap がある。これらは全てではなく、完全なリストは、 Samba のソースコードをチェックして欲しい。

-b buffersize

このオプションはサーバーとファイルの送受信を 行なうときの送受信バッファーのサイズを変更する。 デフォルト値は 65520 バイトである。この値を (最小 1200 バイトまで) 小さくすることで、 Windows 9x サーバーとのファイルの転送がスピードアップすることが 確認されている。

-e|--encrypt

このコマンド行パラメーターは、UNIX拡張をサポートするリモート サーバーを要求する。 コネクション要求は暗号化される。これは、Samba3.2のための新しい機能であり、 Samba3.2以降のサーバーでのみ動作する。GSSAPIを使用してSMB暗号化をネゴシエートする。 もしも、ドメイン/ユーザー名/パスワード の3つ組が与えられた場合、暗号化 ネゴシエーション(kerberosまたはNTLMv1/v2)のため、与えられた証明書を使う。 もしも暗号化がネゴシエートできなかった場合、接続は失敗する。

-d|--debuglevel=level

level は0から10までの整数値である。 既定値の値は、パラメーターが設定されていなければ1である。

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

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

このパラメーターの指定は、smb.confファイル中の、 log level パラメーターの 指定よりも優先する。

-V

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

-s <configuration file>

サーバーが必要とする詳細な設定を含む設定ファイルを 指定する。このファイルには、サーバーが提供するサービスに関する記述や、 どの printcap ファイルを利用するかといった情報が含まれている。詳細は smb.conf を参照のこと。設定ファイルの名前の既定値は、コンパイル時 に決定される。

-l|--log-basename=logdirectory

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

-N

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

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

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

-k

Kerberos による認証を試みる。アクティブディレクトリ環境でのみ有効である。

-A|--authentication-file=filename

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

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

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

-U|--user=username[%password]

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

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

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

パスワードをスクリプトに含める場合は注意すること。多くのシステムでは、実行 中のプロセスのコマンドラインはpsコマンドで参照することが できてしまう。安全のため、必ず、rpcclientを使用して、 パスワード入力を要求し、直接入力するようにしておくこと。

-n <primary NetBIOS name>

Samba 自身の NetBIOS 名を指定する。このオプションは、 smb.conf中の、netbios name パラメーターの設定に相当する。コマンドラインの指定は、 smb.conf 内の設定よりも優先される。

-i <scope>

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

-W|--workgroup=domain

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

-O socket options

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

-T tar 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 オプションを参照のこと。

  • F - ファイルとディレクトリの一覧を含むファイルである。 Fオプションは、展開または作成時に含まれる ファイルとディレクトリのリストを含むファイル名として作成するためのtarファイルの名前となる。 (and therefore everything else to be excluded). 以下の例を参照のこと。ファイル名の globbingは2つの方法のどちらかで動作する。 下記の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/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

(訳注: 原文は -tc となっているが、-Tc が正しいと思われる。また、 \ はコマンドライン上では \\ とする必要がある。)

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

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

-D initial directory

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

-c command string

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

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

オペレーション(操作)

クライアントが起動すると、ユーザーには以下のようなプロンプトが表示される。

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である。

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 に一致するすべての ファイルを削除するように要求する。

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は既定値で64512バイトの 内部メモリバッファーを使用する。このコマンドは、16384 (0x4000)バイトから 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内部のテスト用のみに使われる。

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>

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

mput <mask>

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

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

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拡張を使って リモートファイルを削除する。

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 コマンドを参照のこと。

rd <directory name>

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

recurse

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

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

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

rename <old filename> <new filename>

サーバー上の現在の作業ディレクトリ上の old filenamenew filenameに改名する。

rm <mask>

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

rmdir <directory name>

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

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>

アーカイブビットに関する tar の動作を設定する。 full (完全) モードでは、tar はアーカイブビットの状態に関わらず、 すべてをバックアップする (これがデフォルトのモード)。 incremental(増分) モードでは、tar はアーカイブビットが設定された ファイルだけをバックアップする。 reset モードでは、tar はバックアップしたファイルのアーカイブビットを クリアする (読み書きできる共有において)。

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

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

volume

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

vuid <number>

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

注意

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

ある種のサーバーに接続するときには、-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.2 用である。

著者

オリジナルの 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 によって行われた。

日本語訳

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

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

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

  • 佐藤 文優

  • はせがわ ようすけ

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

によって行なわれた。

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

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

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

によって行なわれた。