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)Sambanmblookup (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) を参照のこと。


日本語訳


補訳・校正


追加の協力者