smbsh — UNIX コマンドで Windows NT ファイルシステムへのアクセスを 可能にする
smbsh [-W workgroup] [-U username] [-P prefix] [-R <name resolve order>] [-d <debug level>] [-l logfile] [-L libdir]
このツールは Samba(7) の一部である。
smbsh を利用すると、ls、 egrep や rcp などの UNIX コマンドを NT のファイルシステムに対して使用することが可能になる。 smbsh を正しく動作させるには、ダイナミックリンク されたシェルを使用する必要がある。
そのセッションにおいて、smb.conf(5) ファイルの workgroup パラメータで指定された デフォルトのワークグループを上書きする。 これは、いくつかのサーバへの接続において必要かもしれない。
SMB のユーザ名またはユーザ名とパスワードを 設定する。もしこのオプションが指定されなければ、 ユーザ名とパスワードの両方が尋ねられる。
このオプションは、SMB アクセスにおける ディレクトリの接頭辞を指定することができる。 このオプションが指定されないときのデフォルト値は smb である。
サーバーが必要とする詳細な設定を含む設定ファイルを指定する。 このファイルには、 サーバーが提供するサービスに関する記述や、 どの printcap ファイルを利用するかといった情報が含まれている。 詳細は smb.conf を参照のこと。 デフォルトの設定ファイルの名前は、コンパイル時に決定される。
デバッグレベルを debuglevel に設定する。 debuglevel は、0 から 10 までの整数である。 このパラメータを指定しないときのデフォルト値は 0 である。
この値を大きくするほど、 サーバーの動作に関するより詳細な情報がログファイルに記録される。 レベル 0 では、致命的なエラーと重大な警告のみが記録される。 レベル 1 は日々の運用に適しており、 少量の稼働状況に関する情報を生成する。
1 より上のレベルは大量のログが生成されるので、 問題解決の時にのみ使用すべきである。 3 より上のレベルは開発者だけが利用するように設計されており、 莫大な量のログデータが生成される。 そのほとんどは非常に謎めいた内容となっている。
ホスト名から 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 パラメータ指定がなければ、 この順番で名前解決が試行される。
このパラメータには、smbsh によって使用される共有ライブラリの位置を指定する。 デフォルト値は コンパイル時に指定される。
smbsh を利用するには、プロンプトから smbsh を実行し、Windows NT を実行しているマシンに 対する認証に用いるユーザ名とパスワードを入力する。
system% smbsh Username: user Password: XXXXXXX
このシェルから実行される、すべてのダイナミックリンクされた コマンドは、SMB プロトコルを利用して /smb ディレクトリにアクセスすることになる。 例えば、コマンド ls /smb は、ワークグループの リストを表示する。コマンド ls /smb/MYGROUP はワークグループ MYGROUP 内の全てのマシンを表示する。 コマンド ls /smb/MYGROUP/<machine-name>は、 そのマシンの共有名を表示する。そこから例えば、cd コマンドでディレクトリを移動したり、vi コマンドでファイルを編集したり、rcp コマンドでファイルをコピーしたりすることもできる。
smbsh は標準の libc への呼び出しを横取りして、 smbwrapper.o 内のコードを動的にロードすることに より動作する。すべての呼び出しが "フック" されるわけではないので、 smbsh の下では動作しないプログラムがあるかも しれない。
ダイナミックリンクされていないプログラムは、 smbsh の機能を利用することはできない。ほとんどの UNIX システムでは、file コマンドを実行することで、 プログラムがダイナミックリンクされているのか、スタティックリンク されているのかを調べることができる。
オリジナルの Samba ソフトウェアと関連するユーティリティは、 Andrew Tridgell によって作成された。現在 Samba は Samba Team によって、 Linux カーネルの開発と同様の オープンソースプロジェクトとして 開発が行なわれている。
オリジナルの Samba マニュアルページは Karl Auer によって作成された。 マニュアルページは YODL 形式 ( ftp://ftp.icce.rug.nl/pub/unix/ で入手可能な優れたオープンソースソフトウェア) に変換され、 Samba 2.0 リリースに伴い、Jeremy Allison によって更新された。 Samba 2.2 における DocBook 形式への変換は、Gerald Carter によって行なわれた。Samba 3.0 における DocBook XML 4.2 形式への変換は Alexander Bokovoy によって行われた。