## 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] [-c <command>]

`smbclient` {servicename} [password] [-b <buffer size>] [-d debuglevel] [-e] [-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

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

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

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

-d|--debuglevel=level

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

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

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

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

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

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

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

-n <primary NetBIOS name>

  Samba 自身の NetBIOS 名を指定する。このオプションは、 `smb.conf`中の、 パラメータの設定に相当する。コマンドラインの指定は、 `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は２つの方法のどちらかで動作する。 下記の`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` を指定すると、 ! コマンドはローカルでシェルを起動し、指定されたシェルコマンドを起動する。 コマンドを指定しないと、ローカルなシェルが起動する。

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バイトの 内部メモリバッファを使用する。このコマンドは、163.4.3x4000)バイトから 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 filename`を `new 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.2.4 - 3.4.15 対応のものである。

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

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

- 佐藤 文優

- はせがわ ようすけ

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

によって行なわれた。

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

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

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

によって行なわれた。