# smbclient

## Name

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

## Synopsis

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 <terminal code>] [-c <command string>] [-i scope] [-O <socket options>] [-p port] [-R <name resolve order>] [-s <smb config file>] [-T<c|x>IXFqgbNan]

## DESCRIPTION

このツールは Samba スイートの一部である。

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

password

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

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

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

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

-s smb.conf

  重要なファイル `smb.conf` の位置を指定する。

-O socket options

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

-R <name resolve order>

  このオプションは Samba スイートに含まれるプログラムが ホスト名からIPアドレスを解決する際の手段、順序を決定するのに使用される。 オプションは、名前解決の手段ごとに異なる、 スペースで区切られた文字列である。

  オプションは以下の通り: "lmhosts"、"host"、"wins" そして "bcast"。 これらは、以下のような名前解決を行う。

  - `lmhosts` : Samba の lmhosts ファイルからIPアドレスを解決する。もし lmhosts の該当行に NetBIOS 名のタイプがない場合( lmhosts(5) を参照)、すべての NetBIOS 名のタイプが検索される。

  - `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 パラメータも 記述されていない場合、この順に名前解決が試行される。

-M NetBIOS name

  このオプションを指定すると、"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 をコピーすること。

-i scope

  このパラメータは、smbclient が生成された NetBIOS 名と通信する際に用いる NetBIOS スコープを指定する。 NetBIOS スコープについての詳細は、`rfc1001.txt` と `rfc1002.txt` を参照のこと。 NetBIOS スコープは、非常に 稀にしか用いられない。 このパラメータを設定できるのは、システム管理者として、互いに通信する必要がある全ての NetBIOS マシンの管理責任を持っている時くらいだろう。

-N

  このパラメータが指定されると、クライアントからユーザへの パスワード要求が抑制される。これはパスワード不要のサービスに アクセスするときに便利である。

  コマンドラインにパスワードの指定がなかったり、 このパラメータが指定されていないと、 クライアントはパスワードを要求する。

-n NetBIOS name

  デフォルトでは、クライアントは NetBIOS 名として、 ローカルマシンのホスト名(を大文字化したもの)を用いる。 このパラメータは、ホスト名を置き換えて、任意の NetBIOS 名を用いる事を可能にする。

-d debuglevel

  debuglevel は、0 から 10 の整数か、 英文字 A を指定する。

  このパラメータが指定されていないときのデフォルト値は 0 である。

  この値を大きくするほど、クライアントのより詳細な動作状況が ログファイルに記録される。 レベル0 では、致命的なエラーや非常に重大な警告のみが記録される。 レベル1 は、日常的に使用すのに適したレベルであり、 実行された操作についての小量の情報が生成される。

  1 より大きいレベルを指定した場合は、大量のログが生成されるので、 問題解決の時にのみ使用すべきである。 3 より大きいレベルは、開発者だけが利用するように設計されており、 莫大な量のデータを出力するが、ほとんどは暗号のようなものである。 debuglevel に A を指定すると、全ての デバッグメッセージが出力される。これは、 開発者 (およびコードが内部的にどのように実行されているかを 本当に 知りたい人) 用の設定である。

  このパラメータを指定すると、`smb.conf(5)` ファイルに設定した log level パラメータより優先される事に注意。

-p port

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

-l logfilename

  指定すると、logfilenameは、ログファイルのベース名 (base name) を指定する。このファイルには、動作中のクライアントが操作データを記録する。

  デフォルトのベース名は、コンパイル時に指定される。

  ベース名は、実際のログファイル名を生成する際に用いられる。 例えばベース名が "log" の場合、デバッグファイル名は、 `log.client` のようになる。

  生成されたログファイルは、クライアントによって削除される事はない。

-h

  クライアントのヘルプメッセージを表示する。

-I IP-address

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

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

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

-E

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

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

-U username[%pass]

  SMB のユーザ名、またはユーザ名とパスワードを与える。 %pass が指定されなければ、ユーザに問い合わされる。クライアントは まず USER 環境変数をチェックし、次に LOGNAME をチェックする。いずれかが存在すれば その値の文字列を大文字にする。それらの変数に '%' 記号が 含まれていれば、それ以降はパスワードとして扱われる。 これらの環境変数が見つからなければ、ユーザ名には `GUEST` が使用される。

  環境変数に(%pass 形式を使用した)パスワードが 含まれていなければ、smbclient は パスワードを得るためにPASSWD 環境変数を探す。

  第三の選択肢は、ドメイン名、ユーザ名とパスワードを 平文で書いた「証明書ファイル」の使用である。 この方法は、主にコマンドラインや環境変数を経由してパスワードを 扱うことが好まれないスクリプトのために提供される。 この方法を使用するときは、好ましくないユーザがファイルに アクセスできないようにパーミッションが正しく設定されていることを確認すること。 詳細は -A を参照。

  パスワードをスクリプトや PASSWD 環境変数に 含める時は注意深く行うこと。多くのシステムでは、 実行中のプロセスのコマンドラインは ps コマンド で表示されてしまう。安全の為には、常に smbclient がパスワードプロンプトを表示するようにし、パスワードを直接入力するようにすること。

-A filename

  このオプションには 接続に使用するユーザ名、ドメイン名、パスワードを読み込むための ファイルを指定する。ファイルのフォーマットは次のとおり。

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

  もし domain パラメータがない場合、現在のワークグループ名が 使われる。好ましくないユーザからファイルにアクセスできないように パーミッションを正しく設定されていることを確認すること。

-L

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

-t terminal code

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

  terminal code には sjis、euc、jis7、jis8, junet、hex、cap がある。 これは全てではなく、完全なリストは、Samba のソースコードをチェックして欲しい。

-b buffersize

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

-W WORKGROUP

  接続時に `smb.conf` に記述されている workgroup パラメータで指定されたデフォルトの ワークグループ(ドメイン)名よりも優先する。これは特定のサーバへの 接続時に必要かも知れない。

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

  - 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 *

-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 を指定すると、 ! コマンドはローカルでシェルを起動し、指定されたシェルコマンドを起動する。 コマンドを指定しないと、ローカルなシェルが起動する。

altname file

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

cancel jobid0 [jobid1] ... [jobidN]

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

chmod file mode in octal

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

chown file uid gid

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

cd [directory name]

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

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

del <mask>

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

dir <mask>

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

exit

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

get <remote file name> [local file name]

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

help [command]

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

lcd [directory name]

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

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

link source destination

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

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 モードで行われることに注意してほしい。

print <file name>

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

  printmode コマンドも参照のこと。

printmode <graphics or text>

  印刷モードを、バイナリデータ (グラフィカルな情報など)用、 またはテキスト用に設定する。設定後の print コマンドで、 現在設定されている印刷モードが利用される。

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 コマンドを使って指定されたマスクは無視される。

rm <mask>

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

rmdir <directory name>

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

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

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

  setmode myfile +r

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

symlink source destination

  このコマンドはサーバのCIFS UNIX拡張のサポートに依存し、 サーバがサポートしていない場合は失敗する。クライアントは、source と destination ファイルの間にシンボリックリンクを作成するようにサーバに要求する。source ファイルは 存在していなければならない。サーバは現在接続している共有の外をさす リンクは作成しないことに注意。これは 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 はバックアップしたファイルのアーカイブビットをクリアする (読み書きできる共有において)。

## 注意

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

ある種のサーバに接続するときには、-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 バージョン 2.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 が行った。

## 日本語訳

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

- 佐藤文優(fumiya@samba.gr.jp)

- はせがわ ようすけ