smb.conf (5)

Samba 2.0.5a

28 Feb 1999(JP-1999/08/13)


NAME

smb.conf - Samba 全体の設定ファイル


SYNOPSIS


smb.conf ファイルは Samba システム全体の構成ファイルである。 smb.conf には、Samba プログラム のための、 プログラム実行時の設定情報が含まれている。smb.conf は、 swat (8) によって、設定/管理されるようにデザイン されている。そのフォーマットの完全な記述および、その中で利用可能な パラメータは、参照目的のため、以下に記述してある。


ファイル形式


ファイルはセクションとパラメータで構成される。 1 つのセクションは 大かっこ ('[' と ']') でくくったセクション名で始まり、次のセクション が始まるまでが範囲となる。 セクション内には '名前 = 値'という形式の パラメータを記述する。


ファイルは行を基本単位としている。 そのため、コメント、セクション名、 パラメータはそれぞれ別々の行で指定する。


セクション名とパラメータ名は、大文字/小文字を区別しない。


パラメータを指定する行は、最初の '=' だけに特別な意味がある。 最初の '=' の前後の空白文字は捨てられて無視される。 セクションおよびパラメータ名の先頭、途中、末尾にある空白文字は意味がなく、 無視される。 パラメータ値の先頭と末尾にある空白文字も無視される。 パラメータ値の途中にある空白文字はそのまま受け付けられる。


セミコロンで始まる行は無視される(訳注:コメント)。 空白文字だけからなる行も無視される。


\ で終わる行は、慣習的な UNIX の通例のとおり、次の行へと続くことを指示する。


イコール記号 '=' の後にくるパラメータの値には、文字列 (引用符は必要としない)、 または真偽値を意味する yes/no、0/1、true/false のいずれかを記述する。 真偽値の場合の記述は、大文字/小文字の差はないが、 文字列値では記述されたままの形で解釈される。 ファイルの作成モードを指定するパラメータの値などは数値となる。


セクションの説明


設定ファイル中の各セクション([global] セクションを除く) には 共有リソース("共有"として知られている)を記述する(訳注:「サービス」ともい う。1.9対応の翻訳では「サービス」としていた)。 セクション名は、共有リソースの名前となり、セクション内のパラメータは、 共有(サービス)の属性を定義する。


[global]、[homes] と [printers] という特殊な 3 つのセクションが存在する。 これらは '特殊セクション' の節で説明する。 以下の説明は、通常のセクションの記述について適用する。


1 つのセクションは、アクセスを許可するディレクトリと、 そのセクションを利用するユーザへのアクセス権限の指定で構成される。 いくつかの補助的なオプションも指定可能である。


セクションは、ファイル・サービス (ファイル共有 - ネイティブな ファイル・システムの拡張としてクライアントが使用する) またはプリント・サービス (プリンタ共有 - サーバで動作しているプリンタをアクセスするためにクライアントが 使用する) である。


セクションは ゲスト サービスと呼ばれる、 アクセスするためのパスワードを必要としないものにできる。 この場合のアクセス権を定義するためには、 UNIX の guest account を指定する。


ゲスト・サービス以外のサービスにアクセスするにはパスワードが必要である。 クライアントはユーザ名をサーバへ提供する。年代物のクライアントは パスワードのみ提供し、ユーザ名を提供しないため、セクションの定義において、 "user=" オプションを使い、 ユーザ名とパスワードをチェックできるように指定してもよい。 Windows 95/98 や Windows NT のような最近のクライアントは、このことは必要ない。


サーバより与えられたアクセス権は、ホスト・システムより指定されたユーザ (またはゲスト・ユーザ) に 与えられたアクセス権によってマスクされることに 注意して欲しい。サーバはホスト・システムが許可する以上のアクセス権を 許可することはできない。


以下の簡単なセクションはファイル・サービス(共有)を定義している。 ユーザはパス /home/bar に対して書き込みアクセスできる。 サービスは共有名「foo」でアクセス可能である。




 	[foo]
 		path = /home/bar
 		writeable = true



以下の簡単なセクションはプリント・サービスを定義している。 サービスは読み出しのみであるが印刷可能である。 すなわち、書き込みアクセスが許可されるのは、スプール・ファイルのオープン、 書き込み、クローズの各作業のみとなる。 'guest ok' パラメータは既定値の(どこか別のところで 指定される) ゲスト・ユーザにアクセスを許可することを意味する。



 	[aprinter]
 		path = /usr/spool/public
 		read only = true
 		printable = true
 		guest ok = true


特殊セクション



パラメータ


パラメータはサービスの属性の指定を定義する。


いくつかのパラメータ(たとえば security)は [global] セクションで指定する。 いくつかのパラメータ(たとえば create mode)は すべてのセクションで使用できる。ほかのすべては通常のセクションでのみ許される。 以下の記述では、[homes] セクションと [printers] セクションは通常のセクションであるとみなされる。 丸カッコで括られた 'G' の文字は、パラメータが [global] セクションでのみ指定できるオプションであることを 示す。 'S' の文字は、パラメータが特定のサービス・セクションで指定されることを示す。 'S' が付いているすべてのパラメータは [global] セクションでも指定可能であることに注意して欲しい。 [global] セクションで指定された場合には、 すべてのサービスの既定値として定義される。


以下ではパラメータはアルファベット順で配置されている。 これは関連するパラメータに分類されておらず最適とは言えないが、 少なくとも見つけることはできるだろう! 同義のパラメータがある場合は、もっともふさわしいパラメータの部分で その内容が記述され、それ以外ではそのふさわしいパラメータを参照している。


変数の置換


設定ファイル中に設定可能な文字列の多くは、置換することができる。 たとえば、オプション "path = /tmp/%u" は、 ユーザがユーザ名「john」で接続したなら "path = /tmp/john" として解釈される。


これらの置換操作は、下記の記述でさらに説明されているが、 可能な場合には必ず適用される一般的な置換操作が存在する。それらは:



これらの置換操作とほかの smb.conf のオプションを組み合わせると、 非常に凝った動作を設定できる。


名前の変換


Samba は "名前の変換" をサポートしているため、 DOS や Windows クライアントでも 8.3 形式以外の名前の ファイルを扱うことができる。 また、8.3 形式のファイル名の大文字/小文字を調整できる。


変換の実行を制御するいくつかのオプションが存在する。 それらは別々に載せないで、ここでまとめる。 既定値は testparm プログラムの出力を参照のこと。


これらのオプションの全ては各サービス毎に設定できる。 (もちろん全体にも設定可能)


オプションは下記の通り:


"mangle case = yes/no" は、「default case」で(大文字または小文字に) 指定されなかったほうの文字がファイル名に含まれている場合に、 変換を実行するかどうかを制御する。 これが yes ならば、"Mail" のような名前は変換される。既定値は no。


"case sensitive = yes/no" はファイル名の 大文字/小文字を区別するかどうかを制御する。 区別されないときは、Samba は渡されたファイル名に対応する UNIX のファイル名を検索しなければならなくなる。 既定値は no。


"default case = upper/lower" は新規に作成されたファイル名において、 大文字または小文字のどちらを既定にするかを制御する。既定値は lower。


"preserve case = yes/no" ファイルを作成するときに名前が 大文字と小文字の両方を含んでいる場合、クライアントから渡された名前を通すか、 "default" case に指定された文字の大きさに強制的に変換するかを制御する。 既定値は Yes。


"short preserve case = yes/no" は、8.3 形式の 新しいファイルを、すべて大文字で適当な長さで作成するか、 "default" の指定にするかを制御する。 このオプションは、"preserve case = yes" と一緒に使い、短い名前が小文字であっても、長いファイル名の状態を維持するのに 使用できる。 既定値は Yes。


Samba 2.0 の既定値は、大文字小文字を区別しないが、大文字小文字状態を保存する、 Windows NT サーバと同じ意味を持つ。


ユーザ名/パスワード認証について


サービスに接続するための方法はいくつかある。サーバは指定されたサービスに 対して接続を許可するかについて、以下のステップを踏んで決定する。 もしも、すべてのステップに失敗すると、接続要求は拒否される。もしも、 どれかのステップがパスすると、残りのステップはチェックされない。


もしも、サービスが "guest only = yes" として 設定されているならば、ステップ 1 から 5 はスキップされる。



  1. ステップ 1: もしも、クライアントが ユーザ名/パスワード のペアを 送ってきて、それが UNIX システムの パスワード機構によって認証されたなら、 接続はそのユーザ名となる。このことは ユーザ名を渡す \\server\service%username 方法を含むことに注意。


  2. ステップ 2: もしもクライアント側でユーザ名指定せず、 現在クライアントにログインしているデフォルトのユーザ名を利用して、 そのユーザ名に対する正しいパスワードを提供するならば、接続は許可される。


  3. ステップ 3: クライアントの netbios 名と、任意の、以前に使われたユーザ名が 供給されたパスワードに対してチェックされ、もしも一致すれば、接続は対応する ユーザに許可される。


  4. ステップ 4: もしも、クライアントが以前にサーバで ユーザ名/パスワードの組を 認証されていて、クライアントが認証トークンを送ってきたら、 そのユーザ名が使われる。 このステップは、もしもサービスが "revalidate = yes" に 設定されていればスキップされる。


  5. ステップ 5: もしも、あるサービスに対して、 "user = " フィールドが記述されていて、 クライアントが提供したパスワードが (UNIX のパスワード認証機能によって) user= のユーザ名のどれかに一致すれば、 接続は、"user=" 行中のそのユーザ名に対して許可される。 もしも、'@' で始まっているユーザ名が user= リストにあれば、 その名前は同名のグループに属するユーザ名のリストに展開される。


  6. ステップ 6: もしも、サービスがゲストサービスであれば、接続は、 そのサービスで設定されている、"guest account =" で与えられたユーザ名で行なわれ、供給されたパスワードは無関係になる。



グローバル・パラメータの全リスト


全てのグローバル・パラメータの一覧である。 詳細は各パラメータの節を参照のこと。同義語がいくつか含まれていることに 注意して欲しい。



サービス・パラメータの全リスト


全てのサービス・パラメータの一覧である。 詳細は各パラメータの節を参照のこと。同義語がいくつか含まれていることに 注意して欲しい。



各パラメータの説明



警告


設定ファイルは、サービス名にスペースを含んでいてもよいが、 クライアント・ソフトウェアによっては許されない場合がある。 スペースは比較時に無視されるので問題になることはない筈であるが、 可能性は考慮しておくこと。


スペースは比較時にはどうせ無視されるので問題になることはないが、 可能性には気をつけること。


同様な注意事項として、多くのクライアント − 特に DOS クライアント − は、 サービス名を 8 文字に制限する。 Smbd はそのような制限がないが、 そのようなクライアントから接続される場合には、 サービス名が丸められるために、失敗するであろう。 この理由のため、サービス名の長さを最大8文字に制限すべきである。


[homes] と [printers] という 特殊なセクションは管理者の設定を楽にできるが、 省略時属性の多様な組合せはトリッキーになるかもしれない。 これらのセクションをデザインする時には、特別に注意をはらうこと。 特に、スプールディレクトリのパーミッションが正確であることを確認して欲しい。


バージョン


この man ページは、Samba バージョン 2.0 一式用になっている。


参照


smbd (8)、smbclient (1)、 nmbd (8)、testparm (1)、 testprns (1)、Samba、 nmblookup (1)、 smbpasswd (5)、 smbpasswd (8)。


AUTHOR


オリジナルの Samba ソフトウェアと関連するユーティリティは、 Andrew Tridgell samba-bugs@samba.org によって作られた。 Samba は現在 Linux カーネルが開発されているような方法での オープンソースプロジェクトである Samba Team によって開発されている。


オリジナルの Samba の マニュアルページは Karl Auer によって書かれた。 マニュアルページは YODL 形式(別の、優秀なオープンソースソフトウェアで、 ftp://ftp.icce.rug.nl/pub/unix/ にある)で変換され、Jeremy Allison によって Samba 2.0 リリースのために 更新された。 samba-bugs@samba.org.


バグレポートの提出方法の詳細と、協力してほしい項目のすべてのリストを 得る方法は、samba (7) を参照のこと。


日本語訳


補訳・校正


追加の協力者