smbd — SMB/CIFS サービスをクライアントへ提供するサーバ
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
を終了して再起動するまで設定ファイルの変更は反映されない。
このパラメータが指定されると、
サーバはデーモンとして動作することになる。つまり、自身を分離して
バックグラウンドで走らせ、適切なポートに対する要求を
処理するようになる。 臨時にファイルおよび印刷サービスを提供する
サーバとして利用する以外の場合は、サーバをデーモンとして
起動するのが smbd
の起動方法として推奨される。
smbd
がシェルのコマンドラインから
実行されたときはこのスイッチが指定されたと見なされる。
このパラメータを指定すると、
smbd
のメインプロセスはデーモン化しなくなる。
つまり、
2 回の fork(2)
と端末からの切り離しを行なわない。
通常通り接続要求を処理するための子プロセスが生成されるが、
メインプロセスは終了しない。
この動作方式は、
Daniel J. Bernstein 作の daemontools
パッケージに含まれる
supervise
と svscan
や、
AIX のプロセスモニターなど、プロセス監視の下で
smbd
を動作させるのに都合がよい。
このパラメータが指定されると、smbd
は
ファイルではなく標準出力にログを出力する。
このパラメータが指定されると、
サーバはコマンドラインでデーモンとして実行されていたとしても
デーモンではなく、"対話形式"で動作する。
このパラメータを設定することにより、コマンドラインからの起動により暗黙
的にデーモンモードとなることを無効にする。
また、-S
パラメータが指定されているかのように、
smbd
は標準出力にログを出力する。
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.
Prints the program version number.
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.
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.
Print a summary of command line options.
どのようにSambaがビルドされたか表示する。
port number(s)
は
空白か、コンマで分離された、smbdがリッスンするTCPポート番号のリストである。
既定値はsmb.conf
中のportsパラメータからとられる。
既定値は 139(NetBIOS over TCP上のSMBを使う場合)と445(TCP上での普通のSMBを使う場合)である。
profiling level
は
収集するプロファイリングデータのレベルを指定する数値である。0はプロファイリングを
停止、1はプロファイリングカウンタのみONにする。2は完全なプロファイリングをONにし、3はすべてのプロファイリングデータをリセットする。
/etc/inetd.conf
サーバを
inetd
メタ・デーモンによって動作させるには、このファイルに
メタ・デーモン用の適切な起動情報を含める必要がある。
/etc/rc
(あるいは、あなたのシステムが 使用する初期化スクリプト)
システム起動時にデーモンとしてサーバを動作させるなら、 このファイルにサーバのための適切な起動手続きを 含める必要がある。
/etc/services
inetd
メタ・デーモンを
介してサーバを動作させるなら、このファイルにサービスポート
(例:139)とプロトコルタイプ(例:tcp)に対するサービス名
(例:netbios-ssn)のマッピングを含める必要がある。
/usr/local/samba/lib/smb.conf
このファイルはサーバの設定ファイルである smb.conf(5) のデフォルトの位置である。その他、システムがこのファイルをインストール
しそうな場所としては、 /usr/samba/lib/smb.conf
や /etc/samba/smb.conf
がある。
このファイルにはサーバがクライアントから利用できるようにする 全てのサービスを記述する。さらなる情報は smb.conf(5) を参照のこと。
いくつかのシステム上において、smbd
は
setuid() を呼び出した後に uid を root に戻すことができない。この種のシステムは、トラップドア uid システムと呼ばれる。
そのようなシステムの場合、異なる二人のユーザとして (PC のような)
クライアントから同時に接続を行うことができない。
二人目のユーザ接続の試みは、「アクセス拒否」
または類似の結果となる。
PRINTER
プリント・サービスでプリンタの名前が
指定されていないとき、多くのシステムでは使用するプリンタ名として、
この変数の値が(もしくは変数が定義されていないならlp
が)利用される。しかしながら
これはサーバの特性であるという訳ではない。
Samba はアカウントチェック(アカウントが無効か?)や セッション管理のため(平文のパスワードが提供されたときに) 認証に PAM を使う。samba の PAM をサポートする程度は、 SMBプロトコルとsmb.conf(5)の の制限によって限定される。これが設定されると、以下の制限が適用される。
アカウントの妥当性確認: Samba サーバに対するすべてのアクセスは、アカウントが妥当か、無効になっていないか、 その時間にログインが許可されているかを PAM と照らし合わせて チェックされる。これは暗号化されたログインにも当てはまる。
セッション管理: 共有レベルのセキュリティ (訳注:smb.conf での security = share を指す)を使用していない場合、 ユーザはアクセスが許可される前に PAM のセッションチェックをパスしなくてはいけない。 一方、共有レベルのセキュリティではこれはスキップされることに注意。 また、いくつかの古い pam 設定ファイルではセッションをサポートするために 行の追加が必要かも知れないことにも注意。
サーバによって出力されたほとんどの診断は、指定されたログファイルに 記録される。ログファイルの名前はコンパイル時に指定されるが、 コマンドラインで変更することもできる。
利用できる診断の数と性質は、サーバで使用されるデバッグ・レベルに 依存する。もし問題を抱えているなら、デバッグ・レベルを 3 に設定してログファイルに目を通すこと。
ほとんどのメッセージは充分に自明であろう。あいにく、 このマニュアルページ作成時にはあまりにもさまざまな診断メッセージが 存在しているため、診断メッセージをすべて記述することを保証できない。 そのような場合にもっともよい方法は、ソースコードを検索 (grep)することであり、着目している診断メッセージを引き起こした条件を 探すことである。
Sambaは通常/var/lib/samba
にあるいくつかのTDB (Trivial Database) ファイルにそのデータを格納する。
(*) 情報はリスタートをまたがって継続する(しかし、必ずしもバックアップが重要ではない)。
パスワードの満了期間などのような、NTアカウントポリシーの設定
バイトレンジロック
ブラウズリスト
共有の接続(最大コネクションの強制などに使う)
汎用キャッシュdb
グループマッピング情報
共有モードとoplocks
不正なログイン記録
Sambaメッセージングシステム
net_samlogon() 要求 (ドメインメンバとして)からのユーザ net_info_3構造体のキャッシュ
インストールされたプリンタドライバ
インストールされたプリンタのフォーム
インストールされたプリンタの情報
キャッシュされたlpq出力のプリンとキュー毎のtdbを含むディレクトリ
Windowsレジストリの骨格(regedit.exe経由)
セッション情報(すなわち'utmp = yes'のサポート)
共有のacl
winbinddが使うユーザリストのキャッシュなど
winbinddが使うローカルのidmap db
'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/.
オリジナルの 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 が行った。