Name

smbd — SMB/CIFS サービスをクライアントへ提供するサーバ

Synopsis

smbd [-D] [-F] [-S] [-i] [-h] [-V] [-b] [-d <debug level>] [-l <log directory>] [-p <port number>] [-O <socket option>] [-s <configuration file>]

説明

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

smbd は、Windows クライアントにファイル共有と印刷サービスを提供するサーバデーモンである。 サーバは SMB (または CIFS) プロトコルを使用するクライアントに ファイル・スペースと印刷サービスを提供する。サーバは LanManager プロトコルと互換性があり、LanManager クライアントに 対するサービスが可能である。クライアントには MSCLIENT 3.0 for DOS、Windows for Workgroups、Windows 95/98/Me、Windows 2000、 Windows NT、OS/2、DAVE for Macintosh、smbfs for Linux が含まれる。

サーバが提供できるサービスについての詳細な記述は、 それらサービスの属性を制御する設定ファイルの マニュアルページにある (smb.conf(5)を参照)。このマニュアルページでは サービスについて記述せず、サーバを動作させる上での 管理の面にしぼって記述する。

このサーバを動作させることは 重要なセキュリティとの関係があること、そして smb.conf(5) のマニュアルページはインストールを進める前に 必ず読むべきものであることに注意すること。

セッションはクライアントに要求されるたびに作られる。 各クライアントは各セッション毎にサーバプロセスのコピーを得る。 このコピーはセッションの間、クライアントによるすべての 接続を提供する。クライアントのすべての接続が切断されると、 そのクライアントに対するサーバのコピーは終了する。

設定ファイルとそれに含まれるファイルが変更されると、 1分ごとに自動的に再読込される。サーバに SIGHUP を送ることにより 再読み込みを強制することもできる。設定ファイルの再読込は、 すでに確立されているサービスの接続には影響しない。 ユーザがサービスから切断するか、smbd を終了して再起動するまで設定ファイルの変更は反映されない。

オプション

-D

このパラメータが指定されると、 サーバはデーモンとして動作することになる。つまり、自身を分離して バックグラウンドで走らせ、適切なポートに対する要求を 処理するようになる。 臨時にファイルおよび印刷サービスを提供する サーバとして利用する以外の場合は、サーバをデーモンとして 起動するのが smbd の起動方法として推奨される。 smbd がシェルのコマンドラインから 実行されたときはこのスイッチが指定されたと見なされる。

-F

このパラメータを指定すると、 smbd のメインプロセスはデーモン化しなくなる。 つまり、 2 回の fork(2) と端末からの切り離しを行なわない。 通常通り接続要求を処理するための子プロセスが生成されるが、 メインプロセスは終了しない。 この動作方式は、 Daniel J. Bernstein 作の daemontools パッケージに含まれる supervisesvscan や、 AIX のプロセスモニターなど、プロセス監視の下で smbd を動作させるのに都合がよい。

-S

このパラメータが指定されると、smbd は ファイルではなく標準出力にログを出力する。

-i

このパラメータが指定されると、 サーバはコマンドラインでデーモンとして実行されていたとしても デーモンではなく、"対話形式"で動作する。 このパラメータを設定することにより、コマンドラインからの起動により暗黙 的にデーモンモードとなることを無効にする。 また、-S パラメータが指定されているかのように、 smbd は標準出力にログを出力する。

-d|--debuglevel=level

level is an integer from 0 to 10. The default value if this parameter is not specified is 0.

The higher this value, the more detail will be logged to the log files about the activities of the server. At level 0, only critical errors and serious warnings will be logged. Level 1 is a reasonable level for day-to-day running - it generates a small amount of information about operations carried out.

Levels above 1 will generate considerable amounts of log data, and should only be used when investigating a problem. Levels above 3 are designed for use only by developers and generate HUGE amounts of log data, most of which is extremely cryptic.

Note that specifying this parameter here will override the parameter in the smb.conf file.

-V|--version

Prints the program version number.

-s|--configfile <configuration file>

The file specified contains the configuration details required by the server. The information in this file includes server-specific information such as what printcap file to use, as well as descriptions of all the services that the server is to provide. See smb.conf for more information. The default configuration file name is determined at compile time.

-l|--log-basename=logdirectory

Base directory name for log/debug files. The extension ".progname" will be appended (e.g. log.smbclient, log.smbd, etc...). The log file is never removed by the client.

-h|--help

Print a summary of command line options.

-b

どのようにSambaがビルドされたか表示する。

-p|--port<port number(s)>

port number(s) は 空白か、コンマで分離された、smbdがリッスンするTCPポート番号のリストである。 既定値はsmb.conf中のportsパラメータからとられる。

既定値は 139(NetBIOS over TCP上のSMBを使う場合)と445(TCP上での普通のSMBを使う場合)である。

-P|--profiling-level<profiling level>

profiling level は 収集するプロファイリングデータのレベルを指定する数値である。0はプロファイリングを 停止、1はプロファイリングカウンタのみONにする。2は完全なプロファイリングをONにし、3はすべてのプロファイリングデータをリセットする。

TDBファイル

Sambaは通常/var/lib/sambaにあるいくつかのTDB (Trivial Database) ファイルにそのデータを格納する。

(*) 情報はリスタートをまたがって継続する(しかし、必ずしもバックアップが重要ではない)。

account_policy.tdb*

パスワードの満了期間などのような、NTアカウントポリシーの設定

brlock.tdb

バイトレンジロック

browse.dat

ブラウズリスト

connections.tdb

共有の接続(最大コネクションの強制などに使う)

gencache.tdb

汎用キャッシュdb

group_mapping.tdb*

グループマッピング情報

locking.tdb

共有モードとoplocks

login_cache.tdb*

不正なログイン記録

messages.tdb

Sambaメッセージングシステム

netsamlogon_cache.tdb*

net_samlogon() 要求 (ドメインメンバとして)からのユーザ net_info_3構造体のキャッシュ

ntdrivers.tdb*

インストールされたプリンタドライバ

ntforms.tdb*

インストールされたプリンタのフォーム

ntprinters.tdb*

インストールされたプリンタの情報

printing/

キャッシュされたlpq出力のプリンとキュー毎のtdbを含むディレクトリ

registry.tdb

Windowsレジストリの骨格(regedit.exe経由)

sessionid.tdb

セッション情報(すなわち'utmp = yes'のサポート)

share_info.tdb*

共有のacl

winbindd_cache.tdb

winbinddが使うユーザリストのキャッシュなど

winbindd_idmap.tdb*

winbinddが使うローカルのidmap db

wins.dat*

'wins support = yes'の時のwinsデータベース

シグナル

smbd に SIGHUP を送ることで、 smb.conf の内容を短時間の内に 再読み込みさせることができる。

smbd のプロセスをシャットダウンさせるのに、 最後の手段として以外には SIGKILL (-9)使わない ことを推奨する。共有メモリのエリアが不整合なままに なってしまうことがあるためである。smbd を安全に終了させる方法は、SIGTERM (-15) を送って、smbd 自身が終了するのを待つことである。

smbcontrol(1) を使うと smbd のデバッグ・ログ・レベルを上げたり下げたりできる (SIGUSR[1|2] シグナルは Samba 2.2 ではもはや使用されない)。 これにより、低いログ・レベルで動作している間に発生する 一時的な問題を診断することができる。

デバッグ書き込みを送る smbd のシグナル・ ハンドラは再入可能になっていない。ゆえにシグナルを発行するときは、 smbd が SMB 待ちの状態になるまで待つ必要がある。 select 呼び出しの前にシグナルのブロッキングを解除し、呼び出しの後で再び ブロッキングすればシグナル・ハンドラを安全にすることができるが、 これはパフォーマンスに影響するだろう。

関連項目

hosts_access(5), inetd(8), nmbd(8), smb.conf(5), smbclient(1), testparm(1), testprns(1), and the およびインターネット RFC の rfc1001.txt, rfc1002.txt. 加えて CIFS(以前は SMB)の仕様は以下のWebページから入手できる: http://samba.org/cifs/.