# smbclient (1)

## Samba 2.0.7

## 23 Oct 1998 (JP-2000/01/20)

## NAME

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

## SYNOPSIS

smbclient servicename [password] [-s smb.conf] [-O socket options][-R name resolve order] [-M NetBIOS name] [-i scope] [-N] [-n NetBIOS name] [-d debuglevel] [-P] [-p port] [-l log basename] [-h] [-I dest IP] [-E] [-U username] [-L NetBIOS name] [-t terminal code] [-m max protocol] [-b buffersize] [-W workgroup] [-T<c|x>IXFqgbNan] [-D directory] [-c command string]

## DESCRIPTION

このプログラムは Samba システムの一部である。

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

## OPTIONS

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

  `//smbserver/printer`

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

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

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

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

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

  パスワードをスクリプト中に記述する時は、充分注意する事。

-s smb.conf
  このパラメータは、 Samba 設定ファイルである smb.conf へのパスを指定する。 このファイルは、マシン上の Samba の動作の全てを制御する。 smbclient もこのファイルを読み込む必要がある。

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

-R name resolve order
  このオプションを指定すると、smbclient のユーザは、 接続するホストの NetBIOS 名を解決する際に、 どの名前解決手段を使用するかを指定できる。

  オプションは、"lmhosts"、"host"、"wins"、"bcast" である。 これらは、以下のように名前の解決を行なう。

  - lmhosts : Samba の lmhosts ファイルから、 IP アドレスを解決する。lmhosts ファイルは、 smb.conf ファイルと 同じディレクトリに存在している事。

  - host : システムの /etc/hosts ファイルや NIS、 DNS を用いる標準的なホスト名から IP アドレスへの名前解決を使用する。 この名前解決の方式はオペレーティングシステムに依存している。 例えば IRIX や Solaris では、 /etc/nsswitch.conf ファイルにより制御されている。) . )

  - wins : smb.conf ファイル中の wins server パラメータで指定された IP アドレスに対して名前の問い合わせを行なう。 WINS サーバが指定されていなかった場合、この方式は無視される。

  - bcast : smb.conf ファイル中の interfaces パラメータに記述されたローカルインタフェースの各々に対し、 ブロードキャストを行なう。 これは対象のホストが同じサブネット内に存在している必要があるため、 あまり確実ではない名前解決の方式である。

  このパラメータが設定されていなかった場合、 smb.conf ファイル中で設定された (name resolve order) パラメータが使われる。

  規定値は、lmhosts、hosts、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
  このオプションはもはや使われていない。 Samba 2.0 は、サーバ側でデバイスのタイプを判別する。 したがって、プリンタである事を指定するフラグは必要でない。

-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
  クライアントが接続する際に使用するユーザ名を指定する。 クライアントが接続するサーバは、ユーザ単位でのアクセス制御ができ るプロトコルレベルで実行されている(共有レベルのパスワードを使う ダウンレベルサーバでない)必要がある。

  ユーザ名については、大文字小文字を厳格に識別するサーバや、 有効な NetBIOS 名である事を要求するサーバがある。

  ユーザ名が指定されていないと、大文字の環境変数 `USER` または `LOGNAME` の値がこの順で既定値となる。 ユーザ名が指定されず、これらの環境変数が両方とも設定されていなければ、 ユーザ名として "GUEST" が使われる。

  環境変数 `USER` に '%' 文字が含まれていると、 それ以降の文字はパスワードとして扱われる。 これにより環境変数に `USER=username%password` と設定する事で、 パスワードをコマンドラインで渡さなくても済む (コマンドラインは ps コマンドで見られてしまう可能性がある)。 (訳注: 環境変数も同様に ps コマンドで見られてしまう可能性がある)

  接続しようとしているサービスにパスワードが必要な場合、 -U を使い、 ユーザ名の後にパーセント文字 ("%") を付ける事により、 パスワードを与える事ができる。 例えば、ユーザ `"fred"`、パスワード `"secret"` でサービスに接続するには、コマンドラインで

  `-U fred%secret`

  と指定する。パーセント記号の前後にスペースが入らない事に注意して欲しい。

  パスワードをユーザ名の中で指定すると、 -N (パスワードプロンプトの抑止) が自動的に設定される。

  パラメータでパスワードを指定し、なおかつユーザ名の中でも指定すると、 ユーザ名の中で指定したパスワードが優先される。 パーセント記号の前後に何も指定しないと、 それぞれ空のユーザ名やパスワードが使われる。

  パスワードは、 環境変数 `PASSWD` にユーザのパスワードを記述することでも指定できる。 これは、セキュリティ上非常に問題になるシステムもあるが、 smbclient コマンドをスクリプトで使用する際に、 プロセスリスト中のコマンドラインにパスワードが表示されないという利点もある。 (訳注: 実際は環境変数も、プロセスリストで表示され得る)

  注意: 特定のサーバ (OS/2 と Windows for Workgroups が含まれる)では、 大文字だけからなるパスワードが要求される。 小文字や、大文字小文字の混じったパスワードは拒否される。

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

-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 のソースコードをチェックして欲しい。

-m max protocol level
  Samba 2.0 の新しいコードでは、smbclient は常にサーバがサポートする 最も高レベルのプロトコルを用いて接続しようとする。 このパラメータは下位互換性の為に残されているが、 -m に続く文字列は全て無視される。

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

-W WORKGROUP
  接続時に smb.conf に記述されている workgroup パラメータで指定された既定値のワークグループ名よりも優先する。 これは特定のサーバへの接続時に必要かも知れない。

-T tar オプション
  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 フラグを設定してコンパイルした場合は、 処理対象から除外するか除外するファイルを指定する為に 正規表現を使うことができる。 (訳注: "処理対象に含めるか除外するファイルを"の誤りだと思われる) しかし、このモードは非常に遅い。 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`

    (訳注: 上記は以下が正しいと思われる `smbclient //mypc/myshare "" -N -Tc backup.tar users\\docs`)

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

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

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

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

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

## OPERATIONS

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

`smb:\>`

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

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

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

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

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

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

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

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

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

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

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

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

ls <mask>
  前述の dir コマンドを参照のこと。

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

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

  .B 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 コマンドを参照のこと。 .B smbclient によるファイルの転送は、 すべて binary モードで行われることに注意してほしい。 lowercase も参照のこと。

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

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

  再帰モードになっているかどうかによって、 mask の解釈が異なることに注意。詳細は、 recurse と mask コマンドを参照のこと。 .B 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>
  指定された名前の(ユーザのアクセスが許可されている) ディレクトリをサーバから削除する。

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

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

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

setmode <filename> <perm=[+|\-]rsha>
  DOS 版の attrib コマンドと同等に、 ファイルの属性を設定するためのコマンドである。たとえば、

  `setmode myfile +r`

  とすると、myfile が読み取り専用になる。

## 注意

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

ある種のサーバに接続するときには、 -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 システム の バージョン 2.0 に適用される。

## SEE ALSO

smb.conf (5), smbclient (1), smbpasswd (8)、samba (7).

## AUTHOR

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

オリジナルの Samba マニュアルは、Karl Auer によって執筆された。 マニュアルのソースは Jeremy Allison samba@samba.org によって YODL 形式に変換され、Samba 2.0 リリース用に更新された。 (YODL はオープンソース・ソフトウェアの優れた作品である - ftp://ftp.icce.rug.nl/pub/unix/ から入手可能)

貢献者の一覧、バグ報告やコメントなどの提出方法の詳細については、 samba (7) を参照のこと。

このマニュアルの日本語訳(2000/01/20 更新)の作者:

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

補訳・校正

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