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 つのセクションが存在する。 これらは '特殊セクション' の節で説明する。 以下の説明は、通常のセクションの記述について適用する。
共有は、アクセスを許可するディレクトリと、そのセクションを利用するユー ザへのアクセス権限の指定で構成される。いくつかの補助的なオプションも 指定可能である。
セクションは、ファイル・サービス (ファイル共有 - ネイティブなファイ ル・システムの拡張としてクライアントが使用する) またはプリント・サー ビス (プリンタ共有 - サーバで動作しているプリンタをアクセスするため にクライアントが使用する) である。
セクションは ゲスト サービスと呼ばれる、 アクセスするためのパスワードを必要としないものにできる。 この場合のアクセス権を定義するためには、 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 writeable = false printable = true guest ok = true
このセクション中のパラメータは、サーバの全体、またはセクションで、 項目が定義していないときの既定値として適用される。 詳細な情報は下記の 'パラメータ' の節を参照のこと。
'homes'
と呼ばれるセクションが設定ファイル中にあると、
クライアントをそのホームディレクトリに接続するサービスを、動的に、
サーバに作成する。
接続要求がされたとき、現存ずるセクションが調べられる。 一致するサービスが見つかったならばそれが使用される。 一致するセクションが見つからなければ、要求されたセクション名は ユーザ名として処理され、ローカルのパスワード・ファイルが参照される。 名前が存在しパスワードが正しく与えられると、共有は [homes] セクションの 複製として作成される。
いくつかの変更が、新たに作成するセクションに対して行なわれる。
'homes'
から 登録されているユーザ名に変更される。
もしも [homes] セクションで path= 行を使うのであれば、 %S マクロを使うのが便利だろう。例をあげると、
path=/data/pchome/%S
という記述は、PC からのホーム・ディレクトリが UNIX でアクセスする場合の ホーム・ディレクトリと違う場合に便利である。
これは多数のクライアントにホーム・ディレクトリを提供する上で、 最小の手間で簡単に早く実現する方法である。
要求されたセクション名が "homes"
ならば同様の処理が行われるが、
共有名が要求したユーザの名前に変更されることはない。 この [homes] セクションを
使用する方法は、複数のユーザがクライアント PC を共有する場合に有効である。
[homes] セクションは、通常のサービス・セクションで指定可能な全ての パラメータを指定可能であるが、いくつかは他のセクションより強い意味を持つ。 次の例は典型的で適切な [homes] セクションである。
[homes] writeable = yes
重要な点は、ゲストによるアクセスを [homes] セクションに指定した場合、 全てのホーム・ディレクトリが全てのクライアントから パスワードなしで アクセス可能となる。ほとんどあり得ないと思うが、もし この形態を実際に望むなら、 読み出しのみアクセス の指定を記述することが賢明である。
自動で作成される ホームディレクトリの browseable フラグは、[global] の browseable フラグから継承され、[homes] の browseable フラグからは継承されないことに注意して欲しい。 従って、[homes] セクション中で browseable=no とすると、 [homes] セクションは隠れるが、自動で作成されるホームディレクトリは可視に なるため便利である。
このセクションは、[homes] のように機能するが、 プリンタ用である。
[printers] セクションが設定ファイルに記述されているなら、 ユーザはローカル・ホストの printcap ファイルに記述されたプリンタに 接続可能となる。
接続要求がされたとき、存在するセクションが調べられる。一致するセクションが 見つかったならそれが使用される。一致するサービスが見つからず [homes] セクションが存在するならば、 上記で説明したようなサービスが使用される。 それでもなければ、要求されたサービス名がプリンタ名として扱われ、 それが有効なプリンタの名前かどうかを確認するため、適切な printcap ファイルが 調べられる。 一致するプリンタ名が見つかったなら、[printers] セクションの 複製として新しいサービスが作成される。
いくつかの変更を新たに作成するセクションに対して行う。
[printers] サービスは、プリント可能 (printable = yes) にする 必要があることに注意して欲しい。 そうしなければ、サーバは設定ファイルの読み込みを拒否するだろう。
通常、指定されたパスは sticky ビットがセットされた 誰でも書き込み可能なスプール・ディレクトリである。 典型的な [printers] エントリは次のようになる。
[printers] path = /usr/spool/public guest ok = yes printable = yes
printcap ファイル中にあるプリンタのすべての別名 (alias) は、 サーバに接続している限り正当なプリンタ名となる。 あなたのプリンタ・システムが printcap を使用していないのであれば、 仮の printcap ファイルを設定する。 それは次のような行を 1 つ、もしくはそれ以上の行を含んだファイルである。
alias|alias|alias|alias...
各 alias は、あなたのプリンタ・システムで処理可能なプリンタ名にする必要がある。 [global] セクションにおいて、この新しいファイルを printcap に指定する。 するとサーバは、この仮想 printcap にある名前だけを認識する。 もちろんそれらの名前には、好みの別名を含めることができる。 同様の手法は、ひとまとまりのローカル・プリンタに対するアクセス制限を簡単に 実現するために利用できる。
ところで、「別名」の定義は、printcap レコードの 最初のエントリの 各構成要素である。 レコードは行で分けられており、構成要素は (1 つ以上あるなら) 縦棒 ("|") で区切られている。
注意: System V 系のシステムでは、lpstat コマンドを使ってシステムに どんなプリンタが定義されているかを調べることができる。このようなシステムでは、 "printcap name = lpstat" により自動的にプリンタの一覧を 得ることができる。 詳細は "printcap name" オプションを参照のこと。
パラメータはサービスの属性の指定を定義する。
いくつかのパラメータ(たとえば 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"と一緒
に使うと、短い8+3形式の名前を小文字にする一方、長いファイル名の状態
を維持するのに使用できる。既定値は Yes。
Samba 2.0 の既定値は、大文字小文字を区別しないが、大文字小文字状態を保存する、 Windows NT サーバと同じ意味を持つ。
サービスに接続するための方法はいくつかある。サーバは指定されたサービスに 対して接続を許可するかについて、以下のステップを踏んで決定する。 もしも、すべてのステップに失敗すると、接続要求は拒否される。もしも、 どれかのステップがパスすると、残りのステップはチェックされない。
もしも、サービスが "guest only = yes" として 設定されているならば、ステップ 1 から 5 はスキップされる。
\\server\service%username
方法を含むことに注意。
'@'
で始まっているユーザ名が user= リストにあれば、
その名前は同名のグループに属するユーザ名のリストに展開される。
全てのグローバル・パラメータの一覧である。 詳細は各パラメータの節を参照のこと。同義語がいくつか含まれていることに 注意して欲しい。
全てのサービス・パラメータの一覧である。 詳細は各パラメータの節を参照のこと。同義語がいくつか含まれていることに 注意して欲しい。
このパラメータは、以下に記述する特別な条件の場合に、 smbd (8) によって ROOT 権限で実行されるスクリプトのフルパス名である。
通常、Samba サーバ上には、 サーバ上のファイルにアクセスするすべてのユーザが存在している必要がある。 しかし、Windows NT のアカウントデータベースを ユーザデータベースのマスタとして使うサイトで、 Samba サーバ上のユーザの作成や保守を Windows NT の PDC に同期して行なうのは骨の折れる作業である。
このオプションを使うことで、Samba サーバに対してユーザがアクセスした時点で smbd が必要な UNIX のユーザを 必要に応じて作成することが可能になる。
このオプションを使うためには、smbd が security=server か、または security=domain で構成されている必要がある。 また、"add user script" には、 1つの引数 %u で指定される UNIX のユーザを作成することができる スクリプトのフルパスを設定しなければならない。 ここで、 %u という引数は作成すべき UNIX のユーザ名に展開される。
Windows のユーザが Samba サーバにアクセスしようとして "ログイン"(SMB プロトコルの session setup の発行) を行なう時に、 smbd は password server と通信を行ない、与えられたユーザと与えられたパスワードで認証を行なう。 認証が成功すると、smbd は UNIX パスワードデータベース中から対応する UNIX のユーザを検索し、 Windows のユーザに割り当てる。 この検索が失敗し、"add user script" が設定されていると、 smbd は指定されたスクリプトを ROOT 権限で 呼び出し、 ユーザを作成するために %u 引数をユーザ名に展開する。
スクリプトによってユーザが作成されると、 smbd は その UNIX のユーザがすでに存在していたかのようにして処理を継続する。 このようにして、 存在する Windows NT のアカウントに対応する UNIX のユーザが動的に作成される。
security=server、 security=domain、 password server、 delete userscript も参照のこと。
既定値:
add user script = <空白文字列>
例:
add user script = /usr/local/samba/bin/add_user %u
このパラメータは、ある共有で管理上の特権が与えられるユーザのリストである。 指定されたユーザは、スーパーユーザ (root) として、 すべてのファイル操作を実行できる。
このオプションは十分に注意して使用すべきである。 このリストに登録されているユーザは、ファイルのパーミッションに関係なく あらゆる操作を行うことができる。
既定値:
admin users なし
例:
admin users = jason
hosts allow の同義語である。
このオプションは、security オプションが server または domain に設定されたときにのみ影響する。 このオプションが No に設定されると、smbd が動作しているドメインまたは ワークグループ外からのリソースへの接続要求が拒否される。 認証を行なうサーバがそのドメインを信頼していた場合でも例外ではない。
このオプションは、Samba サーバが、所属するドメイン中のユーザーのみに リソースを提供するようにさせたい場合に便利である。 1 つの例をあげよう。仮に DOMA と DOMB という 2 つのドメインがあったとする。 DOMA は Samba サーバを含み、DOMB を信頼しているとする。 通常の条件では、DOMB中にアカウントを持つユーザは、 Samba サーバに同じ名前の UNIX アカウントがあれば、 たとえ DOMA にアカウントがなくてもリソースにアクセスできる。 これは、セキュリティ範囲の実装をむずかしくする。
既定値:
allow trusted domains = Yes
例:
allow trusted domains = No
これは無効になったパラメータである。Samba 2.0 ではもはやなんの意味も持たない。 以前のバージョンの Samba では、 DOS の "read only" 属性をファイルに反映させる方式に影響した。 Samba 2.0 では、現在アクセスしているのがファイルの所有者かどうかに関わらず、 ファイルの所有者の 'w'ビットがセットされていなければ "read only" と見なされる。
nmbd が ブラウズリストに自身をアナウンスする際に用いるサーバの種類を指定する。 既定値は Windows NT に設定されている。 指定可能なオプションは、 "NT Server" と同義である "NT"、"NT Server"、 "NT Workstation"、"Win95"、"WfW" で、 それぞれ Windows NT Server、Windows NT Workstation、Windows 95、Windows for Workgroups を意味する。 Samba サーバがブラウザサーバ(訳注: おそらくポテンシャルブラウザのこと)として機能させないようにするなど Samba が Windows NT サーバとして現れるのを避ける特別な必要性がない限り、 このパラメータは変更してはならない。
既定値:
announce as = NT Server
例:
announce as = Win95
nmbd が自身をサーバとしてアナウンスするときに使用するメジャーおよび マイナーバージョン番号を指定する。 既定値は 4.2 である。Samba サーバを低いレベルのサーバとして設定する特別な 理由がない限り、このパラメータを変更してはならない。
既定値:
announce version = 4.2
例:
announce version = 2.0
このパラメータは、自動的にブラウズリストに追加したいサービスのリストである。 このパラメータを利用しないと不可視になる ホームディレクトリやプリンタのサービスにとって、非常に有用である。
printcap に記述した全てのプリンタを指定するなら、 "load printers" オプションがより簡単であることに 注意して欲しい。
既定値:
auto services なし
例:
auto services = fred lp colorlp
このパラメータは、サービスを '停止" させる。
'available = no'
ならば、サービスへ接続するための試行は 全て
失敗する。その失敗は記録される。
既定値:
available = yes
例:
available = no
このグローバルパラメータにより、 Samba 管理者は SMB 要求を受け付けるマシンのインタフェースを制限することができる。 このパラメータはファイルサービス smbd とネームサービス nmbd とで、 少し異なった影響を与える。
ネームサービスについて、nmbd は 'interfaces' パラメータで 指定されたインタフェースのポート 137 と 138 にバインドする。 さらに nmbd は、 ブロードキャストのメッセージを受け取るために、 「すべてのアドレス」となるインタフェース (0.0.0.0) の ポート 137 と 138 にもバインドする。 このオプションが False に設定されている場合、 nmbd はそれらすべてのソケットに届く名前要求を受け付ける。 "bind interfaces only" が True に設定されている場合、 nmbd はブロードキャスト・ソケットに到達するパケットの ソースアドレスを検査し、 'interfaces' パラメータに列挙されたインタフェースの ブロードキャストアドレスと一致しないパケットを破棄する。 ユニキャストパケットがあるソケットで受信されると、 nmbd は "interfaces" に 列挙されていないインタフェースを通って到達した 名前要求のパケットを拒否するようになる。 IP ソースアドレスを偽造 (spoofing) すると、この単純な検査をくぐり 抜けてしまう。そのため、このパラメータを nmbd のセキュリティ対策として本格的に (seriously) 使うことはできない。
ファイルサービスについて、smbd は 'interfaces' パラメータで 指定されたインタフェースだけにバインドする。 これにより、smbd が到達したパケットを受け付けるネットワークを限定させることができる。 マシンが PPP やほかの間欠的なネットワークインタフェース、 あるいは非ブロードキャストなネットワークインタフェースにサービスを提供している場合は、 非永続的なインタフェースをうまく処理できないため、 そのようなマシンでこのパラメータを使わないようにして欲しい。
もしも、"bind interfaces only" が True に設定されている場合、 ネットワークアドレス 127.0.0.1 が 'interfaces'パラメータのリストに追加されていないと、 smbpasswd と swat は、以下に記述する理由のため、 期待通りには動かないことがある。
ユーザの SMB パスワードを変更する場合、 smbpasswd はパスワードの変更要求を発行するために、 デフォルトではアドレス "localhost" - 127.0.0.1 に対して SMB クライアントとして接続する。 もしも、"bind interfaces only" が True に設定されていると、 ネットワークアドレス 127.0.0.1 が 'interfaces' パラメータのリストに追加されない限り、 smbpasswd はデフォルトでは接続に失敗する。 smbpasswd で "-r remote machine" パラメータを 指定することによって、 強制的にそのローカルホストのプライマリIPインタフェースを使わせることもできる。 ここで "remote machine" とは、 そのローカルホストのプライマリインタフェースの IP名である。
swat のステータスページは、 smbd と nmbd が動いているかを 確認するために、アドレス 127.0.0.1 に接続を試みる。 127.0.0.1 を追加しないと、smbd と nmbd は、たとえ実際に動いていても "停止中(not running)" と表示する。このため、swat から smbd と nmbd の起動/停止/再起動 を行なうことができなくなる。
既定値:
bind interfaces only = False
例:
bind interfaces only = True
このパラメータは、オープンされたファイル中の領域に対するバイト範囲ロックを クライアントが要求した際に、そのロックにタイムリミットが設定されていた場合の、 smbd の動作を制御する。
パラメータが True に設定されている時に ロックレンジ要求がただちには処理できない場合は、 Samba 2.0 は 内部的にロック要求をキューイングして、 一定時間後に期限切れになっていない限りロックを試みる。
パラメータが False に設定されていると、 Samba 2.0 は以前のバージョンと同じように動作する。 ロックレンジがただちに処理できないと、ロック要求は失敗する。
このパラメータは共有毎に設定可能である。
既定値:
blocking locks = True
例:
blocking locks = False
browseable の同義語である。
クライアントの NetServerEnum 呼び出しに対して smbd が ブラウズリストを提供するかどうかを制御する。 通常は True に設定する。これを変更する必要はまずないであろう。
既定値:
browse list = Yes
net view コマンドの出力やブラウズリスト中の 利用可能な共有一覧にこの共有を表示させるかどうかを制御する。
既定値:
browseable = Yes
例:
browseable = No
名前の変換 の節を参照のこと。
"case sensitive" の同義語である。
Samba 2.0 が提供する新しい NT SMB 要求の 1 つに "ChangeNotify" 要求がある。 この SMB 要求により、クライアントが、サーバに指定したディレクトリが 変更されていないかを "監視"させ、なんらかの変更が発生した際にのみ SMB 要求に返答させるという機能を実現する。 このような継続的なディレクトリスキャンは、UNIX配下では高負荷なものになる。 ゆえに、smbd デーモンは、change notify timeout 時間毎に要求されたおのおののディレクトリをスキャンする。
change notify timeout は、秒単位で指定する。
既定値:
change notify timeout = 60
例:
change notify timeout = 300
これはスキャン時間を5分ごとに変更する。
このパラメータは、smbd が受け取ったファイル名を、DOS の コードページ (client code page パラメータ参照) 850 から いくつかの UNIX に存在する文字セットに変換することを可能にする。 存在するコードページ変換は下記のとおり。
バグ。 これらの MSDOS コードページから UNIX 文字セットへのマッピングは、 MS DOS コードページのローディングのように動的に行なわれるべきであり、 静的に行なわれるべきではない。
client code page も参照のこと。通常は、 このパラメータは設定されておらず、ファイル名の変換は行なわれない。
既定値:
character set = <空の文字列>
例:
character set = ISO8859-1
このパラメータは Samba にアクセスするクライアントが使用している DOS のコードページを指定する。 Windows や DOS クライアントが、どのコードページを使っているかを調べる には、DOS コマンドプロンプトを開いて、chcp コマンドを実行する。 米国版の MS-DOS、Windows 95、Windows NT のデフォルトでは、コードページ 437 である。 西ヨーロッパ版のデフォルトではコードページ 850 である。
このパラメータは、
smbd が起動時に動的に読み込む
codepage.XXX
ファイルを指定する。これらのファイルは
マニュアルページ make_smbcodepage (1)
に詳細な説明があるが、smbd が
Windows クライアントが想定する大文字小文字を区別しない
ファイル名を提供するための、大文字と小文字の対応付けを指定している。
Samba は現在以下のコードページを提供している。
以上のとおり、パラメータは 437、737、850、852、861、932、936、949、 または 950 のどれかの値を取る。もしも、必要なコードページがないならば、 コードページファイルのコメントと make_smbcodepage (1)マニュアルページを読み、 コードページを書くこと。 Samba ユーザコミュニティに対して寄付することをお忘れなく。
このパラメータは、"validchars" パラメータと協調して ファイル名として有効な文字と大文字化する際の文字コードの対応とを指定する。 このパラメータと "valid chars" の両方を設定する時は、 smb.conf ファイル中では、必ず "client code page" パラメータを "valid chars" パラメータより前に記述すること。 この際、"valid chars" パラメータの設定は、 "client code page" パラメータの設定に追加される。
設定されていないと、"client code page" の既定値は 850 になる。
"valid chars" も参照のこと。
既定値:
client code page = 850
例:
client code page = 936
このパラメータは、受け取ったシフトJIS の日本語文字を UNIX ファイルシステムのファイル名として使う際に、 クライアントが使っている "client codepage" を考慮した上で どのように変換するかを決めるものである。 "client codepage" が 932 (日本語シフトJIS) の時のみ有益である。
オプションは下記のとおり。
:AB
である。
:AB
である。これは、Samba と CAP の互換を取るために使われる。
クライアントがネットワークコンピュータや net view コマンドにより 利用可能な共有の一覧を参照したとき、共有名の横に表示される文字列である。
マシン名の横に表示される文字列を設定したいのであれば、 server string パラメータを参照のこと。
既定値:
コメント文字列はない
例:
comment = Fred's Files
このオプションを用いることで、 既定の設定ファイル(普通は smb.conf)の代わりの 設定ファイルを指定することで設定を上書きすることが可能になる。 このオプション自身が設定ファイル中に書かれるため、 ここには「鶏と卵」問題がある!
そのため、このパラメータによって設定ファイルの名前が変更されると、 新しい設定ファイルが頭から再ロードされる。
このオプションには通常の置換操作が指定できる。 うまく使えばとても便利だろう。
設定ファイルが存在しない場合には読み込まれない。 (このため、 特定のクライアントに適合する特別な設定ファイルを指定することができる)
例:
config file = /usr/local/samba/lib/smb.conf.%m
このパラメータは、サービスのエントリの 複製を作ることを許可する。 指定されたサービスの設定は、単に現在のサービスへと複製される。 現在のセクションに指定されたパラメータは、 コピー元のセクション中のものを上書きする。
この機能により、「ひな型(template)」となるサービスを設定することで、 類似のサービスを簡単に作成することができる。 コピー元のサービスは、コピー先のサービスより前に 設定ファイル中に配置する必要があることに注意して欲しい。
既定値:
none
例:
copy = otherservice
このパラメータの同義語は 'create mode' である。
ファイルが作成されると、ファイルのパーミッションは、DOS の属性を UNIX のパーミッションへ変換することで生成される。 さらに最終的な UNIX のモードは、このパラメータとのビット単位の 「AND」演算をかけられて得られる。 このパラメータは、ファイルの UNIX モードに対するビットマスクだと 考えることができる。 ここに設定されていないビットは、作成されたファイルのモードから削除される。
このパラメータの既定値は、UNIX のモードからグループ (group) と その他のユーザ (other) の書き込みと実行のビットを除いた値である。
この処理に引き続いて、Samba はこのパラメータで生成された UNIX モードを 「force create mode」パラメータの値により「OR」ビット演算を行う。 「force create mode」パラメータは既定では 000 に設定されている。
このパラメータはディレクトリのモードに影響しない。 詳細は 'directory mode' パラメータを参照のこと。
作成されるファイルに対して特定のモードビットを強制的に設定するには "force create mode" パラメータを参照のこと。 作成されるディレクトリに対するモードビットのマスクについては "directory mode" パラメータを参照のこと。 "inherit permissions"パラメータも参照のこと。
既定値:
create mask = 0744
例:
create mask = 0775
create mask の同義語である。
パラメータの値(10進の整数)は、 接続が使われなくなったとみなされて切断が行なわれるまでの経過時間(分)を表す。 この時間は、オープンされているファイルがない時にのみ経過する。
このパラメータは、使われていない接続が多くなって、サーバのリソースが 枯渇するのを防ぐのに有用である。
多くのクライアントは、このパラメータをユーザに意識させないように、 接続が切れたときに自動で再接続する機能を持っている。
多くのシステムでは、 このパラメータを使用して数分でタイムアウトするように設定することを 推奨する。
切断時間をゼロに設定することで、自動切断が実行されないようにできる。
既定値:
deadtime = 0
例:
deadtime = 15
しばしば、ログメッセージのタイムスタンプに、 秒よりも高解像度のものを必要とする時がある。 このパラメータを、Yes に設定すると、 タイムスタンプメッセージヘッダの分解能をマイクロ秒単位にする。
この機能を有効にするためには、パラメータ debug timestamp を Yes にしておかなければならないことに注意。
既定値:
debug hires timestamp = No
例:
debug hires timestamp = Yes
Samba 2.0 のデバッグログメッセージは、既定ではタイムスタンプが挿入される。 高レベルの "debug level" を指定している場合には、 このタイムスタンプが目障りな場合がある。このパラメータにより、 タイムスタンプの挿入を停止できるようになる。
既定値:
debug timestamp = Yes
例:
debug timestamp = No
単一のログファイルを複数のフォークされたsmbd プロセスから使っている時、 どのプロセスからのメッセージかを識別することは大変にむずかしい。 このパラメータを Yes にすると、 ログファイル中のタイムスタンプメッセージヘッダにプロセスIDを挿入する。
このパラメータは、debug timestamp を Yes に設定しておかないと、効果が無いことに注意。
既定値:
debug pid = No
例:
debug pid = Yes
Sambaは root 権限で動作するときもあれば、 接続されたユーザの権限で動作するときもある。 このパラメータを Yes にすると、現在の euid、egid、uid、gidを ログファイル中のタイムスタンプメッセージヘッダに挿入する。
このパラメータは、debug timestamp を Yes に設定しておかないと、効果が無いことに注意。
既定値:
debug uid = No
例:
debug uid = Yes
このパラメータの値により、 smb.conf ファイル中でデバッグのレベル(ログのレベル)を指定することが 可能になる。 これはシステムの設定により柔軟性を与えるためにある。
既定では、デバッグのレベルはコマンドラインで指定され、指定されなければ、 0 と見なされる。
例:
debug level = 3
default service の同義語である。
"名前の変換" 節を参照。 また、 "short preserve case" パラメータにも 注意してほしい。
このパラメータにより、 要求されたサービスが見つからなかったときに接続されるサービスの名前を指定する。 パラメータの値には、大かっこ('[' と ']')が付かないことに注意して欲しい (下記の例を参照)。
このパラメータの既定値は存在しない。 このパラメータが指定されていない場合、 存在しないサービスへの接続の試みはエラーとなる。
このサービスは、guest ok で read-only のサービスにするのが一般的である。
外見上の(訳注: smb.conf 中に記述された)サービス名が、 クライアントから要求されたサービス名に変換されてから提供されることに注意。 このことは、%S のようなマクロを使用して ワイルドカードなサービスを作るには非常に有用となる。
既定値のサービスに使用されるサービス名の中の文字 '_'
は、'/'
に
マッピングされることにも注目して欲しい。いろいろとおもしろい事ができるだろう。
例:
default service = pub [pub] path = /%S
このパラメータは、以下に記述する特別な条件の場合に、 smbd (8) によって ROOT 権限で実行されるスクリプトのフルパス名である。
通常、Samba サーバ上には、 サーバ上のファイルにアクセスするすべてのユーザが存在している必要がある。 しかし、Windows NT のアカウントデータベースを ユーザデータベースのマスタとして使うサイトで、 Samba サーバ上のユーザの作成や保守を Windows NT の PDC に同期して行なうのは骨の折れる作業である。
このオプションを使うことで、Samba サーバに対してユーザがアクセスした時点で Windows NT ユーザがもはや存在しなかった時に、 smbd が要求された UNIX のユーザを 必要に応じて削除することが可能になる。
このオプションを使うためには、smbd が security=domain で構成されている必要がある。 また、"delete user script" には、 1つの引数 %u で指定される UNIX のユーザを 削除するスクリプトのフルパスを設定しなければならない。 ここで、 %u という引数は削除すべき UNIX のユーザ名に展開される。 add user script は、 security=domain でも security=server でも動作するが、 こちらはそうではないので、注意すること。 これは、Samba がドメインのメンバーである時のみ、 既に存在しなくなったユーザのログオンの試みについての情報を入手する事ができるためである。 security=server モードでは、 存在しないユーザは不正なパスワードログインと同じに扱われる。 この条件でのユーザの削除は良い考えとはいえないであろう。
Windows のユーザが Samba サーバにアクセスしようとして "ログイン"(SMB プロトコルの session setup の発行) を行なう時に、 smbd は password server と通信を行ない、与えられたユーザと与えられたパスワードで認証を行なう。 もしも、ユーザがもはや存在しないということを意味する ドメインエラーコードを伴って認証が失敗すると、smbd は UNIX パスワードデータベース中から対応する UNIX のユーザを検索する。 もしもこの検索が成功し、"delete user script" が設定されていると、 smbd は指定されたスクリプトを ROOT 権限で 呼び出し、ユーザを削除するために、%u 引数をユーザ名に展開する。
このスクリプトは与えられた UNIX ユーザ名を削除する。この方法で、 存在する(訳注: 「存在しない」の誤り?) NT アカウントに対応する UNIX ユーザは動的に削除される。
security=domain、 password server、add user script も参照のこと。
既定値:
delete user script = <空白文字列>
例:
delete user script = /usr/local/samba/bin/del_user %u
このパラメータにより、読み取り専用ファイルの削除が可能になる。 これは普通の DOS の仕様ではないが、UNIX においては認められている。
このオプションは rcs のようなアプリケーションを動作させるのに有用で、 UNIX ファイルの所有者に関する仕様がファイルのパーミッション変更を妨げたり、 DOS の仕様が読み取り専用ファイルの削除を妨げたりする問題を回避する。
既定値:
delete readonly = No
例:
delete readonly = Yes
このオプションは、アクセスを禁止したディレクトリ(veto ディレクトリ) ('vetofiles' オプションを参照)を含むディレクトリを Samba が削除しようとしたときに使われる。オプションが False (既定値) に 設定されていると、アクセスを禁止したディレクトリ内にアクセスを禁止されていない ファイルやディレクトリが含まれていると、ディレクトリの削除は失敗する。 これは通常期待している動作であろう。
もしもこのオプションを True に設定すると、Samba は本来アクセスができない
ディレクトリ内でも再帰的にすべてのファイルやディレクトリを削除しようとする。
これは Netatalk のようなファイルサーバと併用する上で有用である。
Netatalk はディレクトリにメタファイルを作成するため、
通常は DOS/Windows ユーザがメタファイル(たとえば .AppleDouble
)を
参照するのを禁止しているだろう。
'delete veto files = True'
に設定すると、これらのディレクトリは、
親ディレクトリが削除されたときに自動的に削除される(ただしユーザが
ディレクトリを削除する許可を持っている必要がある)。
veto files パラメータも参照のこと。
既定値:
delete veto files = False
例:
delete veto files = True
hosts deny の同義語である。
dfree commnad の設定は、 内部ディスクの空き容量の計算に問題があるシステムにのみ使用されるべきである。 この問題は Ultrix で発生することが知られているが、 他のオペレーティングシステムで発生するかも知れない。 問題は、各々のディレクトリの一覧表示の終了時に 「終了 再試行 無視 (Abort Retry Ignore)」のエラーが発生するというものである。
この設定は、総ディスク容量と有効な容量を計算するための 内部ルーチンを置き換える外部ルーチンを指定する。 以下の例は、この機能を果たすと思われるスクリプトである。
外部プログラムは、ファイルシステム中の対象のディレクトリを示す
パラメータ 1 つだけを受け取る。これは一般には ./
という文字列である。
スクリプトはアスキー文字で 2 つの整数を返さなければならない。
1 つめはブロック単位のディスク総容量で、2 つめは利用できる
ブロック数でなければならない。
3 番目の戻り値は必須ではなく、バイト単位のブロックサイズである。
既定のブロックサイズは 1024 バイトである。
注意: スクリプトは setuid または setgid してはならず、 root の所有(そして root のみ書き込み可能)にすべきである。
既定値:
ディスクの総容量と残容量を測定する既定の内部ルーチンが使用される。
例:
dfree command = /usr/local/samba/bin/dfree
スクリプト dfree (実行可能にする必要がある)は、次のようなものである。
#!/bin/sh df $1 | tail -1 | awk '{print $2" "$4}'
または (Sys V 系 UNIX)
#!/bin/sh /usr/bin/df -k $1 | tail -1 | awk '{print $3" "$5}'
いくつかのシステムでは、コマンド名を、フルパス名に置き換えなければ ならないだろう。
path の同義語である。
このパラメータは 8 進数で表されるモードであり、 UNIX のディレクトリ作成時に DOS のモードから UNIX のモードへの変換を行うときに使用される。
ディレクトリが作成されると、必要なパーミッションは DOS のモードから UNIX のパーミッションへの変換することで生成される。 さらに最終的な UNIX のモードは、このパラメータとのビット単位の 「AND」演算をかけられて得られる。 このパラメータは、ディレクトリの UNIX モードに対するビットマスクと 考えることができる。 ここに設定されていないビットは、作成されたディレクトリのモード設定から 削除される。
このパラメータの既定値は、UNIX のモードからグループ (group) と その他のユーザ (other) の書き込みビットを除いた値で、 ディレクトリの所有者だけが変更できる。
この処理に引き続いて、Samba はこのパラメータで生成された UNIX モードを 「force directory mode」パラメータの値により「OR」ビット演算を行う。 「force directory mode」パラメータは既定では 000 に設定されている (つまり、追加されるモード・ビットはない)。
作成されるディレクトリに対して特定のモードビットを強制的に設定するには "force directory mode" パラメータを参照のこと。
作成されるファイルに対するモードビットのマスクについては "create mode" パラメータや、 "directory security mask" パラメータを参照のこと。
"inherit permissions" パラメータも参照のこと。
既定値:
directory mask = 0755
例:
directory mask = 0775
directory mask の同義語である。
このパラメータは、Windows NT クライアント上で、 NT のセキュリティダイアログボックスを使って UNIX ディレクトリのパーミッションを操作するときに、 UNIX のどのパーミッションビットが変更可能かを制御する。
このパラメータは、変更されるパーミッションビットに対して、 マスクとして適用され (AND 操作が適用され)、このマスクにない任意の ビットは変更操作から保護される。言い替えれば、マスク中で 0 と指定 されたビットは、ユーザが変更できないビットと見なされる。
明示的に設定されない場合、 このパラメータは、directory maskパラメータで 設定された値と同じに設定される。ディレクトリに対するすべての ユーザ/グループ/その他 のパーミッションをユーザに変更可能にさせるならば、 このパラメータを 0777 に設定する。
別のマシン経由で Samba サーバにアクセスできるユーザは、簡単にこの制限を 回避できることに 注意。そのため、これはスタンドアロンで 動くシステムに対して最も有用となる。 通常多くの管理者は、おそらく 0777 に設定したがるだろう。
force directory security mode、 security mask、 force security mode パラメータも参照のこと。
既定値:
directory security mask = <directory mask と同じ>
例:
directory security mask = 0777
WINS サーバとして動作している nmbd に対し、 探している NetBIOS 名が登録されていない場合に、それを DNS 名として扱い、 名前を問い合わせたクライアントに代わって、その名前を DNSサーバで検索するように 設定する。
NetBIOS 名の最大長は 15 文字であるため、 DNS 名(または DNS の別名)も同様に最大 15 文字となることに注意。
nmbd は、DNS 参照要求のために自分自身を複製した プロセスを作る。これは名前検索が同期処理である為である。
wins support パラメータも参照のこと。
既定値:
dns proxy = yes
これは実装途中の実験的なパラメータであり、未完成の Samba の NT ドメインコントローラコードの一部である。このパラメータは、今後のリリースで 削除されるかもしれない。 より多くの Samba の NT ドメインコントローラ機能が提供されているかも知れない 最新コードのビルドを使うのであれば、Samba-ntdomメーリングリストに 参加して欲しい。参加は listproc@samba.org にメールする事で 可能である。
これは実装途中の実験的なパラメータであり、未完成の Samba の NT ドメインコントローラコードの一部である。このパラメータは、今後のリリースで 削除されるかもしれない。 より多くの Samba の NT ドメインコントローラ機能が提供されているかも知れない 最新コードのビルドを使うのであれば、Samba-ntdomメーリングリストに 参加して欲しい。参加は listproc@samba.org にメールする事で 可能である。
これは実装途中の実験的なパラメータであり、未完成の Samba の NT ドメインコントローラコードの一部である。このパラメータは、今後のリリースで 削除されるかもしれない。 より多くの Samba の NT ドメインコントローラ機能が提供されているかも知れない 最新コードのビルドを使うのであれば、Samba-ntdomメーリングリストに 参加して欲しい。参加は listproc@samba.org にメールする事で 可能である。
これは実装途中の体験的なパラメータであり、未完成の Samba の NT ドメインコントローラコードの一部である。このパラメータは、今後のリリースで 削除されるかもしれない。 より多くの Samba の NT ドメインコントローラ機能が提供されているかも知れない 最新コードのビルドを使うのであれば、Samba-ntdomメーリングリストに 参加して欲しい。参加は listproc@samba.org にメールする事で 可能である。
これは実装途中の体験的なパラメータであり、未完成の Samba の NT ドメインコントローラコードの一部である。このパラメータは、今後のリリースで 削除されるかもしれない。 より多くの Samba の NT ドメインコントローラ機能が提供されているかも知れない 最新コードのビルドを使うのであれば、Samba-ntdomメーリングリストに 参加して欲しい。参加は listproc@samba.org にメールする事で 可能である。
これを True に設定すると、Samba サーバは同じ
ワークグループ に所属する Windows 95/98 に対して
ドメインログオン機能を提供する。
この機能の設定の詳説は、Samba ソースの文書ディレクトリ docs/
にある
ファイル DOMAINS.txt (訳注: DOMAIN.txt のこと)を参照のこと。
Windows 95/98 のドメインログオンは Windows NT のドメインログオンとは 異なる ことに注意。NT ドメインログオンはプライマリドメインコントローラ (PDC) を必要とする。 将来のリリースの Samba では、Windows NT クライアントに対しても、 この機能を提供可能にすることを予定している。
既定値:
domain logons = no
nmbd が、WAN 環境でのブラウズリストの統合を行う事を 可能にする。このオプションを設定すると、 nmbd は、指定された workgroup のドメインマスタブラウザである事を表す、ドメイン固有の特別な NetBIOS 名(訳注: NetBIOS 名で末尾が 0x1b のグループ名を指す) を登録する。 各サブネット上にある 同名の workgroup に属するローカルマスタブラウザは この nmbd に対し、ローカルなブラウズリストを提供し、 smbd からネットワーク全体のブラウズリストの完全な複製を受け取るようになる。 ブラウザのクライアントは、ローカルマスタブラウザと通信し、 個々のサブネットのブラウズリストの代わりに、 そのドメイン全体のブラウズリストを取得するようになる。
Windows NT プライマリドメインコントローラは、既定値で、 その workgroup のドメインマスタブラウザとして 認識するための、workgroup固有の 特別な NetBIOS 名を登録できることを前提としていることに 注意(すなわち、この試みから Windows NT PDC を排除する方法はない)。 つまり、このパラメータが Yes に設定され、nmbd が Windows NT PDC より前に、workgroup のための 特別な NetBIOS 名を登録してしまうと、 サブネット越しのブラウズの動作は異常となり、場合によっては失敗する。
既定値:
domain master = no
いくつかのシステムでは、特定のディレクトリ(たとえば Linux での /proc
)
が存在し、それらはクライアントにとって関係がないか、無限に深い(再帰的)。
このパラメータは、サーバが常に空のように見せるべきディレクトリを
コンマで区切って指定する。
Samba が要求する "dont descend" の書式は一定ではない。
たとえば /proc
ではなく ./proc
でなければならないかもしれない。
実験してみるのが最良の方法である。 :-)
既定値:
なし (すなわちすべてのディレクトリの中が見える)
例:
dont descend = /proc,/dev
DOS と Windows FAT ファイルシステム下では、時刻の最小単位は 2 秒である。 共有に対してこのパラメータを設定すると、 1 秒単位の要求が smbd にあったときに、 返却される時間をもっとも近い 2 秒の境界値に丸める。
このオプションはおもに、Samba の共有で Visual C++ を 使用するための互換性オプションとして利用する。 共有で oplock が有効であると、 Visual C++ はファイルが最後の読み込みから変更されていないかを検査するときに、 扱う日付の最小単位が異なる 2 つの時刻取得の呼び出し (call) を利用する。 そのうちのひとつの呼び出しは 1秒単位であり、もうひとつは 2 秒単位になっている。 2 秒単位で扱う呼び出しが奇数秒を切り捨てるため、 ファイルが奇数秒の日付であると 2 つの日付が一致せず、 Visual C++ はファイルが変更されたと報告し続けてしまう。 このオプションを設定することで 2 つの日付は一致し、Visual C++ は幸福になれる。
既定値:
dos filetime resolution = False
例:
dos filetime resolution = True
DOS と Windows では、ファイルに書き込むことができるユーザは、 ファイルのタイムスタンプをユーザが変更できる。 POSIX の仕様では、ファイルの所有者か root のみがタイムスタンプを変更できる。 既定値で、Samba は、POSIX 環境で動き、smbd の実効ユーザが ファイルの所有者でないとき、タイムスタンプの変更を禁止する。 このオプションを True にセットすると、DOS の仕様に準じて動作するので、 smbd は DOS の要求に従ってタイムスタンプを変更できるようになる。
既定値:
dos filetimes = False
例:
dos filetimes = True
このパラメータは、暗号化パスワードでクライアントと
ネゴシエーションするかどうかを制御する。
Windows NT 4.0 SP3 以降 や Windows 98 では、
レジストリの変更をしなければ暗号化パスワードが既定値である。
Samba で暗号化パスワードを使うには docs/
ディレクトリ中の、
ENCRYPTION.txt を参照して欲しい。
暗号化パスワードを正しく機能させるためには、 smbd がローカルの smbpasswd (5)ファイル(セットアップと 保守を行なうには smbpasswd (8) プログラムを参照) を参照するようにするか、 smbd が別のサーバで認証を行うように "server" もしくは "domain" という security= パラメータを設定する必要がある。
preexec の同義語である。
NTFS や Windows VFAT ファイルシステムでは、 すべてのファイルとディレクトリの作成時間を保持している。 これは UNIX が保持している ctime (状態変更時間)とは異なるため、 Samba の既定動作では UNIX が保持している最も古い時間を報告する。 共有でこのパラメータを設定すると、 Samba はディレクトリの作成された時間として常に 1980/1/1 の午前 0 時を報告する。
このオプションは主に、Samba 共有に対して Visual C++ を使うとき、 互換性を保つためのオプションとして用いられる。 Visual C++ が生成した makefile は、 オブジェクトディレクトリを各オブジェクトファイルの依存性の確認に利用するように ディレクトリを作成するルールを作成する。(訳注: この文の訳は誤っているかも知れない) NMAKE が日付を比較する際にディレクトリをチェックするときには、 作成された時間を使用する。 つまり、オブジェクトディレクトリが存在しない場合は作成されるが、 既にディレクトリが作成されていると、 ディレクトリに含まれているオブジェクトファイルより古い日付を常に保持している筈だということである。
しかし、UNIX の時間の扱い方の仕様のため、 Samba が報告するディレクトリの作成時間は ディレクトリにファイルが作成または削除されたときにも更新されてしまう。 その結果 NMAKE は、 オブジェクトディレクトリで最後にビルドされたファイルを除く すべてのオブジェクトファイルがオブジェクトディレクトリより古いと判断し、 それらを再構築してしまう。 このオプションを有効にすることで、 常にディレクトリは含まれるファイルよりも前の日付になり、 NMAKE の構築が期待通りに進むことが保証される。
既定値:
fake directory create times = False
例:
fake directory create times = True
oplock は SMB クライアントがファイル操作をローカルにキャッシュするため の許可をサーバから得る方式である。 サーバが oplock (opportunistic lock = 便宜的ロック) を認めると、 クライアントは自分だけがファイルにアクセスしていると勝手に思いこみ、 積極的にファイルのデータをキャッシュする。 oplock のタイプによっては、クライアントはファイルのオープン/ クローズの操作をもキャッシュするかも知れない。 これにより、莫大な性能向上が期待できる。
"fake oplocks = yes"
に設定すると、
どんなに多くのクライアントがファイルを使用していようとも、
smbd は常に oplock 要求を認める。
一般的には、このパラメータを使うよりは実際の oplocks を使う方がより優れている。
CDROM 等の物理的に読みだし専用のメディアのように、読みだし専用 もしくは同時に 1 つのクライアントからだけしかアクセス されないとわかっている共有に、このオプションを有効にすることで、 多くの操作で大きな性能改善が見られるだろう。 複数のクライアントが同時にファイルの読み書きアクセスする可能性がある 共有でこのオプションを有効にすると、データ不正が起こりうる。 このオプションは慎重に使用して欲しい!
このオプションは既定では無効になっている。
このパラメータにより、Samba 管理者は smbd
がシンボリックリンクをたどるのを共有単位で禁止させることができる。
このパラメータを No に設定すると、シンボリックリンクである
ファイルやディレクトリをたどるのを抑制する(ユーザにはエラーが返却される)。
たとえば、ユーザが自分のホーム・ディレクトリに /etc/passwd
への
シンボリック・リンクを追加するのを防止するのにたいへん役立つ。
しかし、わずかながらファイル名の検索が遅くなるだろう。
このオプションは既定では有効になっている (つまり smbd はシンボリックリンクをたどる)。
このパラメータは、Samba によりファイルのモードに必ず設定される UNIX のモードビットのパーミッションを指定する。 これは、ファイルの作成やパーミッションの変更時に、 作成されたファイルのモードビットに対し このパラメータをビット演算で「OR」することで実現される。 このパラメータの既定値は 000 (8 進数表記)である。 ファイルのモードは "create mask" パラメータのマスクが 適用されたのち、このパラメータでビット演算の「OR」が行われる。
ファイルへのモード・ビットのマスク実行に関する詳細は パラメータ "create mask" を参照のこと。
"inherit permissions" パラメータも参照のこと。
既定値:
force create mode = 000
例:
force create mode = 0755
この例は、作成されるすべてのファイルに対し、「グループ(group)」と 「その他のユーザ(others)」の読み込みと実行許可をもたせ、 「所有者(user)」の読み込み/書き込み/実行ビットを持たせるよう強制する。
このパラメータは、Samba によりディレクトリのモードに必ず設定される UNIX のモードビットのパーミッションを指定する。 モードビットの設定は、ディレクトリの作成時に、 このパラメータをビット演算で「OR」することで実現される。 このパラメータの既定値は 0000 (8 進数表記)であり、 作成されるディレクトリに追加のパーミッションビットはなにも足されない。 この操作はパラメータ "directory mask" のマスクが 適用された後に実行される。
作成されたディレクトリへのモード・ビットのマスク実行に関する詳細は パラメータ "directory mask" を参照のこと。
"inherit permissions" パラメータも参照のこと。
既定値:
force directory mode = 000
例:
force directory mode = 0755
この例は、作成されるすべてのディレクトリに対し、「グループ(group)」と 「その他のユーザ(others)」の読み込みと実行許可をもたせ、 「所有者(user)」の読み込み/書き込み/実行ビットを持たせるよう強制する。
このパラメータは、Windows NT クライアント上で、 NT 固有のセキュリティダイアログボックスを使って、 UNIX ディレクトリのパーミッションを操作するときに、 UNIX のどのパーミッションビットが変更可能かを制御する。
このパラメータは、変更されるパーミッションビットに対して、 マスクとして適用され (OR 操作が適用され)、強制的に、ユーザが on に変更 可能なマスク中の任意のビットを指定する。 言い替えれば、マスク中の 1 つのビットは、ユーザがディレクトリ上の セキュリティを変更するときに、セットビットとして扱われ、ユーザは いつでも on に設定できる。
もしも、明示的に設定しないと、 このパラメータは、force directory mode パラメータで設定された値と同じに設定される。ディレクトリに対する、すべての ユーザ/グループ/その他 パーミッションをユーザに変更可能にさせるならば、 このパラメータを 000 に設定する。
別のサーバを経由して Samba にアクセスできるユーザは、簡単にこの制限を バイパスできることに 注意。そのため、これは、スタンドアロンで 動くシステムに有効である。通常多くの管理者は、おそらく O000 に設定 したがるだろう。
directory security mask 、 security mask、 force security mode パラメータも参照のこと。
既定値:
force directory security mode = <directory mode と同じ>
例:
force directory security mode = 0
このパラメータには、このサービスに接続するすべてのユーザが所属する、 既定値のプライマリグループとしての UNIX のグループ名を指定する。 このパラメータを使うと、サービス上のファイルへのすべてのアクセスにおいて、 パーミッションのチェック時に、指定されたグループ名が確実に使われるように なるので、ファイル共有をする際は便利である。 そのため、Samba の管理者は、このサービス内において提供する ファイルやディレクトリに関して、指定されたグループ名に パーミッションを割り当てることにより、これらのファイルの共有を許可/不許可に することができる。
Samba 2.0.5 とそれ以降では、このパラメータは、以下のような拡張された
機能を持つ。
もしも、グループ名が、'+' 文字を先頭に付けてここで記述されているならば、
現在共有にアクセスしているユーザは、そのグループにすでに割り当てられていても、
このグループに割り当てられた既定値のプライマリグループのみを持つ。これは、
管理者に、すでに特定のグループにいるユーザのみが、そのグループのグループ
属性を持つファイルを作ることを決定することを可能にする。これは、finer
granularity of ownership を与える。たとえば、force group = +sys
という
設定は、すでに sys グループにいるユーザのみに、Samba の 共有 にアクセス
するときに、彼らの既定値のプライマリグループを sys に割り当てる。
その他すべてのユーザは、通常のプライマリグループのままである。
もしも、"force user" パラメータも設定されていると、 force group で指定されたグループが、"force user" で設定されたプライマリグループより優先される。
"force user") も参照のこと。
既定値:
強制するグループはない
例:
force group = agroup
このパラメータは、Windows NT クライアント上で、 NT 固有のセキュリティダイアログボックスを使って、 UNIX ファイルのパーミッションを操作するときに、 UNIX のどのパーミッションビットが変更可能かを制御する。
このパラメータは、変更されるパーミッションビットに対して、 マスクとして適用され (OR 操作が適用され)、強制的に、ユーザが on に変更 可能なマスク中の任意のビットを指定する。 言い替えれば、マスク中の 1 つのビットは、ユーザがディレクトリ上の セキュリティを変更するときに、セットビットとして扱われ、ユーザは いつでも on に設定できる。
もしも、明示的に設定しないと、 このパラメータは、force create mode パラメータで設定された値と同じに設定される。ファイルに対する、すべての ユーザ/グループ/その他 パーミッションをユーザに変更可能にさせるならば、 このパラメータを 000 に設定する。
Samba サーバを経由してアクセスできるユーザは、簡単にこの制限を バイパスできることに 注意。そのため、これは、スタンドアロンで 動くシステムに有効である。通常多くの管理者は、おそらく O000 に設定 したがるだろう。
force directory security mode、 directory security mask、 security mask パラメータも参照のこと。
既定値:
force security mode = <force create mode と同じ>
例:
force security mode = 0
このパラメータは、このサービスとのすべての接続において 強制的に設定されるユーザ名を指定する。 これはファイルの共有に有用である。 このパラメータを間違って使用すると、 セキュリティ問題を引き起こす原因となるので、 慎重に使用すべきである。
このユーザ名は、接続が確立したときのみ使用される。
従って、クライアントは有効なユーザで接続し、
有効なパスワードを提供しなければならない。
一度接続されると、全てのファイル操作は
「強制されたユーザ forced user
」によって実行されたことになる。
クライアントが接続したときのユーザ名は無視される。
これは大変便利である。
Samba 2.0.5 とそれ以降では、このパラメータは、強制されたユーザ(forced user) のプライマリグループが、すべてのファイル操作においてプライマリグループ として使われることも引き起こす。2.0.5 に優先して、プライマリグループは 接続されたユーザのプライマリグループとしてそのまま残る(これはバグである)。
"force group" も参照のこと。
既定値:
強制するユーザはない
例:
force user = auser
このパラメータは、管理者に、共有のファイルシステムタイプをクライアントが 問い合わせたとき、smbd によって報告される共有の ファイルシステムタイプを指定する文字列を設定する。 既定値は Windows NT互換 の NTFS だが、これはたとえば、"Samba" とか "FAT" のような別の文字列に、必要に応じて変更することができる。
既定値:
fstype = NTFS
例:
fstype = Samba
これはチューニングオプションである。 これを有効にするとキャッシュ・アルゴリズムが使用され、 getwd() の呼び出し時間を減少させる。 これは widelinks パラメータが 偽 になったとき、 パフォーマンスに対して相当な効果がある。
既定値:
getwd cache = No
例:
getwd cache = Yes
"force group" の同義語である。
'guest ok' (下記参照)を指定したサービスに アクセスする時に使用されるユーザ名である。 このユーザのあらゆるパーミッションは、 ゲスト・サービスに接続している任意のクライアントに有効となる。 一般的に、このユーザはパスワード・ファイルに存在するだろうが、 有効なログインをすることはできないだろう。ユーザアカウント "ftp" は しばしばこのパラメータの良い選択である。もしも与えられたサービスに ユーザ名が指定されていると、指定されたユーザ名はこれを上書きする。
あるシステムでは、アカウント「nobody」は印刷することができない。
この場合は別のアカウントを使用して欲しい。
ゲスト・ユーザでログイン(おそらく "su -"
コマンドを使用する)して、
lpr (1) または lp (1)
を使用して印刷を試すことでこれをテストすべきである。
既定値:
コンパイル時の指定で、通常は "nobody"
例:
guest account = ftp
サービスに対してこのパラメータを 'yes'にすると、サービスに 接続するときにパスワードが不要になる。利用者の権限は guest account となる。
このオプションについての詳細は、下記の security セクションを参照のこと。
既定値:
guest ok = no
例:
guest ok = yes
あるサービスの、このパラメータが 'yes' ならば、 サービスへの接続はゲストのみ許される。 サービスで "guest ok" か "public" が設定されていない場合、このパラメータは効果がない。
このオプションについての詳細は、下記の security セクションを参照のこと。
規定値:
guest only = no
例:
guest only = yes
これは真偽値のパラメータであり、 ドットで始まるファイルを隠しファイルとするかどうかを制御する。
既定値:
hide dot files = yes
例:
hide dot files = no
これは、不可視だがアクセス可能なファイルやディレクトリのリストである。 リストに一致するファイルとディレクトリに対して DOS の「隠しファイル(hidden)」属性が適用される。
リストの各エントリは '/'
で区切る必要があり、
エントリに空白文字を含めることができる。
'*'
と '?'
は DOS のワイルドカードのように複数のファイルや
ディレクトリを指定するのに利用することができる。
各エントリは UNIX のパスであり、DOS のパスではない。
また、UNIX のディレクトリ区切りである '/'
を含めてはならない。
大文字/小文字を区別するオプション (case sensitive) が ファイルを隠す動作に影響することに注意しよう。
このパラメータの設定は Samba の性能に影響する。 ファイルとディレクトリを走査するとき、すべてのファイルとディレクトリに 一致するかどうかの検査をするよう強制するためである。
"hide dot files"、"veto files" と "case sensitive" も参照のこと。
既定値:
このオプションで隠されるファイルやディレクトリはない。(ドット・ファイルは「hide dot files」オプションにより既定で隠される)
例:
hide files = /.*/DesktopFolderDB/TrashFor%m/resource.frk/
上の例は、Thursby にある Macintosh クライアント (DAVE) が内部で使用するために 作るファイルをもとにしている。 また、ドットで始まるファイルをすべて隠す。
もしも "nis homedir" が 真 で、かつ、 smbd がまた Windows 95/98 の logonserver として振る舞っている場合、 このパラメータは、サーバがユーザのホーム・ディレクトリを取得するときに用いる NIS (あるいは YP)マップを指定する。 現在では、Sun の auto.home マップの形式だけを扱える。 マップの形式は
username server:/some/file/system
のようになり、プログラムは最初の ':'
の前の部分からサーバ名を取り出す。
おそらく、異なるマップの形式や Amd (別の automounter) のマップに対応する
よりよい解析システムにしなければならないだろう。
注意:このオプションを動作させるには、システム上で NIS が動作していることが 要求される。
"nis homedir"、domain logons も参照のこと。
既定値:
homedir map = auto.home
例:
homedir map = amd.homedir
このパラメータの同義語は、'allow hosts' である。
このパラメータはホストをコンマ、スペースまたはタブで区切った形式で指定する。 それらのホストのみがサービスへのアクセスを許可される。
個々のサービス内の設定によらず、[global] セクションに指定された場合はすべてのサービスに適用される。
このパラメータは、ホスト名または IP アドレスで指定する。
たとえば、"allow hosts = 150.203.5."
のように記述すると、
クラス C のサブネットに属するホストにのみアクセスを制限することができる。
リストの詳細な記述方法は hosts_access (5)のマニュアルに記述されている。
ただし、このマニュアルページは、システムに存在しないかも知れないので、
以下に簡単な抜粋を添付する。
ローカルホストアドレス 127.0.0.1 は "hosts deny" オプションによって 特に指定しない限り、常にアクセス可能なことに注意。
network/netmask のペア、さらにシステムがネットグループをサポートするならば、 ネットグループ名によってもホストを指定することができる。 EXCEPT キーワードはワイルドカードのリストを制限するために使用できる。 以下の例はいくらかの手がかりとなるだろう。
例 1: 1 つを除いて 150.203.*.* 内のすべての IP に許可する
hosts allow = 150.203. EXCEPT 150.203.6.66
例 2: 与えられた network/netmask に一致するホストに許可する
hosts allow = 150.203.15.0/255.255.255.0
例 3: 2 つのホストに許可する
hosts allow = lapland, arvidsjaur
例 4: NIS のグループ "foonet" には許可するが、 1 つの特定のホスト pirate(略奪者)からのアクセスは拒否する
hosts allow = @foonet
hosts deny = pirate
実際にアクセスするには適切なユーザ・レベルのパスワードが必要なことに注 意して欲しい。
あなたのホストのアクセスが期待した動作をするかどうかをテストする方法を知るには testparm (1) を参照して欲しい。
既定値:
なし(つまり、すべてのホストがアクセスを許可される)
例:
allow hosts = 150.203.5. myhost.mynet.edu.au
これは 'hosts allow' の逆であり、 ここでリストされたホストは 指定したサービスがこの設定を上書きする固有 のアクセスリストを持っていない限り、サービスへのアクセスを認められない。 ここでリストされたホストは 指定したサービスが固有のリストを それに上書きしているとしても、決してサービスへのアクセスを認められない。 リストが競合していると、'allow' リストが 優先される。
既定値:
なし(つまり、すべてのホストがアクセスを拒否されない)
例:
hosts deny = 150.203.4. badhost.mynet.edu.au
このグローバル・パラメータが空文字列でなければ、 パスワード指定なしでアクセスできるユーザ名とホスト名の定義を 読むためのファイル名となる。
これはサービスにアクセスするホストを指定する hosts allow とは異なる。混同しないこと。また、ゲスト・サービスに有用である。 hosts equiv は Samba にパスワードを供給しない Windows NT クライアントに有用であろう。
注意: hosts.equiv を使うと、重大なセキュリティ・ホールが起こりうる。 これは PC が正確なユーザ名を提供すると信頼しているためである。 PC に不正確なユーザ名を提供させることは非常に簡単である。 hosts.equiv オプションは、あなたが実行することを本当に理解しているか、 おそらく家庭ネットワークにおいて 配偶者と子供を信頼している場合にのみ使用することを推奨する :-)
既定値:
パスワードなしでアクセスできるホストやユーザは無い
例:
hosts equiv = /etc/hosts.equiv
内部に別の設定ファイルを取り込むことができる。 このファイルはその場所に打ち込んだように、そのまま含まれる。
通常、新しいファイルとディレクトリへのパーミッションは以下のパラメータで 決定される。 "create mask", "directory mask", "force create mode", "force directory mode" しかし、真偽値の inherit permissions パラメータはこれらをオーバライドする。
新しいファイルは、親ディレクトリから read/writeビットを受け継ぐ。 それらの実行ビットは通常以下のパラメータで設定される。 "map archive", "map hidden" と "map system" 。
setuidビットは *決して*引き継がれない(コードは明確にこれを禁止する)。
これはたくさんの(数千の)利用者がいる大きなシステムにおいては、 各々のユーザによって、柔軟に使える 単一の[homes]共有を認めるために、 部分的に便利である。
"create mask"、 "directory mask"、 "force create mode" と "force directory mode" も参照のこと。
既定値
inherit permissions = no
例
inherit permissions = yes
このオプションは、Samba が正しくブラウジング、名前の登録とその他の NBT転送を扱うことができるように、既定値ののネットワーク・インターフェー スリストを上書きすることを可能にする。既定値では、Sambaはすべての 有効なインタフェースのリストをカーネルに問い合わせ、ブロードキャスト 可能な 127.0.0.1 以外のインタフェースを使う。
このオプションは、インタフェース文字列のリストを引数として取る。おのおのの 文字列は下記の形式を取る。
"mask" パラメータはビット長(クラスCネットワークなら24)を取ることも できるし、ドットで分離された10進の完全なネットマスク形式を取ることもできる。
"IP" パラメータは、上記と同じく、完全なドット10進のIPアドレスでも良いし、 OSが持つ標準のホスト名解決メカニズムを経由して探すことができるホスト名 でもよい。
たとえば、下記の行は、
interfaces = eth0 192.168.2.10/24 192.168.3.10/255.255.255.0
eth0 に結合されたネットワークインタフェースデバイスと、IP アドレス 192.168.2.10 と 192.168.3.10 の 3 つのネットワークインタフェースを構成する。最後の2つの ネットマスクは 255.255.255.0 にセットされる。
"bind interfaces only" も参照のこと。
これは、このサービスにログインを許可すべきでないユーザのリストである。 これは、不適切な設定のためにセキュリティが侵犯される事を、確実に抑止する 全く"パラノイド"的な検査である。
'@'
で始まる名前は、最初に NIS ネットグループと解釈され(もしも NIS を
サポートしているなら)、次にもしも NIS ネットグループデータベースに
みつからなければ、UNIX のグループと解釈される。
'+'
で始まる名前は、UNIX グループのデータベースのみを参照する。
'&'
で始まる名前は、(NIS が動いていることが必要)
NIS のネットグループデータベースのみを参照する。'+'
と
'&'
は、どちらが先に来てもよく、そのため、
"+&group"
は UNIX のグループデータベースを、NIS ネットグループ名を
伴ってチェックすることを意味し、"&+group"
は NIS ネットグループ
データベースを、UNIX のグループデータベースを伴ってチェックすることを意味する(
これは '@'
プレフィックスと同じである)。
現在のサービス名は %S で表わせる。これは、 [homes] セクション内では便利である。
"valid users" も参照のこと。
既定値:
不正なユーザは無い
例:
invalid users = root fred admin @wheel
このパラメータの値(整数)は、'keepalive'パケット間の秒数を表す。 このパラメータが 0 であると、keepalive パケットは送信されない。 keepalive パケットを送信すると、 クライアントがまだ存在し応答するかどうかをサーバが知ることができる。
通常 keepalive は、使用されているソケットに SO_KEEPALIVE 属性が 設定されている場合には必要ではない ("socket options" を参照)。 基本的に、問題にぶつかった場合にだけこのオプションを使用するべきである。
既定値:
keepalive = 0
例:
keepalive = 60
カーネルベースの oplocks をサポートしている UNIX の ために(現在は、IRIX のみサポートだが、Linux と FreeBSD もサポートするように なるだろう)、このパラメータはその機能の on / off を制御する。
カーネル oplocks は、ローカルの UNIX プロセス又 は NFS 操作が、 smbd が oplock したファイルにアクセスした時に、 Samba の oplocks を破棄させる機能を提供する。 これは、SMB/CIFS と NFS とローカルのファイルアクセスとの間で、完全なデータの 一貫性を保つ(そしてこれはとてもクールな機能である)。
このパラメータの既定値は サポートされていれば "On" で、サポートされて いなければ "off" である。このパラメータをいじってはいけない。
"oplocks" と "level2 oplocks" パラメータも参照のこと。
このパラメータは 実験的な、バックエンドの LDAP サーバに保存されている パスワードデータベースをサポートするための一部である。これらのオプションは --with-ldapオプションを指定して Samba を configure したときにのみ有効である。
このパラメータは LDAP データベース中からユーザ名を検索するときの LDAP 検索 フィルタを指定する。これは、検索の際にユーザに置換される %u を含んでいなければならない。
既定値:
空白文字列
このパラメータは 実験的な、バックエンドの LDAP サーバに保存されている パスワードデータベースをサポートするための一部である。これらのオプションは --with-ldapオプションを指定して Samba を configure したときにのみ有効である。
このパラメータは LDAP サーバに接続するときに使う TCP のポート番号を 指定する。
既定値:
ldap port = 389.
このパラメータは 実験的な、バックエンドの LDAP サーバに保存されている パスワードデータベースをサポートするための一部である。これらのオプションは --with-ldapオプションを指定して Samba を configure したときにのみ有効である。
このパラメータは、LDAP データベースの問い合わせと変更の実行を可能にするために、 LDAP サーバにバインドするためのエンティティ(本質的に LDAP ユーザ名)を指定する。
ldap root passwd も参照のこと。
既定値:
空白文字列(ユーザ名は定義されていない)
このパラメータは 実験的な、バックエンドの LDAP サーバに保存されている パスワードデータベースをサポートするための一部である。これらのオプションは --with-ldapオプションを指定して Samba を configure したときにのみ有効である。
このパラメータは、LDAP データベースの問い合わせと変更の実行を可能にするために、 LDAP サーバにバインドするためのエンティティのためのパスワード(LDAP ユーザ名の パスワード)を指定する。
バグ: このパラメータは決して smb.conf 中の読めるパラメータで あるべきではない。もし、適当な保存場所が見つからればこのパラメータは 削除される。
ldap root も参照。
既定値:
空白文字列
このパラメータは 実験的な、バックエンドの LDAP サーバに保存されている パスワードデータベースをサポートするための一部である。これらのオプションは --with-ldapオプションを指定して Samba を configure したときにのみ有効である。
このパラメータは SMB/CIFS の認証目的のために使う LDAP サーバの DNS 名を 指定する。
既定値:
ldap server = localhost
このパラメータは 実験的な、バックエンドの LDAP サーバに保存されている パスワードデータベースをサポートするための一部である。これらのオプションは --with-ldapオプションを指定して Samba を configure したときにのみ有効である。
このパラメータは、LDAP パスワードデータベース中のエントリを、
smbd が探し始める時の "dn"
すなわち LDAP "識別名"
を指定する。
既定値:
空白文字列
このパラメータ(Samba 2.0.5 で新規)は、Samba がレベル 2 (リードオンリ)の oplocks を共有に対してサポートするかを制御する。Samba 2.0.5 では、 このパラメータはコードが新しいために 既定値は "偽" に設定されていた。 しかし、今後のリリースでは "真" に設定される。
レベル 2 または リードオンリ の oplocks は、 2 つめのクライアントがファイルをオープンする時に、 (2 回目のオープンに対するすべての oplock を解放するかわりに、 通常使われているような、排他的 oplock ということ) リードオンリの oplock のための、読み/書きの oplock からダウングレードする、 ファイルに対する oplock を持つことを Windows NT クライアントに許可する。 これは、レベル 2 oplocks をサポートする、そのファイルに対して オープンしているすべてに対して、ファイルの先読みのみ (すなわち、書き込みキャッシュとロックをしない)と、より向上した、 一般的にはに書かない(たとえば .EXE ファイル)ファイルへの 同時アクセスパフォーマンスを認める。
リードオンリの oplock を、あるクライアントが一度持つと、すべてのクライアント からのファイルへの書き込みは通知され(リプライまたは待ち合わせが不要)、 その oplocks が "無効" になったことが告げられ、すべての先読みキャッシュが 遅延させられる。
このパラメータは共有実行形式のアクセスのスピード向上にチューニング することを推奨する(および、そのためにコードをテストしてある :-))。
レベル 2 oplocks についての詳細は、CIFS の仕様を参照のこと。
現在、もしも、"kernel oplocks" がサポート
されていると、レベル 2 の oplocks は(たとえ、このパラメータが "真"
にセットされていたとしても)認められない。さらに、"oplocks"
パラメータが、このパラメータに対して働くように、
この共有に対して "真"に設定されていることが必要であることに注意。
"oplocks" と "kernel oplocks" パラメータも参照のこと。
既定値:
level2 oplocks = False
例:
level2 oplocks = True
このパラメータは、nmbd が
Lanman アナウンス・ブロードキャストを出すかどうかを決定する。
このブロードキャストは OS/2 クライアントが
ブラウズ・リストに Samba サーバを見えるようにするために必要となる。
このパラメータの値には "true"
、"false"
、"auto"
の 3 つを指定できる。
既定値は "auto"
である。設定を "false"
にすると、Samba は
それらブロードキャストを出さない。
設定を "true"
にすると、Samba は Lanman アナウンスのブロードキャストを
"lm interval"パラメータによる頻度で発する。
設定を "auto"
にすると、はじめはブロードキャストを発しないが、
他からのブロードキャストを受け取るようになる。
一度ブロードキャストを受け取ると、Samba は "lm interval"
パラメータによる頻度でブロードキャストを発し始める。
"lm interval" も参照のこと。
既定値:
lm announce = auto
例:
lm announce = true
Samba を OS/2 クライアントで必要とされる Lanman アナウンスの ブロードキャスト("lm announce"パラメータを参照)を 発するように設定した場合、ブロードキャストが発せられる頻度をこのパラメータ で、秒数単位で定義する。 このパラメータを 0 に設定すると、"lm announce" パラメータの設定にかかわらず Lanman アナウンスを発しなくなる。
"lm announce" も参照のこと。
既定値:
lm interval = 60
例:
lm interval = 120
printcap の全てのプリンタが既定でブラウズされるように ロードされるかどうかを制御する真偽値である。 詳細は、"printers" を参照のこと。
既定値:
load printers = yes
例:
load printers = no
このオプションは nmbd をサブネットのローカル・マスタ ・ブラウザにすることができる。偽 に設定すると、nmbd は ローカル・マスタ・ブラウザになろうとせず、すべてのブラウジングの 選定に選ばれなくなる。 既定では 真 に設定されている。この値を 真 にした設定は Samba がローカル・マスタ・ブラウザになることを意味しているのではなく、 nmbd がローカル・マスタ・ブラウザの選定に 参加することを意味する。
この値を 偽 にすると、nmbd をローカルマスタブラウザに しない。
既定値:
local master = yes
"lock directory" の同義語である。
このオプションは、ロック・ファイルが置かれるディレクトリを指定する。 ロック・ファイルは "max connections" オプションの実装で使用される。
既定値:
lock directory = /tmp/samba
例:
lock directory = /usr/local/samba/var/locks
(訳注:2.0.3 では、既定値は /usr/local/samba/var/locks です。)
クライアントからのロック要求への応答において、 サーバによってロックが実行されるかどうかを制御する。
"locking = no"
であれば、全てのロックとロック解除要求は成功したように見え、
全てのロック状態問い合わせはロックが解除されていると示す。
"locking = yes"
であれば、本当のロックがサーバによって実行される。
このオプションは、ロックが必要ない読み取り専用ファイルシステム
(CD-ROM ドライブなど)において有用な場合があるが、こうした場合において
も、このパラメータを "no"
にすることは薦められるものではない。
ロックの欠如によりデータ破壊が引き起こされるかもしれないため、グローバ ルセクションにおいても、個々のサービスセクション中においても、ロックを 無効 にする事は注意して行なって欲しい。このパラメータを設定する必要 はまずないだろう。
既定値:
locking = yes
例:
locking = no
このオプションは Samba のログ・ファイル (デバッグ・ファイルとしても知られる)の名前を上書きする。
このオプションは標準の置換操作に従い、 ユーザやマシンごとに区別されたログ・ファイルを持つことができる。
例:
log file = /usr/local/samba/var/log.%m
"debug level" の同義語である。
このパラメータはホーム・ディレクトリが接続されるローカル・パスを 指定する ("logon home" を参照)。 この指定は NT ワークステーションのみが利用する。
このオプションはもしも Samba が logon server に 設定されているときにのみ便利であることに注意。
例:
logon drive = h:
このパラメータは、Windows 95 や NT ワークステーションが Samba PDC に
ログオンするときのホーム・ディレクトリの場所を指定する。
たとえば、コマンド・プロンプトから "NET USE H: /HOME"
とすることが
可能になる。
このオプションは標準の置換操作に従い、ユーザやマシンごとに区別された ログオン・スクリプトを持つことを可能にする。(訳注: ログオン・スクリプ トは、おそらくホームディレクトリの誤りであろう)
このパラメータを Windows 9X ワークステーションで使用した場合、 移動プロファイルを、ユーザのホームディレクトリ中のサブディレクトリに 格納される事が可能となる。これはたとえば以下の方法で行なう。
" logon home = \\%L\%U\profile"
これによって、Sambaは、クライアントが NetUserGetInfo 関数等を使ってホーム
ディレクトリの情報を要求した場合に、上記の文字列を返すようになる。
Windows 9Xクライアントはユーザが "net use /home"
コマンドを発行すると
指定された文字列を \\server\share に切り捨てる。しかし、プロファイルを
扱う時には上記で指定された完全なフルパス文字列で扱う。
以前ののSambaのバージョンでは、"logon path"
パラメータが "logon home"
パラメータの代わりに用いられていた。これにより、"net use /home"
が
うまくいかなくなる代わりに、ホームディレクトリ外にプロファイルを作成する事が
できた。
現在の実装は改善され、上記のトリックを使えば、このパラメータを
プロファイルの位置の指定に使うことができる。
このオプションはもしも Samba が logon server に 設定されているときにのみ便利であることに注意。
例:
logon home = "\\remote_smb_server\%U"
既定値:
logon home = "\\%N\%U"
このパラメータは移動プロファイル(Windows NT における NTuser.dat など)
が保存されるホーム・ディレクトリを指定する。以前のバージョンのマニュアルページ
とは矛盾するが、Windows9X移動プロファイルとは無関係である。
Windows9Xシステムでの移動プロファイルを設定する方法については、"logon home"
パラメータを参照のこと。
このオプションは標準の置換操作に従い、ユーザやマシンごとに区別された
ログオン・スクリプトを持つことを可能にする。(訳注: ログオン・スクリプ
トは、おそらくホームディレクトリの誤りであろう)
これはまた、Windows NT クライアントにロードされて表示される
"application data"
、
"デスクトップ"
、"スタートメニュー"
、"ネットワークコンピュータ"
、
"プログラム"
フォルダとその中身のためのディレクトリも指定する。
設定とディレクトリが Windows NT クライアント上にロードされるため、 共有とパスはユーザから読み込み可能にしなければならない。 Windows NT クライアントが NTuser.dat とほかのディレクトリを 作成できるように、初回のログイン時には共有を書き込み可能 にしなければならない。
その後、必要があれば、ディレクトリと中身は読み出し専用にすることができる。 NTuser.dat ファイルを読み出し専用にするのは得策ではない。 お望みの効果を達成するには、NTuser.dat を NTuser.man (固定プロファイル(MANdatory profile))に名前を変更しよう。
Windows クライアントはときおり、ログインしているユーザが
いなくても [homes] 共有への接続を保持することができる。
それゆえ、logon path に [homes] 共有への参照を含めないことが重要である。
(たとえば、\\\\%N\\HOMES\profile_path
は問題を引き起こす。)
このオプションは標準の置換操作に従い、ユーザやマシンごとに区別された ログオン・スクリプトを持つことを可能にする。(訳注: ログオン・スクリプ トは、おそらくホームディレクトリの誤りであろう)
このオプションはもしも Samba が logon server に 設定されているときにのみ便利であることに注意。
既定値:
logon path = \\%N\%U\profile
例:
logon path = \\PROFILESERVER\HOME_DIR\%U\PROFILE
このパラメータは、ユーザのログイン成功時にダウンロードして実行される バッチ・ファイル (.bat) か Windows NT のコマンド・ファイル (.cmd) を指定する。 ファイルは DOS 形式の行末(改行コード) CR/LF でなければならない。 ファイルの作成には DOS 形式のエディタを使うことを勧める。
スクリプトは [netlogon]
サービスからの相対パスにする。
[netlogon]
サービスの path が /usr/local/samba/netlogon
と指定されていて、logon script = STARTUP.BAT とすると、
ダウンロードされるファイルは:
/usr/local/samba/netlogon/STARTUP.BAT
である。
バッチ・ファイルの中身はすべてあなたの思いのままである。
お勧めのコマンドは NET TIME \\\\SERVER /SET /YES
で、
すべてのマシンを同じタイム・サーバの時計と同期を取るようにさせる。
ほかの用途としては、共通に利用されるユーティリティ用に
NET USE U: \\\\SERVER\\UTILS
や NET USE Q: \\\\SERVER\\ISO9001_QA
を
追加することなどが挙げられるだろう。
[netlogin]
共有に書き込みアクセスを許さないようにすること、
または、バッチ・ファイルを任意に変更できるようにする場合は
安全な環境でバッチ・ファイルへの書き込み許可をユーザに与えることが、
特に重要であるので注意して欲しい。
このオプションは標準の置換に従い、ユーザやマシンごとに別々の ログオン・スクリプトを持つことができる。
このオプションはもしも Samba が logon server に 設定されているときにのみ便利であることに注意。
例:
logon script = scripts\%U.bat
このパラメータは、特定のプリント・ジョブの印刷やスプーリングを停止するために サーバ・ホスト上で実行されるコマンドを指定する。
このコマンドは、プリント・ジョブを停止するためのプリンタ名とジョブ番号を 受け取る、プログラムまたはスクリプトでなければならない。 これを実装する 1 つの方法は、ジョブの優先権を利用するもので、 非常に低い優先権を持つジョブはプリンタに送られない。
もし、"%p"
が与えられると、その場所にプリンタ名が置かれる。
"%j"
はジョブ番号(整数)に置き換えられる。
HP-UX(printing=hpux を参照) において lpq command に
"-p%p"
オプションが追加されていると、ジョブは正しい状態を示す。
たとえば、ジョブの優先権が設定されたフェンス優先権より
低いならジョブは停止状態であるが、
優先権が等しいかより高いならスプール状態または印刷中の状態となる。
サーバの PATH 環境変数 が利用できないかもしれないことを考慮して、 lppause command に絶対パスを含めることはよい習慣である。
"printing" パラメータも参照のこと。
既定値:
現時点で、この文字列に与えられる既定値はない。ただし、
"printing"パラメータが SYSV
であった場合、既定値は
lp -i %p-%j -H hold
となり、"printing"パラメータが softq
の場合には、
既定値は
qstat -s -j%j -h
となる。 HPUX の例: lppause command = /usr/bin/lpalt %p-%j -p0
lpq コマンドが非常に頻繁に呼び出されるのを防ぐため、lpr の情報(出力) がキャッシュされる期間を制御する。 システムで使用される lpq コマンドのバリエーションごとに 個々のキャッシュが保持され、 ユーザ別に違う lpq コマンドを使用する場合はキャッシュ情報を共有しない。
キャッシュ・ファイルは /tmp/lpq.xxxx
に保存され、
xxxx は使用している lpq
コマンドのハッシュ値となる。
既定値は 10 秒で、キャッシュされたデータが 10 秒以内のものである場合、
前回と全く同じ lpq
コマンドの結果が使用される。
lpq
コマンドが非常に遅いなら、大きな値にすることをお勧めする。
値を 0 にすると、キャッシュは完全に無効になる。
"printing" パラメータも参照のこと。
既定値:
lpq cache time = 10
例:
lpq cache time = 30
このパラメータは、"lpq"
形式のプリンタの状態情報を得るために、
サーバ・ホストで実行されるコマンドを指定する。
このコマンドは、唯一のパラメータとしてプリンタ名を受け取り、 プリンタの状態情報を出力する、プログラムかスクリプトでなければはならない。
現在は 8 種類、BSD、AIX、LPRNG、PLP、SYSV、HPUX、QNX、SOFTQ のプリンタ状態情報の 形式がサポートされている。 これは大部分の UNIX システムを包括する。 "printing ="オプションを使用して種類を指定する。
いくつかのクライアント(特に Windows for Workgroups) は、 状態情報を要求しているプリンタの接続番号を正確に送らない。 これを回避するために、サーバはクライアントに接続されている 最初のプリンタ・サービスを報告する。 これは送られた接続番号が無効な場合にのみ起こる。
%p
が与えらると、その場所にはプリンタ名が置かれる。
そうでなければ、プリンタ名はコマンドの最後に置かれる。
サーバの PATH 環境変数 が利用できないかもしれないことを考慮して、 lpq command に絶対パスを含めることはよい習慣である。
"printing" パラメータも参照のこと。
既定値:
printing = の設定に依存
例:
lpq command = /usr/bin/lpq %p
このパラメータは、特定のプリント・ジョブの印刷やスプールを再始動したり 続行するためにサーバ・ホスト上で実行されるコマンドを指定する。
このコマンドは、プリント・ジョブを再開するためのプリンタ名とジョブ番号を 受け取るプログラムまたはスクリプトでなければならない。 "lppause command" パラメータも参照のこと。
%p
が与えられると、その場所にはプリンタ名が置かれる。
%j
はジョブ番号(整数)に置き換えられる。
サーバの PATH 環境変数 が利用できないかもしれないことを考慮して、 lpresume command に絶対パスを含めることはよい習慣である。
"printing" パラメータも参照のこと。
既定値:
現時点でこの文字列に与えられる既定値はない。ただし、
"printing"パラメータが SYSV
であった場合、既定値は
lp -i %p-%j -H resume
となり、"printing"パラメータが softq
の場合には、
既定値は
qstat -s -j%j -r
となる。
HPUX での例:
lpresume command = /usr/bin/lpalt %p-%j -p2
このパラメータは、プリント・ジョブを削除するために サーバ・ホスト上で実行されるコマンドを指定する。
このコマンドは、プリンタ名とジョブ番号を受け取り、 プリント・ジョブを削除するプログラムかスクリプトでなければならない。
%p
が与えられると、その場所にはプリンタ名が置かれる。
%j
はジョブ番号(整数)に置き換えられる。
サーバの PATH 環境変数 が利用できないかもしれないことを考慮して、 lprm command に絶対パスを含めることはよい習慣である。
"printing" パラメータも参照のこと。
既定値:
"printing =" の設定に依存
例 1:
lprm command = /usr/bin/lprm -P%p %j
例 2:
lprm command = /usr/bin/cancel %p-%j
もしも Samba サーバが Windows NT ドメイン
("security=domain") パラメータ参照のこと)の
メンバであった場合、定期的に、
動いている smbd プロセスは、MACHINE ACCOUNT PASWORD を
変更することを試みる。これは、<Domain>.<Machine>.mac
と呼ばれるファイルに
記憶されている。ここで、<Domain>
はメンバとなっているドメイン名であり、
<Machine>
は smbd が動いているマシンのプライマリの
"NetBIOS name" である。このパラメータは、
どのくらいの頻度で、このパスワードを変更するかを、秒単位で指定する。
既定値は(秒単位で指定されている)一週間であり、これは Windows NT ドメイン
メンバサーバと同じである。
smbpasswd (8) と "security=domain") パラメータも参照のこと。
既定値:
machine password timeout = 604800
このパラメータは、magic script(下記の "magic script" パラメータを参照)によって 生成される出力を記録するファイルの名前を指定する。
警告: もしも、2 つのクライアントが同じディレクトリで 同じ "magic script" を使用する場合、 出力ファイルの中身は不確定となる。
既定値:
magic output = <magic script name>.out
例:
magic output = myfile.txt
このパラメータで指定されたファイル名でユーザがファイルを保存すると、 クローズした時点でサーバがそのファイルを実行する。この機能は、UNIX のスクリプト を Samba ホストに送って、接続しているユーザの権限で実行する機能を提供 する。
ここで実行されたスクリプトは、許可のうえで実行終了と共に削除される。
スクリプトが出力を生成すると、 出力は "magic output" パラメータ(上記参照)に指定したファイルに送られる。
いくつかのシェルは、行端コードとして、ラインフィードの代わりに キャリッジリターン-ラインフィードを含んでいるスクリプトを解釈できない。 magic script は "そのまま"ホストで実行できる必要があり、 いくつかのホストといくつかのシェルでは DOS でのフィルタリングが必要であろう。
magic script は実験用であり、あてにすべきではない。
既定値:
なし Magic scripts は無効
例:
magic script = user.csh
"名前の変換(NAME MANGLING)" 節を参照のこと。
このオプションは Samba 2.0.4 とそれ移行で導入されたが、Sambaが動的に 32ビットシステム上で 構成するようになったので、Samba 2.0.6 では削除 された。
このオプションは、Windows/DOS では表示できない UNIX ファイル名のマッピ
ングを直接指定するためのものである。
名前の変換は常に必要とされるわけではない。
実際、DOS と UNIX 間で異なるファイル拡張子をもつ文書があってもよい。
たとえば、UNIX においては通常は HTML ファイルは ".html"
が使用されるが、
一方 DOS ではより一般的に ".htm"
が使用される。
それゆえ、"html"
から "htm"
へ変換するには、次のように記述する:
mangled map = (*.html *.htm)
あるとても便利な事例としては、いくつかの CD-ROM のファイル名末尾のイライラする
";1"
(いくつかの UNIX でのみ見える)を取り除くことである。
これを行うには (*;1 *) の変換を使用する。
既定値:
mangled map はない。
例:
mangled map = (*;1 *)
UNIX 上の 非DOS の名前を DOS 互換の名前で表す(変換する)ことで表示可能にするか、 非 DOS の名前は単純に無視するかどうかを制御する。
変換処理の制御方法の詳細は、"名前の変換(NAME MANGLING)" 節を参照のこと。
変換が使用されると、変換アルゴリズムは以下のようになる。
"~"
が変換された名前の最初の部分に追加され、
本来のベース名(すなわち、本来のファイル名から、その拡張子を引いたもの)を
ベースとした 2 文字の一意シーケンスが続く。
最後の拡張子が大文字を含んでいるか 3 文字より長い場合のみ、
その拡張子はハッシュの計算に含められる。
'~'
を好まないのならば、"mangling char"オプションを
利用して使用する文字を指定できる。
"___"
(3 つのアンダー・スコア)がその拡張子となる。
2桁のハッシュ値は、大文字の英数字から成る。
このアルゴリズムは、ディレクトリ内のファイルが同一の先頭 5 文字の 英数字を割り当てている場合にのみ、 名前の衝突が起こる。そのように衝突する確率は、1/1300 である。
名前の変換が有効であると、DOS から、長い UNIX ファイル名を 保持したまま UNIX ディレクトリ間のファイルのコピーができる。 UNIX のファイルは DOS から新しい拡張子に名前を変更することができ、 同じ基本名を保持することができる。変換した名前はセッション間で変化しない。
既定値:
mangled names = yes
例:
mangled names = no
名前の変換(name mangling) における
"マジック"キャラクタとして使用される文字を制御する。
既定値は '~'
であるが、ソフトウェアによっては衝突してしまうかもしれない。
このオプションを使用してお好みの設定をしよう。
既定値:
mangling char = ~
例:
mangling char = ^
このパラメータは、Samba サーバ smbd で キャッシュすべき、名前を変換された名前の数を制御する。
このスタックは、最後に圧縮されたベース名のリストである (拡張子は、拡張子が 3 文字より長いか大文字を含む場合のみ維持される)。
この値をより大きくすると、圧縮された名前を、 長い UNIX の名前に修正する変換が、よりうまくできるようになる。 しかし、スタックサイズが大きくなるので、ディレクトリのアクセスがより遅くなる。 より小さなスタックは、サーバのメモリを節約する (それぞれのスタック要素は 256 バイトである)。
正確な長いファイル名を完全に保証することは不可能であり、 時々驚かされるかもしれない。覚悟しておくこと。
既定値:
mangled stack = 50
例:
mangled stack = 100
DOS のアーカイブ属性を UNIX における所有者 (owner) の実行ビットに 割り当てるかどうかを制御する。 DOS のアーカイブ・ビットは、最後のバックアップ以後に ファイルが変更されるとセットされる。 このオプション作成の 1 つの理由は、Samba あるいはあなたの PC が 作成するファイルが UNIX 配下で実行可能となるのを防ぐことである。 これにより、共有しているソースコードや文書における悩みを解消できる。
このパラメータは、所有者 (owner) の実行ビットがマスクされないような "create mask" の設定を必要とする(つまり、設定値に 100 を含ませる)。 詳細はパラメータ "create mask" を参照のこと。
既定値:
map archive = yes
例:
map archive = no
DOS の隠しファイル属性を UNIX におけるその他のユーザ (other) の 実行ビットに割り当てるかどうかを制御する。
このパラメータは、その他のユーザ (other) の実行ビットがマスクされないような "create mask" の設定を必要とする(つまり、設定値に 001 を含ませる)。 詳細はパラメータ "create mask" を参照のこと。
既定値:
map hidden = no
例:
map hidden = yes
DOS のシステム形式ファイル属性を UNIX におけるグループ (gorup) の 実行ビットに割り当てるかどうかを制御する。
このパラメータは、グループ (owner) の実行ビットがマスクされないような "create mask" の設定を必要とする(つまり、設定値に 010 を含ませる)。 詳細はパラメータ "create mask" を参照のこと。
既定値:
map system = no
例:
map system = yes
このパラメータは、security モードが "security=share" 以外の時、 すなわち user、server、domain のときにのみ有用である。
このパラメータは 3 つの異なる値を持ち、それは、smbd に、 正しい UNIX ユーザと一致しない場合ユーザのログイン要求がなんらかの方法で 行なわれた際に、どのように対応するかを指定する。
3 つの設定は下記のとおり。
このパラメータは、security モードを share 以外、で使っているときに、"Guest" 共有サービスをセットアップする 時に必要であることに注意してほしい。 それらのモードにおいては、サーバが成功裡にクライアントの認証を するまでは、要求されたリソースの名前は、決してサーバに送られない。 なぜならば、サーバは "Guest" 共有への、認証可否の決定を、適切な時間 (共有への接続時)に行なうことができないからである。
昔の Samba のリリースになれている人のために、このパラメータは、 コンパイル時の設定では local.h 中の GUEST_SESSSETUP の値に、マップ されている。
既定値:
map to guest = Never
例:
map to guest = Bad User
このオプションは、サーバへの同時接続数を制限させる。 もし "max connections" が 0 より大きいならば、 この数のサーバの接続が既にオープンされている場合には接続は拒否される。 値が 0 の場合は、接続できる数は無制限であることを意味する。
レコードロックファイルが、この役割を実装するために使用される。 ロックファイルは、"lock directory" オプションによって指定されたディレクトリに保存される。
既定値:
max connections = 0
例:
max connections = 10
このオプションは、ディスクの見かけのサイズに上限を設定することができる。 このオプションを 100 に設定すると、 すべての共有は 100MB 以上のサイズに見えることはない。
このオプションは、ディスクに置くことができるデータの量を 制限しないことに注意して欲しい。 上記の場合、さらに 100MB 以上をディスクに格納することができるが、 クライアントがディスクの空き容量や総ディスクサイズを求めると、 結果は "max disk size" で指定された量に制限される。
主としてこのオプションは、非常に大きいディスク、 特に 1GB を越えるサイズをもつディスクを扱えないソフトウェアのバグを 回避して動作させるために有用である。
"max disk size" が 0 は 上限が無いことを意味する。
既定値:
max disk size = 0
例:
max disk size = 1000
このオプション(キロバイト単位の整数)は、
増加していくログ・ファイルの最大サイズを指定する。
Samba は定期的にサイズを調べて、
超過したならファイルの拡張子に ".old"
を追加して名前を変更する。
サイズ 0 は制限がないことを意味する。
既定値:
max log size = 5000
例:
max log size = 1000
このオプションは未解決の同時 SMB 操作の最大値を制御する。 Samba は許される最大数をクライアントに知らせる。 このパラメータを設定する必要はないだろう。
既定値:
max mux = 50
このパラメータは、smbdファイルサービスプロセスが 1 つのクライアントに対して同時に開くことのできるファイル数の上限値を制限する。 Samba は、オープンされていないファイルごとにわずか 1 ビットしか消費しないので、 このパラメータの既定値は、とても大きな値 (10000) にセットされる。
オープンするファイルの数の制限は、このパラメータよりは、通常 UNIX のプロセス毎の ファイル記述子によってセットされる。そのため、この値を変更してはいけない。
既定値:
max open files = 10000
"packet size" の同義語である。
nmbd がブロードキャストや WINS サーバを利用して NetBIOS 名を要求するとき、NetBIOS 名のあるべき既定の 保存時間(time to live)」(秒数)を nmbd に指示する。 このパラメータを変更する必要はないだろう。既定値は 3 日間である。
既定値:
max ttl = 259200
このオプションは、 nmbd が WINS サーバとして動作しているとき (wins support =true)、 NetBIOS 名に許される最大の「保存時間(time to live)」(秒数)を nmbd に指示する。 このパラメータを変更する必要はないだろう。 既定値は 6 日(518400 秒)である。
"min wins ttl" パラメータも参照のこと。
既定値:
max wins ttl = 518400
このオプションは、Samba がネゴシエーションに用いるパケット・サイズの 最大値を制御する。既定値は 65535 であり、これが最大である。 小さい方が性能の上がる場合もある。2048 以下ではおそらく問題が出るだろう。
既定値:
max xmit = 65535
例:
max xmit = 8192
このパラメータは、サーバが WinPopup 形式のメッセージを受信したとき、 どのようなコマンドを実行するかを指定する。
一般的には、何らかの形でメッセージを提供するコマンドである。 これをどのようにして実行させるかは、あなたの想像力次第である。
以下は 1 つの例である。
message command = csh -c 'xedit %s;rm %s' &
これは xedit を使用してメッセージを伝え、その後に削除する。
このコマンド実行後すぐに(コマンドプロンプトに)戻ることは、
とても重要であることに注意せよ。最後に '&'
を付けた理由はそれである。
もしこのコマンドを実行してもすぐに(コマンドプロンプトに)戻らないと、
あなたの PC はメッセージを送った時に停止するであろう
(うまくいけば、30 秒後に回復することになるだろう)
全てのメッセージはグローバルなゲストユーザから送られてきたものとして伝わる。 このコマンドは、標準の置換操作を使えるが、%u%u は機能しない(この場合 (%U がより適切だろう)。
標準の置換文字の他に、いくつか追加の置換文字が使用可能である。
"%s"
= メッセージを含むファイル名
"%t"
= メッセージを送った場所(おそらくサーバ名)
"%f"
= 誰からメッセージが送られてきたか
このコマンドは、メールを送るか、そうでなければ、好みによって何でもできる。 あなたが持っている本当におもしろいアイデアを、私に連絡して欲しい。
これはルートへのメールとしてメッセージを送る方法である:
message command = /bin/mail -s 'message from %f on %m' root < %s; rm %s
message command がないならばメッセージは伝えられず、 Samba は送信者にエラーがあったことを通知する。 あいにく WfWg はエラー・コードを完全に無視し、何も考えずに運び、 メッセージが伝わったと言う。
メッセージを表示しないで削除したいなら
"message command = rm %s"
を試すこと。
既定値:
message command はない
例:
message command = csh -c 'xedit %s;rm %s' &
この値は、ユーザのプリントジョブがスプール可能となる前に、 利用可能でなければならない空きディスクスペースの最小容量を設定する。 キロバイト単位で指定する。既定値は 0 で、制限がないことを意味する。
printing パラメータも参照のこと。
既定値:
min print space = 0
例:
min print space = 2000
"min password length"の同義語である。
このオプションは、smbd は UNIX のパスワードの変更を実行するときに認める、 平文パスワードの最小文字列長をセットする。
"unix password sync"、 "passwd program" 、"passwd chat debug" も参照のこと。
既定値:
min password length = 5
このオプションは、 nmbd が WINS サーバとして動作しているとき (wins support = true)、 NetBIOS 名に許される最小の「保存時間(time to live)」(秒数)を nmbd に指示する。 このパラメータを変更する必要はないだろう。 既定値は 6 時間(21600 秒)である。
既定値:
min wins ttl = 21600
このオプションは Samba の各プログラムで利用され、 どの名前サービスから、どのような順番でホスト名から IP アドレスを 解決するかを決定する。 オプションは異なる名前解決の選択をスペースで区切った文字列を受け取る。 選択できるのは「lmhosts」、「host」、「wins」、「bcast」である。 それらは以下のような名前解決を実行する:
既定値:
name resolve order = lmhosts host wins bcast
例:
name resolve order = lmhosts bcast host
これは最初にローカルの lmhosts ファイルを調査し、 次にブロードキャストを試行して、 最後にシステムの通常のホスト名検索を試行する。
これは名前のリストであり、nmbd はそれらを Samba サーバとして認識される追加の名前として広告する。 単一のマシンを複数の名前でブラウズ・リストに表示されるようにできる。 マシンが browse server や logon server として動作している場合、 これらの名前はブラウズ・サーバやログオン・サーバとしては登録されない。 マシンの本来の名前だけがそれらの name タイプで登録される。
"netbios name" も参照のこと。
既定値:
空白文字列 (追加の名前は無い)
例:
netbios aliases = TEST TEST1 TEST2
このパラメータは、Samba サーバとして認識される NetBIOS 名を指定する。 既定では、ホストの DNS 名の最初の部分と同じになる。 マシンが browse server や logon server である場合、 この名前(または ホストの DNS 名の最初の部分)がそれらのサービスの name タイプで登録される。
"netbios aliases" も参照のこと。
既定値:
マシンの DNS 名
例:
netbios name = MYNAME
これは、Sambaが使用するNetBIOSスコープを設定する。これはLAN上のすべての マシンがこの値を設定しないかぎり、設定すべきでない。
ホームの共有サーバを NIS マップから取得する。 automounter を使用する UNIX システムでは、 ユーザのホーム・ディレクトリは要求に応じてリモート・サーバから ワークステーションにマウントされることがよくある。
Samba ログオン・サーバが実際のホーム・ディレクトリ・サーバではなく NFS 経由でホームディレクトリをマウントしている場合、クライアントに自分自身 がホームディレクトリを提供する SMB サーバであるように見せると、ユーザの ホーム・ディレクトリにアクセスするためには、二段階のネットワーク・ア クセスが必要になる。(1 つは SMB で、もう 1 つは NFS で)これはとても遅くなる ことがある。
このオプションは、ログオン・サーバとは異なるサーバにあるホームの共有を Samba が返すことを可能にし、その共有は Samba デーモンが ホーム・ディレクトリ・サーバとして動作している間、 ディレクトリ・サーバから直接 Samba クライアントにマウントされる。 Samba がホームの共有をクライアントに返すとき、 "homedir map" で 指定された NIS マップに問い合わせてサーバを返す。
このオプションを動かすために、NIS システムは動いていなければならず、 このオプションを指定した Samba サーバは logon server でなければならないことに注意。
既定値:
nis homedir = false
例:
nis homedir = true
この真偽値パラメータは、smbd が UNIX のパーミッションを Windows NT のアクセスコントロールリストに マップするかどうかを制御する。
既定値:
nt acl support = yes
例:
nt acl support = no
この真偽値パラメータは、smbd が Windows NT
クライアントに対し、NT SMB 固有の IPC$
パイプを接続させるか
どうかを制御する。これは開発者のデバッグオプションであり、
外すことができる。
既定値:
nt pipe support = yes
この真偽値パラメータは、smbd が Windows NT
クライアントと通信するときに、NT 固有の SMB サポートをネゴシエート
するか否かを制御する。これは開発者デバッグオプションであるが、
ベンチマークを行なった所、このオプションを "no"
にすると、
Windows NT クライアントがより高速に動作するため、提供されている。
これはまだ研究途中である。もしも、オプションを "no"
にセットすると、
Samba は Samba 2.0 以前のバージョンが提供するものと完全に同じ SMB 呼び出し
を提供する。
この設定は、ユーザに対する NT SMB サポートに問題を生じたら、
使うことになるだろう。
既定値:
nt smb support = yes
パスワードがないアカウントのアクセスを許すか拒否するかを制御する。
smbpasswd (5) も参照のこと。
既定値:
null passwords = no
例:
null passwords = yes
このパラメータは、Samba は OLE アプリケーションとの互換性を提供するバ
イト範囲ロック機構を停止する機能を提供する。
Windows OLE アプリケーションは、プロセス間通信の手順においてバイト範囲
ロックを利用しており、ファイル内の 2^32 バイトにまでおよぶ範囲のロックを行う。
この範囲のロックは、ある UNIX ではロック機構がクラッシュしたり、
なにかしら問題が発生することがある。
UNIX のロック機構が信頼できるなら、このパラメータを "no"
に設定することで、
そのような場面のロックを扱わせることができる。
既定値:
ole locking compatibility = yes
例:
ole locking compatibility = no
"guest only" の同義語である。
これは真偽値のオプションであり、 user=リストにないユーザ名の接続を許可するかどうかを制御する。 既定値では、このオプションは無効になっていて、 サーバによって用いられるユーザ名をクライアントから与えることができる。
これはまた、Samba がサービス名から ユーザ名を推測しようとはしないことを意味する。 これは [homes] セクションを悩ますことになる。 これを回避するために、"user" リストをサービス名と一致させることを意味する 「user = %S」を使用でき、 ホーム・ディレクトリがユーザ名となる。
user パラメータも参照のこと。
既定値:
only user = False
例:
only user = True
この真偽値オプションは、共有へのファイル・オープン要求に対して oplock (opportunistic lock = 便宜的ロック) を発行するかどうかを smbd に指示する。 oplock の実装は、Samba サーバ上のファイル・アクセス速度を劇的に改善 (およそ 30% 以上)することができる。 oplock によりクライアントは積極的にファイルをローカルにキャッシュする ようになるが、信頼性のないネットワーク環境のために 無効にしたいと思うこともあるだろう (Windows NT サーバでの既定値は有効である)。 これ以上の情報については Samba の docs/ ディレクトリにある Speed.txt を 参照のこと。
oplock は共有ごとに特定ファイルを選択して無効にすることができる。 「veto oplock files」パラメータを参照のこと。ある種のシステムでは、 oplocks が低レベルの OS 自身によって認識されるシステムもある。このシステ ムでは oplock されたファイル へ の すべて の アクセスと、それ以外での Samba経由、NFS経由、あるいはローカルの UNIX プロセス経由のアクセスとの 間で、データの同期を実現する機能を提供する。 詳細は、kernel oplocks パラメータを参照のこと。
"kernel oplocks" と "level2 oplocks" パラメータも参照のこと。
既定値:
oplocks = True
例:
oplocks = False
これは、調整パラメータで、Windows 9X と Windows NT の両方のバグのために追加された。 クライアントが oplock ブレーク要求を引き起こすような SMB を発行するとき、 Samba があまりに速くクライアントに応答すると、クライアントのリダイレクタは 失敗し、ブレーク要求に応答しない。この調整パラメータ(ミリ秒単位で指定)は、 上記のような(壊れた)クライアントに、oplock 中断要求を送る前に Samba が取る待ち時間である。
Samba の oplock コードを読んで理解しない限りこのパラメータを変えては いけない。
DO NOT CHANGE THIS PARAMETER UNLESS YOU HAVE READ AND UNDERSTOOD THE SAMBA OPLOCK CODE.
既定値:
oplock break wait time = 10
これはとても上級の smbd 調整オプションで、 同じファイルに複数のクライアントが頻繁にアクセスする状況において、 oplocks 許可の効率を改善するためのものである。
このパラメータには数値を指定する。同じファイルへの oplock 許可を奪い合う クライアントの数が、このパラメータで指定した限界値に近づくと、smbd は、 oplock の要求を許可しなくなる。
Samba の oplock コードを読んで理解しない限りこのパラメータを変えては いけない。
DO NOT CHANGE THIS PARAMETER UNLESS YOU HAVE READ AND UNDERSTOOD THE SAMBA OPLOCK CODE.
既定値:
oplock contention limit = 2
この整数値は、Samba がブラウザ選定のために、どのようなレベルの通知を行なう かを制御する。このパラメータの値は、nmbd がローカルに ブロードキャストを行なう範囲内で、WORKGROUP の ローカルマスタブラウザになるチャンスを決定する。もしもこの値が 0 ならば、 これは、nmbd はすべての Windows マシンとの選定 ブラウザ選定)に負けることを意味する。 詳細は Samba/docs ディレクトリ 内にある BROWSING.txt を参照のこと。
既定値:
os level = 20
例:
os level = 65 ; この値は、任意の NT サーバに勝てる
これは現在の Samba コードではなんの影響もない無意味なパラメータである。 古い smb.conf ファイルが無効にならないように残っているだけである。
これは Samba 開発者オプションであり、smbd または nmbd がクラッシュした際に呼び出されるシステムコマンドを 定義する。これは通常問題が発生した事実を警告するのに 使われる。
既定値:
panic action = <空白文字列>
この文字列は、smbd と、ユーザのパスワードを 変更するためのローカルなプログラムとの間で起こる"対話"を 制御する。この文字列は、smbd が、 passwd プログラム何を送信し、またどういった 出力を想定しているかを規定する、送受信のシーケンスを記述する。 もしも期待する出力が戻らないと、パスワードは変更されない。
このチャットシーケンスは、しばしばサイト固有で、パスワード制御 のためにどのようなローカルな方法(たとえば NIS など)を使うかに依存する。
この文字列は、旧/真パスワードに正しく変換される、"%o"
と "%n"
マクロをふくんでもよい。また、改行、復帰、タブ、空白を意味する、
"\n"
、"\r"
、"\t"
と "\s"
を含んでもよい。
文字列は、任意の文字に一致する '*'
を含んでもよい。
ダブルクォートは、空白を含んだ複数の文字列を 1 つの文字列と見なすのに 使うことができる。
もしも、チャットシーケンス中の任意の場所で送られる文字列がピリオド
"."
ならば、なんの文字列も送られない。同様に、戻りを期待している
文字列がピリオドならばなんの文字列も戻ることを期待されない。
もしも、"unix password sync" パラメータが
真にセットされていると、smbpasswd 中の SMB パスワードが変更されたときに、
このシーケンスが root として呼び出される。その時、古いパスワードを
表す文字列は使われない。このため、古いパスワードは ""
に(空文字列)
セットされる。
"unix password sync"、 "passwd program"、と "passwd chat debug" も参照のこと。
例:
passwd chat = "*Enter OLD password*" %o\n "*Enter NEW password*" %n\n "*Reenter NEW password*" %n\n "*Password changed*"
既定値:
passwd chat = *old*password* %o\n *new*password* %n\n *new*password* %n\n *changed*
この真偽値は「passwd chat」パラメータによるパスワード対話スクリプトが
"デバッグ"
モードで動作するかどうかを指定する。
このモードでは、パスワード対話で手渡す文字列と受け取る文字列が
"debug level" を 100 にすることで
smbd のログに出力される。
これは危険なオプションであり、平文のパスワードが smbd
のログに見えてしまう。
このパラメータは Samba 管理者が、"passwd program"
を呼び出す "passwd chat" スクリプトを
デバッグするのに役立ち、それが終わったら無効にしなければならない。
既定では無効になっている。
"passwd chat"、 "passwd program" も 参照のこと。
例:
passwd chat debug = True
既定値:
passwd chat debug = False
ユーザ・パスワードを設定するために使用するプログラムの名前である。 %u が現れると常にユーザ名に置換される。 パスワード変更プログラムを呼び出す前に、ユーザ名が存在するかが検査される。
多くのパスワード変更プログラムは大文字/小文字併用、数字の混在、 最小長などの "穏当な"パスワードを強く要求することに注意して欲しい。 このことは、ある種のクライアント(Windows for Workgroups など)が パスワードを送信前に大文字化してしまうと問題を引き起こす。
"unix password sync"パラメータを "真"
に
設定すると、smbpasswd ファイルの SMB パスワードが
変更される前に、この対話が root ユーザで行われることに
注意して欲しい。
もしも、UNIX パスワードの変更が失敗すると、smbd
は(設計によって) SMB パスワードの変更も失敗する。
"unix password sync"パラメータを設定したときは、
このパラメータで呼び出されるすべてのプログラムを
絶対パスを使って指定しなければならない。
また、プログラムのセキュリティ上の検査を行う必要がある。
"unix password sync" は既定では
"偽"
になっている。
"unix password sync" も参照のこと。
既定値:
passwd program = /bin/passwd
例:
passwd program = /sbin/passwd %u
あるクライアントとサーバの組合せでは、 大小文字混在パスワードに関する障害が起こる。 障害のあるクライアントの例としては Windows for Workgroups があり、 LANMAN1 プロトコルを使用しているときに なんらかの理由によりパスワードを強制的に大文字にする! しかし COREPLUS を使用しているときは変換しない。
このパラメータはパスワード中で大文字であると思われる文字の最大数を定義する。
たとえば与えられたパスワードが "FRED"
であったとする。もし
password level が 1 にセットされていると、"FRED"
が
失敗したときに下記の組み合わせが試される。
"Fred"
、"fred"
、"fRed"
、"frEd"
、"freD"
もしも password level が 2 にセットされると、下記の組み合わせが 試される。
"FRed"
、"FrEd"
、"FreD"
、"fREd"
、"fReD"
、
"frED"
、..
以下同様である。
このパラメータを大きくすればするほど、大文字/小文字混在のパスワードが大 文字あるいは小文字のみのパスワードと一致するようになる。 しかし、このパラメータを使用すると、セキュリティが減少することと、 新規接続を処理するために必要な時間が増大することに注意すべきである。
値を 0 にすると、 パスワードそのままの場合と全て小文字にした場合の 2 回の比較のみを行なう。
既定値:
password level = 0
例:
password level = 4
このオプションを使って、別の SMB サーバ(Windows NT マシンなど)の 名前を指定し、かつ "security = domain" または "security = server" を使用すると、 Samba はリモートのサーバを経由したユーザ名/パスワード認証を行う事ができる。
このオプションでは、使用するパスワード・サーバの名前を設定する。 それは NetBIOS 名でなければならず、マシンの NetBIOS 名が internet 名と 違っている時は、smb.conf ファイルと同じディレクトリにある lmhosts ファイルに NetBIOS 名 を追加する必要があるだろう。
上記のパスワード・サーバの名前は "name resolve order=" パラメータ を利用して調査され、パラメータに記述した方法・順番で解決しようとする。
パスワード・サーバは、「LM1.2X002」または「LM NT 0.12」プロトコルを 使える能力があるマシンであり、ユーザ・レベルのセキュリティ・モードに なっていなければならない。
参考:パスワード・サーバを利用すると、Samba が動いている UNIX マシンは、 パスワード・サーバにに依存することになる。 完全に信頼できるパスワード・サーバ以外を設定してはいけない。
Samba サーバ自身をパスワード保存用に利用してはならない。 ループを起こし、Samba サーバをロックさせてしまう!
パスワード・サーバの名前には、標準の置換操作が使えるが、 事実上唯一使えるのは %m だけである。 これは、Samba サーバに接続してきたクライアントをパスワード・サーバとして 取り扱うことを意味している。 これを用いる場合には、クライアントをより信頼できるようにし、 hosts allow によって限定する方が良い。
もしも、"security" パラメータを
"domain" にセットすると、このオプション中でマシンのリストは、
Domain または 文字 *
の、
プライマリまたはバックアップドメインコントローラのリストでなければならない。
なぜなら、Samba サーバはドメイン中で暗号通信を行なっていて、
ユーザのログオン認証を行なうために、暗号化して認証した
RPC コールを使うからである。
"security=domain" を使う利点は、
もしも、"password server" オプション中でいくつかのホストをリストすると、
smbd はどれか 1 つが応答するのを見つけるまで試みる。
これはプライマリサーバが障害したときに便利である。
もしも、"password server" オプションが文字 *
に設定されていると、
Sambaは認証を行うために、プライマリまたはバックアップドメインコントローラに
WORKRGOUP<1C>
という名前の問い合わせを行なうことによって、
自動的に位置付けることを試み、name resolution
ソースからの IPアドレス中から得られる各々のサーバに接続する。
"security" パラメータを "server" にセットすると、 "security=domain" の場合には わずらわないと思われる、異なった制限がある。
"security" パラメータも参照のこと。
既定値:
password server = 空白文字列
例:
password server = NT-PDC, NT-BDC1, NT-BDC2
例:
password server = *
このパラメータは、ユーザがアクセスできるディレクトリを特定する。 印刷サービスの場合は、印刷データが、印刷用ホストに送られるために スプールする所である。
印刷サービスはゲスト・アクセスでも使えるよう、 サービスは読みだし専用にすべきであり、パスは全ユーザ書き込み可とし、 sticky ビットをセットすべきである。 これはもちろん義務ではないが、それ以外の方法ではたぶん期待する 結果を得ることはできないだろう。
パスの中で、%u が現れたら、 いつでもクライアント接続時の UNIX の ユーザ名 と置換される。 また、%m は、いつでも接続される NetBIOS マシン名に 置換される。 これらの置換操作は、ユーザの仮想のホーム・ディレクトリを設定するのに 非常に便利である。
"root dir" が指定された場合には、 そこがベースとなることに注意して欲しい。
既定値:
none
例:
path = /home/fred
このオプションは、サービス切断時に起動されるコマンドを指定する。 通常の置換操作も使える。 コマンドはいくつかのシステムにおいては root 権限で動く。
興味深い例はサーバ資源のアンマウントだろう。たとえば、
postexec = /etc/umount /cdrom
である。preexec も参照のこと。
既定値:
なし(なにも実行されない)
例:
postexec = echo "%u disconnected from %S from %m (%I)" >> /tmp/log
このパラメータは、印刷するファイルをポストスクリプト形式として
解釈するようにプリンタに強制する。
これは、印刷の出力の先頭に %!
を付加することによって行なわれる。
印刷の開始時に Ctrl-D を出力して、プリンタの動作をおかしくしてしまうような PC がまだたくさんある時には、これはとても便利である。
既定値:
postscript = False
例:
postscript = True
このオプションは、サービス接続時に常時起動されるコマンドを指定する。 コマンド中には通常のSambaの変数も利用できる。
興味深い例としては、ログインするたびごとに、 歓迎(welcome)メッセージをユーザに送るものがある。 その日の一言 (message of the day) なんかがよいかもしれない。 例は下記のとおり。
preexec = csh -c 'echo \"Welcome to %S!\" | /usr/local/samba/bin/smbclient -M %m -I %I' &
しばらく立つとイライラのもとになるだけかも知れない :-)。
preexec close と postexec も参照のこと。
既定値:
なし(何も実行されない)
例:
preexec = echo \"%u connected to %S from %m (%I)\" >> /tmp/log
この真偽値オプションは、"preexec" で指定したコマンドから 0 以外の戻り値が返却された際に、接続中のコネクションをクローズするかどうかを制御する。
既定値:
preexec close = no
例:
preexec close = yes
この論理パラメータは、nmbd がそのワークグループの マスタ・ブラウザとしてより好まれるかどうかを制御する。 これが 真 に設定されると、nmbd は 起動時にブラウザの選定を強要し、選定を獲得する上でわずかな有利を得るだろう。 このパラメータは "domain master = yes" と連携させての使用が推奨されており、 nmbd はドメイン・マスタになることを保証される。
このオプションは慎重に扱うように。 なぜなら、同じサブネット上にマスタ・ブラウザになろうとするホスト(Samba サーバ、Windows 95/NT いずれでも)が何台か存在すると、 それらホストは互いに定期的・連続的にローカル・マスタ・ブラウザに なろうと試みる。 これは不要なブロードキャスト・トラフィックを生み、 ブラウジング能力の低下を引き起こすだろう。
os level も参照のこと。
既定値:
preferred master = no
例:
preferred master = yes
"preferred master" の同義語で、 綴り間違いのために用意されている。
クライアントから渡された大文字小文字の交じった新しいファイル名をそのま まにするか、強制的に「既定(default)の」文字の大きさにするかを制御する。
既定値:
preserve case = yes
詳細は "名前の変換(NAME MANGLING)" の章を参照のこと。
印刷ジョブ・サービスがスプールし終わった後、
スプールされたファイルを処理するために、
ここで指定するコマンドが system()
コール経由で用いられる。
通常、指定されたコマンドはスプール・ファイルをホストの
印刷サブシステムに渡すが、
そうしなければならないという必然性はない。
サーバはスプール・ファイルを削除しないので、指定したコマンドはすべて、
処理後にスプール・ファイルを削除しなければならない。
さもなければ、古いスプール・ファイルを手動で削除する必要がある。
print command は単なるテキスト文字列である。
それは 2 つの例外はあるが全く指定通りに使用される。
すべての "%s"
と "%f"
は適切なスプールファイル名に変換され、
すべての "%p"
は適切なプリンタ名に変換される。
スプール・ファイル名は、サーバにより自動的に生成される。
プリンタ名についてはこの以下で説明する。
print command は 最低限 "%s"
か "%f"
のどちらかを
含んでいなければならない。
"%p"
はあってもなくてもよい。
ジョブが提供された時にプリンタ名が設定されていないと、
"%p"
はプリンタ・コマンドから暗に取りさられる。
"[global]" セクションに指定すると、print command は、 固有の print command をもたない任意のプリント・サービスを利用する時にも 与えられる。
あるプリント・サービスに print command の定義がなく、グローバルな print command の定義もない場合、スプール・ファイルは作成されるが 処理されず、そして(これが最も重要だが)削除されない。
ある種の UNIX において、"nobody"
アカウントからの印刷が
失敗するかもしれないことに注意して欲しい。
もしこの状態が発生したら、印刷可能なゲスト・アカウントを別に作成し、
"guest account" を "[global]"
セクションに設定しよう。
シェルが解釈できる限りの非常に複雑な print command を記述することが可
能である。
たとえば、以下はプリント・ジョブを記録し、ファイルをプリントし、
最後にそれを削除する。
';'
はシェルスクリプトのコマンドの通常のセパレータになることに注意。
print command = echo Printing %s >> /tmp/print.log; lpr -P %p %s; rm %s
使っているシステムにおける通常のファイルの印刷方法によって、 このコマンドは適宜変更する必要があるだろう。 パラメータの既定値は、"printing="パラメータに依存して 変化する。
既定値:
"printing=" BSD, AIX, QNX, LPRNG または PLP 用:
print command = lpr -r -P%p %s
"printing=" SYS または HPUX 用:
print command = lp -c -d%p %s; rm %s
"printing=" SOFTQ 用:
print command = lp -d%p -s %s; rm %s
例:
print command = /usr/local/samba/bin/myprintscript %p %s
printable の同義語である。
このパラメータが "yes"
ならば、クライアントはサービスで指定された
ディレクトリにスプール・ファイルをオープンして書き込むことが可能になる。
印刷可能サービスは、必ず印刷データをスプール経由で (ユーザが権限をもっている)サービスパスに書き込む事を 許可していることに注意して欲しい。 "writeable" パラメータは、 資源に対しての印刷以外のアクセスだけを制御する。
既定値:
printable = no
例:
printable = yes
printcapname の同義語である。
このパラメータは、コンパイル時に設定された、サーバが使う printcap 名(通常 /etc/printcap) を上書きにするために使われる。 これを使うかどうか判断するには前述の [printers] セクションを参照のこと。
利用可能なプリンタを列挙するために lpstat コマンドが使える
System V システムでは、"printcap name = lpstat"
とすることで
利用可能なプリンタを自動的に取得することができる。
Samba のコンパイル時に SYSV が定義されているシステム
(ほとんどの System V ベースのシステムが含まれる)では、これが既定値である。
それらシステムで "printcap name" に lpstat が設定されると、
Samba は "lpstat -v"
を起動し、その出力を解析してプリンタ一覧を取得する。
最低限の printcap ファイルは下記のようなものである。
print1|My Printer 1 print2|My Printer 2 print3|My Printer 3 print4|My Printer 4 print5|My Printer 5
ここで、'|'
はプリンタの別名を分離する区切りである。
2 番目の別名中に空白があると、Samba はコメントであると判断する。
注意: AIX 下では、既定値の printcap 名は "/etc/qconfig"
である。
Samba は printcap 名中に文字列 "/qconfig"
が見つかると、
ファイルが AIX "qconfig"
形式であると仮定する。
既定値:
printcap name = /etc/printcap
例:
printcap name = /etc/myprintcap
このパラメータは、印刷可能サービス経由でスプールされた 印刷ジョブが送られるプリンタ名を指定する。
[global] セクションで指定されると、 プリンタ名が指定されない印刷可能サービスで、 そのプリンタ名が用いられる。
既定値:
なし (ただし "lp"
が多くのシステムで使われている)
例: printer name = laserwriter
このオプションは、クライアントがプリンタに対応するプリンタ・ドライバを サーバに問い合わせたときに受け取る文字列を制御する。 Windows 95 や Windows NT を使用している場合、これを利用することで クライアントに自動でプリンタをセットアップすることができる。
このパラメータにはシステムの適切なプリンタ・ドライバを表す 正確な文字列(大文字/小文字も区別される)を設定する必要がある。 指定すべき正確な文字列がわからなければ、 最初は "printer driver" オプション指定なしで試し、 クライアントにプリンタ・ドライバ一覧を表示させよう。 プリンタの製造元を選択すると、 適切な文字列がスクロール・ボックスに表示されるだろう。
"printer driver file" も参照のこと。
例: printer driver = HP LaserJet 4L
このパラメータはプリンタ・ドライバの定義ファイルの場所を Samba に指示し、 このファイルは Windows 95 クライアントにドライバを渡すときに ドライバを探すために利用される。 これが設定されていない場合の既定値は:
SAMBA_INSTALL_DIRECTORY/lib/printers.def
である。
このファイルは Windows 95 クライアントに含まれている
"msprint.def"
より作成する。
プリンタ・ドライバを Windows 95 クライアントに渡す設定についての詳細は、
docs/ ディレクトリ中のドキュメント PRINTER_DRIVER.txt を参照のこと。
既定値:
なし (コンパイル中に設定される).
例:
printer driver file = /usr/local/samba/printers/drivers.def
"printer driver location" も参照のこと。
このパラメータは、あるプリンタ共有に接続したクライアントに対し、 Windows 95 マシンのドライバ自動インストールが使用する プリンタ・ドライバ・ファイルを探す場所を指示する。 Samba が Windows 95 マシンにプリンタ・ドライバを渡すように設定されているなら、 次のような値を指定する:
\\MACHINE\PRINTER$
ここで、MACHINE は Samba サーバの NetBIOS 名、 PRINTER$ はセットアップするプリンタ・ドライバ・ファイルがある共有である。 設定についての詳細は、docs/ ディレクトリ中のドキュメント PRINTER_DRIVER.txt を参照のこと。
既定値:
なし
例:
printer driver location = \\MACHINE\PRINTER$
"printer driver file" も参照のこと。
printer の同義語である。
このパラメータは、プリンタの状態情報がどのように 解釈されるかを制御する。更に [global]セクションで 指定されているならば、 "print command"、 "lpq command"、 "lppause command"、 "lpresume command" および "lprm command" の既定値にも影響する。
現在、8 つの印刷形式がサポートされている。それらは "printing=BSD"、"printing=AIX"、"printing=LPRNG"、 "printing=PLP"、 "printing=SYSV"、"printing="HPUX"、 "printing=QNX" と "printing=SOFTQ" である。
いろいろなオプションを使った時、他の印刷コマンドの既定値がどのように なるかを見るためには、"testparm" プログラムを 使ってみること。
このオプションはプリンタ単位に設定できる。
[printers] セクションの説明も参考にすること。
パラメータ(文字列)の値は、サーバがサポートする最も高いレベルの プロトコルである。
指定可能な値は下記の通り。
通常、このオプションはセットすべきではない。というのも、SMB プロトコルは 自動交渉(negotiation)段階で注意深く適切なプロトコルを選択するからである。
既定値:
protocol = NT1
例:
protocol = LANMAN1
"guest ok" の同義語である。
このパラメータは、サーバ・ホストで、 プリンタ・キューを一時停止するために実行するコマンドを指定する。
コマンドに指定するプログラムまたはスクリプトは、プリンタ名だけを パラメータとして受け取り、印刷ジョブがプリンタに転送されないように プリンタ・キューを停止する機能を持つものとする。
このコマンドは、Windows for Workgroups ではサポートされていない。 Windows 95 と NT では、プリンタのウィンドウからコマンドを発行することができる。
もしコマンド中に "%p"
が指定された場合は、コマンド実行時にプリンタ名に
置き換えられる。それ以外の場合は、コマンドの最後に置かれる。
サーバの PATH 環境変数 が利用できないかもしれないことを考慮して、 コマンドに絶対パスを含めることはよい習慣である。
既定値:
"printing =" の設定に依存
例:
queuepause command = disable %p
このパラメータは、サーバ・ホストで、 プリンタ・キューを再開するために実行するコマンドを指定する。 上記のパラメータ ("queuepause command) によって停止された状態を元に戻すためのコマンドである。
このコマンドは、プログラムまたはスクリプトでなければならず、それらは プリンタ名だけをパラメータとして受け取り、 キューにある印刷ジョブが再びプリンタに転送されるように プリンタ・キューを再開する機能を持つものとする。
このコマンドは、Windows for Workgroups ではサポートされていない。 Windows 95 と NT では、プリンタのウィンドウからコマンドを発行することができる。
もしコマンド中に "%p"
が指定された場合は、コマンド実行時にプリンタ名に
置き換えられる。それ以外の場合は、コマンドの最後に置かれる。
サーバの PATH 環境変数 が利用できないかもしれないことを考慮して、 コマンドに絶対パスを含めることはよい習慣である。
既定値:
"printing =" の値に依存
例:
queuepause command = enable %p
この真偽値パラメータは、smbd が "Read Block Multiplex" SMB をサポートするかどうかを制御する。 これは、めったに使われず、既定値は off である。このパラメータを セットしてはいけない。
既定値: read bmpx = No
読取り専用アクセスサービスが与えられるユーザのリストである。 接続したユーザがこのリスト中にあるならば、 たとえ "writeable" オプションが何にセットされても、 書き込みアクセスを与えられない。 リストは "invalid users" パラメータの所で説明した、 グループを表わす文法を含んでもよい。
"write list" パラメータと "invalid users" パラメータも参照のこと。
既定値:
read list = 空白文字列
例:
read list = mary, @students
これは、"writeable"の反意語である。
注意: このコードは Samba 2.0 では現在無効で、おそらく 将来削除される。そのため、このパラメータは意味がない。
このオプションは、サーバからの読み出しを高速化するための 先読みコードを有効あるいは無効にする。 有効にすると、サーバは、パケットを待っている時間に、読み込み専用として オープンされたファイルのうち、最後にアクセスしたものからデータを 先読みしようとする。
既定値:
read prediction = False
このパラメータは、データをクライアントに転送する時に raw 読み出しを サーバがサポートするか否かを制御する。
もし有効にするならば、raw 読み出しは、1 パケットで 65535 バイトを 読むことを可能にする。これは大抵、性能の向上に大きく貢献する。
しかし、ある種のクライアントでは有効ブロック・サイズを取り違えたり、 大きなブロック・サイズを取り扱えないので、その種のクライアントでは raw 読み出しを無効にする必要があるだろう。
一般的に、このパラメータはシステム調整ツールと見て、 完全に触れないでおくべきである。"write raw" も 参照のこと。
既定値:
read raw = yes
この "read size"オプションは、ネットワークの入出力中と同時に、 ディスク入出力が行なわれるか、について影響する。 SMB のある種のコマンド(現在は SMBwrite、SMBwriteX、および SMBreadbraw)に よって転送される大量のデータがこの値より大きければ、 サーバはパケット全体をネットワークから受け取る前にデータを書きはじめるか、 SMBreadbraw の場合は、すべてのデータをディスクから読み出す前に ネットワークに送信し始める。
このオーバーラッピング動作は、ディスクとネットワークのアクセスの スピードが同様な時に最適であり、片方のスピードが大幅に他方より大きい場合には ごくわずかの影響しかない。
既定値は 16384 であるが、最適値を決めるための試験はごくわずかしか 行なわれておらず、システム間で最適値が大きく変わることはありえる。 65536 以上の値はあまり差がなく、メモリーを不要に割り当てさせるだけである。
既定値:
read size = 16384
例:
read size = 8192
このオプションは、任意のワークグループ名を任意の IP アドレスに 定期的にアナウンスするように nmbd を 設定することを可能にする。
通常のブラウズ伝搬ルールが正常に動かないリモートのワークグループ上に Samba サーバを見えるようにするのに便利である。 リモートのワークグループは、IP パケットを送信できるなら どこにあってもよい。
例:
remote announce = 192.168.2.255/SERVERS 192.168.4.255/STAFF
上記の例は、与えられた 2 つの IP アドレスに対して 与えられたワークグループ名で自身を通知するように nmbd に指定する。 ワークグループ名を取り去ると、"workgroup" オプションがその代わりとして使われる。
IP アドレスには、通常はリモート・ネットワークのブロードキャスト・アドレスを 選ぶが、ネットワーク構成に安定したブラウズ・マスタがあるなら、 その IP アドレスにすることもできる。
docs/ ディレクトリ中の、BROWSING.txt 文書ファイルも参照のこと。
既定値:
remote announce = 空白文字列
例:
remote announce = 192.168.2.255/SERVERS 192.168.4.255/STAFF
このオプションは、リモートのセグメントにある Samba サーバの マスタ・ブラウザと、ブラウズ・リストの同期を定期的に要求するように nmbd を設定する。このオプションは、 ルーティングされたネットワークにおよぶ複数のワークグループのための ブラウズ・リストを得ることが可能になる。 これは Samba 固有の方式で動作するため、Samba 以外のサーバでは機能しない。
Samba サーバと、同じセグメントにあるすべてのクライアントマシンを、 通常のブラウズ伝搬ルールが正常に動かないリモートのワークグループに 見えるようにするのに便利である。 リモートのワークグループは、IP パケットを送信できるなら どこにあってもよい。
例:
remote browse sync = 192.168.2.255 192.168.4.255
上記の例は、リモートのブラウズ・リストをローカル・サーバと 同期させるため、指定されたサブネットとアドレスにあるマスタ・ブラウザに 対する要求を nmbd に出させる。
IP アドレスには、通常はリモート・ネットワークのブロードキャスト・アドレスを 選ぶが、ネットワークに安定したブラウズ・マスタがあるならその IP アドレスにすることもできる。 マシンの IP アドレスが指定された場合、リモートのマシンが 利用できるかどうか、要求を待っているかどうか、実際にそのセグメントの ブラウズ・マスタであるかどうか、Samba はこれらを関知しない。
既定値:
remote browse sync = 空白文字列
例:
remote browse sync = 192.168.2.255 192.168.4.255
これは真偽値を取るパラメータである。真にセットすると、 匿名のサーバへのアクセスは拒否され、言い替えれば、サーバが、 クライアントからユーザ名を送って来ることを期待する場合でも、 拒否するということである。これを真に設定すると、匿名の接続は 拒否され、クライアントには常時ユーザ名とパスワードを、接続時に 供給することを要求する。このパラメータは、NT クライアント環境のみ で使うことを推奨する。
このパラメーターは、マクロの展開が、ユーザ名(%U、%G など)の一貫性 に依存していることを利用して、NTクライアントでの動作を改善する。NT4 は匿名で接続をおこなったまま共有リストを参照しようとすることが多いが、 このパラメーターを使うと匿名での接続を禁止することが出来る。
restrict anonymous を真にした場合、何の目的があっても、すべての匿名接続は 拒否される。これは、クライアントに任意の人がインタラクティブにログオンした あと、マシンのアカウントを再認証するためにSamba プライマリドメインコントローラ マシンが接続する能力に影響するかもしれない。 NT クライアントはドメイン中のマシンのアカウントが存在しないか、 パスワードが不正というメッセージを表示する。これを扱うもっとも よい方法は、"すべてのプログラムを終了して別ユーザでログイン" するよりは、 インタラクティブなログイン間に、NT を、"シャットダウン後 再起動する"を使ってリブートすることである。
既定値:
restrict anonymous = false
例:
restrict anonymous = true
このオプションは、"security=share" のとき のみ動作し、それ以外の場合は無視されることに注意。
このオプションは、Samba が以前に確認したユーザ名/パスワードのペアを、
別の共有への接続に使うかどうかを 制御 する。
たとえば、\\server\share1
への接続に続いて server\share2
に
接続する場合、クライアントが 1 番目と同じユーザ名を用いて
2 番目の共有にパスワードなしで接続要求しても、これを自動的に許可しない
ように設定できる。
"revalidate" が "真"
ならば、クライアントは同じユーザ名で
自動的にアクセスを行なうことが出来なくなる。
既定値:
revalidate = False
例:
revalidate = True
このオプションは、「ゴミ箱」として利用するディレクトリ名を指定する。ディレクトリ名は相対パスまたは絶対パスで表記することが可能で、相対パスで表記された場合は、PATH
オプションで指定されたディレクトリからの相対パスになる。
このパラメータが設定されていた場合、共有内で削除されるファイルは、単に削除される代わりに、パラメータで指定したディレクトリに移動される。同じ名前のファイルが複数削除された場合は, ファイル名に一意な識別子が加えられたファイル名になる。
「ゴミ箱」ディレクトリに移動されたファイルが自動的に削除されることはないため、何らかの手段で、「ゴミ箱」内のファイルの掃除を行う必要がある。 恐らく cron を利用して古いファイルを定期的に削除するようにするのがよいだろう。
既定値:
recycle bin = 空文字列
例:
recycle bin = .recycle
"root directory" の同義語である。
"root directory" の同義語である。
サーバは、起動時にこのディレクトリへ "chroot()"
(すなわち、ルートディレクトリを変更する) を行なう。
これは 安全な動作をするために必ずしも必要なものではない。
この設定がなくても、サーバはサービス・エントリの配下にないファイルへの
アクセスは許可しない。
また、他のファイル・システムへのソフトリンクや、ファイル名に ".."
を
指定しての他のディレクトリにアクセスも、同様にチェックしてアクセスを拒否
することが出来る ("wide links" パラメータの設定による)。
"/"
以外の "root directory" エントリを指定すると、
代償もあるがセキュリティが強化される。
"root directory"オプションで指定されたディレクトリ内の
サブディレクトリ以外へのアクセスは一切拒否される。
サーバのオペレーションに必要なファイルも例外ではない。
サーバの完全な動作を維持するためには、"root directory"ツリー構造に
いくつかのシステム・ファイルをコピーする必要がある。
例えば /etc/passwd (またはそのサブセット)やある種のバイナリ、
印刷のために必要となる設定ファイルなどをコピーする必要がある。
コピーしなければならないファイルは、オペレーティング・システムに依存する。
既定値:
root directory = /
例:
root directory = /homes/smb
コマンドが root 権限で動作する以外は "postexec" と同じである。コネクション切断後に、ファイル・システム(CD-ROM など)を アンマウントするのに便利である。
"postexec" も参照のこと。
コマンドが root 権限で動作する以外は "preexec" と同じである。コネクションが完了する前に、ファイル・システム(CD-ROM など)を マウントするのに便利である。
"preexec" と "root preexec close" も参照のこと。
これは "preexec close" と同じパラメータで あるが、コマンドが root で動く点が異なる。
"preexec" と "preexec close" を参照のこと。
このオプションは、クライアントがどのように Samba に応答するかを決める、 smb.conf 中でもっとも重要な設定の 1 つである。
このオプションは、共有レベルのセキュリティを ON/OFF するため、
"security mode bit"
をプロトコル・ネゴシエーションの
応答に設定する。クライアントはこのビットをもとにして、
どのようにしてユーザとパスワードの情報をサーバに渡すかどうかを決める。
既定値は "security=user" であり、これは、 Windows 98 と Windows NT との間で通信を行なうときに必要とされるもっとも共通の 設定である。
別の選択肢は、 "security = share"、 "security = server"、または "security=domain" である。
*****注意 この Samba 2.0 の既定値は過去のバージョンのものとは違う *****
以前の Samba のバージョンでは、既定値は単に過去からのしがらみという理由で、 "security=share" になっていた。
このオプションを決定する際に考慮しなければならないバグが WfWg にはある。 ユーザ・レベルまたはサーバ・レベルのセキュリティのとき、WfWg クライアントは 「ドライブ接続」ダイアログ・ボックスで入力したパスワードを完全に無視するのだ。 これは、WfWg にログオンしたユーザ以外のユーザで、Samba の サービスに 接続することを(不可能でないまでも)非常に難しくしている。
パソコンが UNIX マシンのユーザ名と同じユーザ名を使うならば、 "security = user" を用いるとよいだろう。 通常使うユーザ名が UNIX マシン上にないなら "security = share" を使おう。
もしも、おもにパスワードなしで (guest による共有)共有をセットアップするならば、 security=share を使うべきである。 これは、通常共有して使うプリンタサーバに使われる。 security=user でゲストによる共有を セットアップするのはむずかしい。 "map to guest" に詳細がある。
異なった NetBIOS aliases 配下で、 ユーザレベルの共有と共有レベルの共有を提供する "ハイブリッドモード" は可能である。詳細は、NetBIOS aliases と include パラメータを参照のこと。
個々の設定の違いについては以下で説明する。
smbd は、たとえ "security=share" レベルの セキュリティであっても、クライアントからの要求を処理する際に、*常に* 存在する UNIX ユーザとして実行する。
共有レベルのセキュリティでは、クライアントが、ユーザ名をサーバに送ることは 必要ではないので、smbd はクライアントのために使う、 正しい UNIX ユーザ を決定するためにいくつかのテクニックを使う。
クライアントから渡されたパスワードから、一致可能な UNIX ユーザのリストは 以下の方法で構築される。
もしも、"guest only" パラメータが設定されていないと、 このリストは続いて供給されたパスワードで試される。最初にパスワードに 一致したユーザが UNIX ユーザとして使われる。
もしも、"guest only" がセットされているか、 どのユーザでもログオン出来なかった場合、もしも、共有が "guest account" として有効にマークされているなら、 ゲストユーザが使われ、それ以外はアクセスが拒否される。
共有レベルのセキュリティでは、結局どの UNIX ユーザ名がアクセス権の判 断に使われるかということに従って、非常に混乱する事態を招くことが あるので注意すること。
"ユーザ名/パスワード認証について" も参照のこと。
これは、Samba 2.0 での既定値のセキュリティ設定である。
ユーザレベルのセキュリティを使うと、クライアントは最初に有効な
ユーザ名とパスワード("username map" パラメータ
を使ってマップしてもよい)を伴って、最初に "ログオン"
する必要が
ある。暗号化パスワード("encrypted passwords"
パラメータを参照)もこのセキュリティモードでは使うことができる。
"user" や "guest only" のような
パラメータが設定されていた場合は、ユーザ認証が正常に行なわれた後にのみ、
この接続時の、UNIX のユーザ名を変更できる。
要求されたリソースの名前は、サーバが正しくクライアントを認証するまで サーバに送られないことに注意。
これは、なぜ、ゲスト共有が、 不明なユーザを "guest account" に自動的にマップ することをサーバが認めなくても、 ユーザレベルでのセキュリティで動かないかの理由である。 このことについての詳細は、"map to guest" パラメータ を参照のこと。
"ユーザ名/パスワード認証について" セクションも参照のこと。
このモードでは、Samba は別の SMB サーバを使って、ユーザ名/パスワード対の検証を 行なおうとする。もしも、これが失敗すると、"security = user" にもどるが、 暗号化パスワードが交渉 (negotiate) されていると、Samba は UNIX パスワードファイルの チェックに戻れず、ユーザのチェックに smbpasswd ファイルを必要とすることに注意。 どのようにこれをセットアップするかの詳細は docs/ ディレクトリ中の ENCRYPTION.txt 文書を見ること。
クライアントからの "security=server" の見え方は、 "security=user" と同じであることに注意。 どのようにサーバが認証を扱うかにのみ影響する。クライアントからの見え方に はなんら影響がない。
要求されたりソースの名前は、 要求されたリソースの名前は、サーバが正しくクライアントを認証するまで サーバに送られないことに注意。 これは、なぜ不明なユーザを "guest account" に自動的に変換するようにサーバを設定しない限り、ユーザレベルでの セキュリティではゲスト共有が機能しないかの理由である。 このことについての詳細は、"map to guest" パラメータ を参照のこと。
"ユーザ名/パスワード認証について" セクションも参照のこと。
"password server" 、 "encrypted passwords" パラメータも参照のこと。
このモードは、smbpasswd を使って、このマシンが
Windows NT ドメインに追加されている時のみ正しく機能する。
また、"encrypted passwords" が "真"
に
なっていることが前提である。このモードでは、Samba は、ユーザ/パスワード対
の検証を、Windows NT サーバがするとまったく同じように、
Windows NT プライマリまたはバックアップドメインコントローラ
に渡して試みる。
Samba が有効な UNIX アカウントを用いてファイルアクセスを行なうため、 ドメインコントローラ上のアカウントだけでなく、有効な UNIX アカウントも 存在する必要があることに注意。
クライアントから、"security=domain" を見るときは、 "security=user" とおなじであることに注意。 これは、どのように認証をサーバが扱うかに付いてのみ影響し、クライアント からの見方についてはなんの影響もない。
要求されたりソースの名前は、 要求されたリソースの名前は、サーバが正しくクライアントを認証するまで サーバに送られないことに注意。 これは、なぜ不明なユーザを "guest account" に自動的に変換するようにサーバを設定しない限り、ユーザレベルでの セキュリティではゲスト共有が機能しないかの理由である。 このことについての詳細は、"map to guest" パラメータ を参照のこと。
バグ: "security=domain の実装には、マルチバイトキャラクタセットの ユーザ名を考慮することに対するバグが現在ある。ドメインコントローラとの 通信ではユニコードで行なわなければならないが、Samba は現在ユニコードに マルチバイトのユーザ名を正しく拡張できず、そのため、マルチバイトのユーザ名は ドメインコントローラによって正しく認識されない。 この問題は、将来のリリースに書き送られる。
"ユーザ名/パスワード認証について" 節も参照のこと。
"password server" パラメータも参照のこと。 また、"encrypted passwords" パラメータも 参照のこと。
既定値:
security = USER
例:
security = DOMAIN
このパラメータは、Windows NT クライアント上で、 NT 固有のセキュリティダイアログボックスを使って、 UNIX ファイルのパーミッションを操作するときに、 UNIX のどのパーミッションビットが変更可能かを制御する。
このパラメータは、変更されるパーミッションビットに対して、 マスクとして適用され (AND 操作が適用され)、このマスクにない任意の ビットは変更操作から保護される。言い替えれば、マスク中で 0 と指定 されたビットは、ユーザが変更できないビットとして設定される。
もしも、明示的に設定しないと、 このパラメータは、create mask パラメータで 設定された値と同じに設定される。ディレクトリに対する、すべての ユーザ/グループ/その他 パーミッションをユーザに変更可能にさせるならば、 このパラメータを 0777 に設定する。
Samba サーバにその他の方法でアクセスできるユーザは、簡単にこの制限 をバイパスできることに注意。そのため、これは、スタンドアロンで動 く "備え付け" システムに有効である。通常多くの管理者は、おそらく 0777 に設定したがるだろう。
force directory security mode、 directory security mask、 force security mode パラメータも 参照のこと。
既定値:
security mask = <create mask と同じ>
例:
security mask = 0777
プリント・マネージャーのプリンタ・コメント box と
"net view"
コマンド出力の IPC コネクションの隣に表示される
文字列を制御する。
ユーザに表示したい任意の文字列をとることができる。
また、ブラウズ・リスト中ではマシン名の隣に表示される。
"%v"
は Samba バージョン番号と置換される。
"%h"
は ホスト名にかわる。
既定値:
server string = Samba %v
例:
server string = University of GNUs Samba Server
"set directory = no"
ならば、サービスの利用者は、
ディレクトリ変更のための setdir コマンドを使えない。
setdir コマンドは Digital Pathworks クライアントにおいてのみ実装される。 詳細については、Pathworks の説明書を参照のこと。
既定値:
set directory = no
例:
set directory = yes
これは、ファイルオープン中に、"共有モード"
(訳注:SMB拒否モード)
を有効/無効にするかを指定する。それらのモードは、ファイルへの排他的
読み出し又は書き込みアクセスを得るために、クライアントにより使用される。
これらのオープンモード(SMB拒否モード)は、UNIX では直接サポートされず、 そのため、共有メモリか、UNIX が共有メモリをサポートしていないならば、 ロックファイル(ほとんどすべてのUNIXでサポートされている)でシミュレートする。
このオプションで有効化される共有モード(SMB拒否モード)は DENY_DOS、DENY_ALL、DENY_READ、DENY_WRITE、DENY_NONE と DENY_FCB である。
このオプションは既定値で有効化され、完全な共有互換を提供する。
このパラメータを絶対に off にしてはならない。そうすると、多くの Windows アプリケーションが誤動作するからである。
既定値:
share modes = yes
smbdプロセス間で利用される共有メモリのサイズ
(バイト単位)を指定する。このパラメータの既定値は、1Mバイトの共有メモリ
である。もしも、同時に多くのファイルをオープンする大きな
サーバを使うのであれば、このパラメータを大きくしてもよい。このパラメータを
非常に小さくすると、ユーザに、ファイルをセーブするときに奇妙なエラー(
ロックエラー)と、smbd のログ中に、
"ERROR smb_shm_alloc : alloc of XX bytes failed"
というような
エラーメッセージを示す。
もしも、Samba が問い合わせをしても、使用している OS がサイズを拒否するならば、 Samba は、OS が受け付けるまで、0.8 倍した、より小さいサイズを試みる。
既定値:
shared mem size = 1048576
例:
shared mem size = 5242880 ; 多くのファイルのために、5mb にセット
この真偽値パラメータは、もしも、すべて大文字で、適切な長さの、
8.3 文法に従う新しいファイルが大文字で作成されるか、"既定値の"
大文字小文字状態で作成されるかを制御する。
(訳注: 実際は、8+3 形式の名前において大文字小文字の混在を容認するか、
規定値の文字の大きさに統一するかを制御する)
このオプションは、長いファイル名で大文字小文字が混在させるために
"preserve case=yes" オプションを
使っていても、短い名前を小文字にするのに使うことができる。
既定値は 真である。
名前の変換 節も参照のこと。
既定値:
short preserve case = yes
このオプションは暗号化された smbpasswd ファイルへのパスを設定する。 既定の smbpasswd ファイルへのパスは、Samba のコンパイル時に決められる。
既定値:
smb passwd file= コンパイル時に決定
例:
smb passwd file = /usr/samba/private/smbpasswd
smbrun バイナリのパス名を設定する。この既定値は、Makefile にある。
このパス名は、多くのサービスを正常に動作させるために、 正確に記述しなければならない。
正しく Samba がインストールされていれば、このパラメータを変更する 必要はない。
既定値:
smbrun = コンパイル時に決定
例:
smbrun = /usr/local/samba/bin/smbrun
このオプションは Samba がどのアドレスで接続を待つかを制御する。 1 つのサーバで多数の仮想インタフェースを用い、 それぞれ異なる構成で動作させるために利用できる。
既定では Samba はすべてのアドレスから接続を受け付ける。
例:
socket address = 192.168.2.20
このオプション(-O コマンド行オプションでも設定可能)は、 クライアントとの通信時に利用されるソケット・オプションを設定することができる。
ソケット・オプションは、OS のネットワーク層の接続部分の最適化を制御する。
このオプションは、通常、ローカルなネットワークの性能の最適化のために、 Samba サーバを調整するために使用される。 Samba は、ネットワークの最適パラメータが何であるかを知るすべはないので、 自分自身で実験し、設定しなければならない。 まず最初に、使用する OS の適当な資料 ("man setsockopt" が役に立つだろう)を 読むことを強く推奨する。
いくつかのシステムにおいては、Samba は「Unknown socket option」を オプション指定時に表示してくるかもしれない。 これは、ミスタイプしたか、使用している OS で includes.h に インクルードファイルを追加することが必要かのどちらかである。 後者ならばパッチを samba@samba.org に送って欲しい。
サポートされているソケットオプションのどれでも、OS が許す限り、 任意の方法で組み合わせることができる。
下記は、現在のソケットオプションで利用可能なもののリストである。
*
印は整数の引数を取る。
その他は、1 または 0 の引数を有効/無効の指定のために任意に取り、
1 または 0 を指定しないならば既定値は有効に設定される。
引数を使用するために、SO_SNDBUF=8192
という例のように、
SOME_OPTION=VALUE という書式で指定する。= 記号の前後に空白を
入れてはいけない。
ローカルなネットワークを使用しているならば、 賢明なオプションは下記のようになる。
socket options = IPTOS_LOWDELAY
ほとんど空いているローカルなネットワークがあれば、 下記のオプションを試すことができる。
socket options = IPTOS_LOWDELAY TCP_NODELAY
もし広域ネットワークを使っているならば、IPTOS_THROUGHPUT を試そう。
オプションのいくつかは、Samba サーバを完全に停止させるかもしれない。 注意しながらこれらのオプションを使用すること!
既定値:
socket options = TCP_NODELAY
例:
socket options = IPTOS_LOWDELAY
このパラメータは指定されたファイルの内容を使ってSambaが環境変数を定義する ようにさせる。
ファイルの所有権はrootでなければならず、その他のユーザーに対しては 書き込み可能にしてはならない。これはセキュリティのためである。
パラメータの値が"|"(訳注:パイプ)で始まる場合、Sambaは値をパイプコマンドの 出力結果を環境変数に設定する。 このコマンドはけっしてその他のユーザに書き込み可能にしてはならない。 その他のユーザに書き込み可能でないディレクトリに置かなければならない。
ファイルの内容またはパイプの出力は、UNIX標準のenv(1)コマンドの出力の フォーマットが使われるべきである。
環境変数領域の例
SAMBA_NETBIOS_NAME=myhostname
既定値:
既定値はなし
例:
source environment = |/etc/smb.conf.sh
source environment = /usr/local/smb_env_vars
この変数は、SSL を有効化した Samba の一部である。これは、もしも、
SSL ライブラリがシステムでコンパイルされていて、configure オプション
option "--with-ssl"
が configure時に与えられていた場合にのみ
有効である。
輸出制限のため、このコードは任意の現在のバージョンの Samba では 有効になっていない。
この変数は、全部の SSL モードを有効/無効にする。もしも、"no" に セットすると、SSL を有効化した Samba は完全に非 SSLSamba と同じに振る舞う。 もしも "yes" にセットすると、SSL接続が要求された時はいつでも、 "ssl hosts"変数と、 "ssl hosts resign"変数に、依存する。
既定値:
ssl=no
例:
ssl=yes
この変数は、SSL を有効化した Samba の一部である。これは、もしも、
SSL ライブラリがシステムでコンパイルされていて、configure オプション
option "--with-ssl"
が configure時に与えられていた場合にのみ
有効である。
輸出制限のため、このコードは任意の現在のバージョンの Samba では 有効になっていない。
この変数は、認証局 (CA) がどこにあるかを定義する。与えられたディレクトリは Samba が信頼する個々の CA につき 1 つづつのファイルを含まなければならない。 ファイル名は CA の "Distinguished Name" 上のハッシュ値でなければならない。 このディレクトリをどのようにセットアップするかは、この文書の後の方で 説明している。このディレクトリ内の、ネーミング体系に合わない すべてのファイルは、無視される。もしもクライアントの証明書を必要と しないのであれば、この変数をセットする必要は無い。
既定値:
ssl CA certDir = /usr/local/ssl/certs
この変数は、SSL を有効化した Samba の一部である。これは、もしも、
SSL ライブラリがシステムでコンパイルされていて、configure オプション
option "--with-ssl"
が configure 時に与えられていた場合にのみ
有効である。
輸出制限のため、このコードは任意の現在のバージョンの Samba では 有効になっていない。
この変数は、信頼する CA を定義する第二の方法である。信頼する CA の 証明書は、1 つの大きなファイルに集められ、この変数はそのファイルを指示する。 CA を定義するのには、おそらく 2 つの方法のうちのどちらか一つだけを使うだ ろう。最初の選択は、たくさんの CA か自由度を高めたいときには好ましく、 2番目はもしも 1 つの CA しか持っていなく、物事をシンプルにしたい(ハッシュ したファイル名を作りたくない)場合には好ましい。もしもサーバが クライアントの証明書を必要としないのであれば、この変数を設定する必要はない。
既定値:
ssl CA certFile = /usr/local/ssl/certs/trustedCAs.pem
この変数は、SSL を有効化した Samba の一部である。これは、もしも、
SSL ライブラリがシステムでコンパイルされていて、configure オプション
option "--with-ssl"
が configure時に与えられていた場合にのみ
有効である。
輸出制限のため、このコードは任意の現在のバージョンの Samba では 有効になっていない。
この変数は、SSL のネゴシエーション時に提供されるべき暗号化手法を 定義する。これが一体何をするかがわかっていない限り、この変数を セットすべきでない。
この変数は、SSL を有効化した Samba の一部である。これは、もしも、
SSL ライブラリがシステムでコンパイルされていて、configure オプション
option "--with-ssl"
が configure 時に与えられていた場合にのみ
有効である。
輸出制限のため、このコードは任意の現在のバージョンの Samba では 有効になっていない。
このファイル中の証明書は、もしも存在するならば、 smbclient によって使われる。サーバが、 クライアントの証明書を要求する場合に必要である。
既定値:
ssl client cert = /usr/local/ssl/certs/smbclient.pem
この変数は、SSL を有効化した Samba の一部である。これは、もしも、
SSL ライブラリがシステムでコンパイルされていて、configure オプション
option "--with-ssl"
が configure 時に与えられていた場合にのみ
有効である。
輸出制限のため、このコードは任意の現在のバージョンの Samba では 有効になっていない。
これは、smbclient のためのプライベート鍵 である。クライアントが証明書を持つ必要がある時のみ必要である。
既定値:
ssl client key = /usr/local/ssl/private/smbclient.pem
この変数は、SSL を有効化した Samba の一部である。これは、もしも、
SSL ライブラリがシステムでコンパイルされていて、configure オプション
option "--with-ssl"
が configure 時に与えられていた場合にのみ
有効である。
輸出制限のため、このコードは任意の現在のバージョンの Samba では 有効になっていない。
この変数は、他の SSL 実装とバグの互換性を持つように SSLeay が configure された場合に設定する。現在は SSLeay 以外に SSL が実装されたクライアントが 存在しないため、おそらく設定を必要とされないであろう。
既定値:
ssl compatibility = no
"ssl hosts resign" を参照のこと。
この変数は、SSL を有効化した Samba の一部である。これは、もしも、
SSL ライブラリがシステムでコンパイルされていて、configure オプション
option "--with-ssl"
が configure 時に与えられていた場合にのみ
有効である。
輸出制限のため、このコードは任意の現在のバージョンの Samba では 有効になっていない。
この 2 つの変数は、Samba が SSL モードになるか否かを定義する。 もしもこれらが定義されていないと、Samba は SSL 接続のみを認める。 もしも、"ssl hosts" 変数がホスト(IP アドレス、 IP アドレスレンジ、net グループまたは名前)をリストしていると、 それらのホストのみ強制的に SSL モードになる。もしも、"ssl hosts resign" がホストをリストしていると、それらのホストのみが非 SSL モードになる。 これら 2 つの変数の文法は、決める主題が違うということのみ違う、 "hosts allow" と "hosts deny" 変数のペアと同じである。SSL を使うか否かであって、アクセス権ではない。 詳細は、"allow hosts" を参照のこと。 下記の例は、ローカルネット (192.168.*.*) 以外からは SSL 接続を必要とする 例である。
bf(既定値:)
ssl hosts = 空白文字列
ssl hosts resign = 空白文字列
例:
ssl hosts resign = 192.168.
この変数は、SSL を有効化した Samba の一部である。これは、もしも、
SSL ライブラリがシステムでコンパイルされていて、configure オプション
option "--with-ssl"
が configure 時に与えられていた場合にのみ
有効である。
輸出制限のため、このコードは任意の現在のバージョンの Samba では 有効になっていない。
この変数を "yes"
にセットすると、サーバは正しい証明書を持たない
クライアントからの接続を認めない。"ssl CA certDir"
によって与えられるディレクトリ/ファイルと、
"ssl CA certFile" はクライアントからの
証明書を探すのに使われる。
もしも、証明書が完全に検証されないと、接続は終了する。もしも、
この変数が "no"
にセットされると、クライアントは証明書を必要と
しない。Web アプリケーションとは逆に、クライアントの証明書を
必要とすべきである。Web 環境では、クライアントのデータは、
厳重に取り扱うべきものなので(クレジットカードの番号など)、
サーバは信頼できることを証明しなければならない。ファイルサーバ
環境では、サーバのデータは厳重に取り扱うべきものなので、
クライアントは信頼できることを証明しなければならない。
既定値:
ssl require clientcert = no
この変数は、SSL を有効化した Samba の一部である。これは、もしも、
SSL ライブラリがシステムでコンパイルされていて、configure オプション
option "--with-ssl"
が configure 時に与えられていた場合にのみ
有効である。
輸出制限のため、このコードは任意の現在のバージョンの Samba では 有効になっていない。
もしも、この変数を "yes"
にセットすると、
smbclient はサーバから
認証書を要求する。これは、サーバには、
"ssl require clientcert"
と同じである。
既定値:
ssl require servercert = no
この変数は、SSL を有効化した Samba の一部である。これは、もしも、
SSL ライブラリがシステムでコンパイルされていて、configure オプション
option "--with-ssl"
が configure 時に与えられていた場合にのみ
有効である。
輸出制限のため、このコードは任意の現在のバージョンの Samba では 有効になっていない。
これは、サーバの証明書を含むファイルである。サーバは証明書を 持たねばならない。このファイルはサーバのプライベート鍵も含む。 どのように証明書とプライベート鍵を作るかは、この後を参照のこと。
既定値:
ssl server cert = 空白文字列
この変数は、SSL を有効化した Samba の一部である。これは、もしも、
SSL ライブラリがシステムでコンパイルされていて、configure オプション
option "--with-ssl"
が configure 時に与えられていた場合にのみ
有効である。
輸出制限のため、このコードは任意の現在のバージョンの Samba では 有効になっていない。
このファイルには、サーバのプライベートキーが入っている。もしもこの 変数を定義しないと、キーは証明書から捜される(証明書に付いていると 思われる)。サーバはプライベート鍵を持たねばならず、証明書は、 このプライベート鍵と一致しなければならない。
既定値:
ssl server key = 空白文字列
この変数は、SSL を有効化した Samba の一部である。これは、もしも、
SSL ライブラリがシステムでコンパイルされていて、configure オプション
option "--with-ssl"
が configure 時に与えられていた場合にのみ
有効である。
輸出制限のため、このコードは任意の現在のバージョンの Samba では 有効になっていない。
この列挙変数は、使用する SSL プロトコルのバージョンを定義する。
"ssl2or3"
は SSL v2 または v3 の動的なネゴシエーションを認め、
"ssl2"
は SSL v2、"ssl3"
は SSL v3、"tls1" は TLS v1 となる。
TLS (Transport Layer Security) は(提案中の?) 新しい SSL 標準である。
既定値:
ssl version = "ssl2or3"
このパラメータは、smbd が cache を、大文字小文字 を区別しない名前のマップ操作を高速化するために使うかを決める。 このパラメータを変更する必要はない。
既定値:
stat cache = yes
このパラメータは、stat cache中の、エントリ数を 決める。このパラメータを変更する必要はない。
既定値:
stat cache size = 50
これは、smbstatus が読み出せる ステータスファイルへの接続状態ログの採取を有効/無効にする。
これを無効にすると、smbstatus は、どのコネクションがアクティブであるかを表示できなくなる。 このパラメータを変更する必要はない。
既定値: status = yes
サーバ上でのファイルのロックの扱いを制御する真偽値である。
これが "yes"
に設定されると、サーバはすべての読み出し/書き込み
アクセスにおいて事前にファイルのロック状態を検査し、
ロックされているならばアクセスを拒否する。
いくつかのシステムではアクセス速度が低下するだろう。
strict locking を "no"
にすると、サーバはファイルのロック検査を
クライアントが明示的に要求したときだけ行なう。
行儀のよいクライアントは、処理が重要な時にはファイルの読み書きの前に 必ずロックの状態を問い合わせる。 従って、大抵の場合は "strict locking = no" のほうがよい。
既定値:
strict locking = no
例:
strict locking = yes
多くの Windows アプリケーション (Windows 98 のシェル、エクスプローラも含む) は、バッファのデータを フラッシュする動作を、ディスクに対し sync を行う動作と取り違えているようだ。 UNIX における sync 呼び出しは、 カーネルのディスク・バッファに残っているデータが無事に記憶装置へ 保存されたことをカーネルが保証するまで、プロセスを停止させる。 この処理は非常に遅く、あまり頻繁に行うべきではない。 このパラメータを「no」(既定値) に設定すると、smbd は sync 呼び出しを意図した Windows アプリケーションの要求を無視する。 データが失われる可能性があるのは、Samba が動作している オペレーティング・システム自身がクラッシュしたときだけである。 よって、この設定による危険度は少ない。 その上、Windows 98 のシェルを使ったファイル・コピー操作で報告されている パフォーマンスの問題も改善される。
"sync always" パラメータも参照のこと。
既定値:
strict sync = no
例:
strict sync = yes
UNIX ファイル名の終わりのドットを削るかどうかを制御する真偽値である。 これにより、1 つのドットが末尾に付いたファイル名を持ついくつかの CD-ROM を救済する。
既定値:
strip dot = no
例:
strip dot = yes
write システムコールが戻って来る前に、常に不摘発性の記憶装置に対しての
書き込みを完了させるかどうかを制御する真偽値である。もし false ならば、
サーバは個々の write コールについてクライアントからの要求に従って、書
き込みを制御する(クライアントは特定の書き込み動作を同期式に指示する
ビットをセットできる)。
true ならば、データがディスクに書かれることを保証するために、
すべての write コールの後には fsync() コールが続く。
このパラメータを機能させるには、"strict sync"
パラメータを "yes"
に設定しなければならない。
"strict sync" パラメータも参照のこと。
既定値:
sync always = no
例:
sync always = yes
このパラメータは、Samba のデバッグ・メッセージが システムの syslog ログ・レベルへ記録される方法を割り当てる。 Samba の デバッグ・レベル 0 は syslog の LOG_ERR、 デバッグ・レベル 1 は LOG_WARNING、 デバッグ・レベル 2 は LOG_NOTICE、 デバッグ・レベル 3 は LOG_INFO にそれぞれ割り当てられている。 それ以上の高位のレベルは LOG_DEBUG に割り当てられている。
このパラメータはメッセージを syslog に送るためのしきい値を設定する。 このしきい値以上のすべての Samba デバッグ・メッセージが syslog に送られる。
既定値:
syslog = 1
このパラメータが設定されると、Samba のデバッグ・メッセージは システムの syslog にのみ記録され、デバッグ・ログ・ファイルにはされない。
既定値:
syslog only = no
このパラメータは、GMT からローカル時間への変換時に追加する時間(分単位) を設定する。間違った夏時間処理をしている PC を管理しているならば有効である。
既定値:
time offset = 0
例:
time offset = 60
このパラメータは、nmbd が自身を Windows クライアントのタイム・サーバとして広告するかどうかを決定する。 既定は 偽 である。
既定値:
time server = False
例:
time server = True
"debug timestamp"の同義語である。
この真偽値パラメータは、
smbpasswd ファイルの暗号化された SMB パスワードが変更されたときに、
Samba が UNIX のパスワードを SMB パスワードと同期させるかどうかを制御する。
これを true に設定すると "passwd program"
のプログラムが root ユーザで呼ばれ、
古い UNIX パスワードなしで新しい UNIX パスワードを設定できる
(SMB パスワードの変更コードは古い平文パスワードを入手できず、
新しいパスワードだけを持っている)。
既定でこのパラメータは "false"
に設定されている。
"passwd program"、 "passwd chat" も参照のこと。
既定値:
unix password sync = False
例:
unix password sync = True
この真偽値パラメータを設定すると、Samba は UNIX のパスワード・ファイルからの 本名(real name)領域をクライアントに提供するようになる。 1 人以上で利用されるシステムにおいてメール・クライアントや WWW ブラウザを 設定するのに役立つ。
既定値:
unix realname = no
例:
unix realname = yes
この真偽値パラメータを指定すると、平文パスワードでログインしてくるユーザは、
ログオン時に smbpasswd ファイル中の暗号化(ハッシュ化)パスワードを
自動的に更新するようになる。
このオプションは平文パスワード認証
(平文パスワードによるユーザ認証がネットワーク上を流れて
UNIX のアカウント・データベースに照会される)から
暗号化パスワード認証(SMB 呼びかけ/応答 (challenge/response) 認証機構)
への移行を、全ユーザに smbpasswd へのパスワード再入力を強制しなくても
行うことができる。
これは便利なオプションで、長い期間を経て暗号化パスワードへ移行する
ことができる。すべてのユーザが smbpasswd ファイルで、パスワードを暗号化
したなら、このパラメータを "off"
に設定すべきだろう。
このパラメータを正しく動作させるために、このパラメータを "yes"
に設定
している時は、"encrypt passwords" パラメータを
"no"
に設定すること。
このパラメータが設定されていても、smb がユーザ認証を行なう際には、正し く接続して、ハッシュ化された (smbpasswd) パスワードを更新するために、有 効なパスワードを入力しなければならないことに注意。
既定値:
update encrypted = no
例:
update encrypted = yes
このグローバルパラメータが 真 だと、ホームディレクトリ中の、
".rhosts"
ファイルが、特定のパスワードなしで、アクセスを許可される
ホストとユーザの名前を見つけるために読みこまれる。
注意: use rhosts の使い方は大きなセキュリティホールになる。 なぜならば、PC が正しいユーザ名を供給することを信用しているからである。 PC が偽のユーザ名を供給することはいとも簡単である。use rhosts オプションは、あなたがこの設定の影響を本当に理解している時 にのみ使うことを推奨する。
既定値:
use rhosts = no
例:
use rhosts = yes
"username" の同義語である。
"username" の同義語である。
複数のユーザをコンマで区切ったリストで指定でき、 入力したパスワードが(左から右に)個々のユーザ名に対して次々テストされる。
PC がその固有のユーザ名を供給できない時にだけ username= 行が必要である。
これは coreplus プロトコルの場合か、またはユーザが
UNIX のユーザ名と違う WfWg ユーザ名をもっている場合である。
両方のケースとも、\\server\share%user
記述をかわりに利用するこ
とが好ましい。
Samba は (username=) 行の各ユーザに対して提供されたパスワードの 認証を試みるため、username= 行はうまい解決策ではない。 遅いうえ、パスワードが重複している多数のユーザがいる場合には困ったことになる。 このパラメータを不用意に使うと、タイムアウトやセキュリティ違反を 発生させる事になる。
Samba はプラットフォームである UNIX のセキュリティに依存している。 このパラメータは誰がログインできるかを制限せず、 提供されたパスワードにどのユーザが対応するかを知る手がかりを Samba サーバに与える。 ユーザは誰としてでもログインでき、telnet セッションを開始するよりは 被害をうけないようにできる。 デーモンはログインしたユーザとして動作するので、 ユーザが UNIX 上で与えられていない権利は何も行うことができない。
サービスを一部のユーザに限定するためには、 "valid users="行を利用することができる。
ユーザ名が '@'
で始まっているものは、
最初に NIS (YP) のネットグループを検索し
(Samba がネットグループをサポートするようコンパイルされている場合)、
なければ続いて UNIX のグループ・データベースが検索され、
名前に対応するグループに属するすべてのユーザに展開される。
'+'
で始まっている名前は、
UNIX のグループ・データベースだけを検索し、
名前に対応するグループに属するすべてのユーザに展開される。
'&'
で始まっている名前は、
NIS (YP) のネットグループ・データベースだけを検索し
(Samba がネットグループをサポートするようコンパイルされている場合)、
名前に対応するネットグループに属するすべてのユーザに展開される。
グループ・データベースの検索には少々時間がかかることがあり、 いくつかのクライアントは検索中にタイムアウトするかもしれないことに注意。
"ユーザ名/パスワード認証について" には このパラメータが、サービスへのアクセスをいかに決定するかに ついての補足情報があるので参照すること。
既定値:
ゲスト・サービスならゲスト・アカウント。そうでなければサービスの名前
例:
username = fred username = fred, mary, jack, jane, @users, @pcgroup
このオプションは、 多くの DOS クライアントが送信するすべて大文字のユーザ名から、 対応する UNIX のユーザ名を Samba が推測するための手助けとなる。 既定では、Samba はユーザ名をすべて小文字にして試し、 次にユーザ名の最初の文字だけを大文字に (capitalize) して試し、 それでも UNIX マシンに一致するユーザ名がなければ失敗する。
このパラメータに 0 以外の値を設定すると動作が変わる。
このパラメータは、UNIX ユーザ名の決定を試行するための大文字の
組み合わせ数を指定する。より大きい数字にすると多くの組み合わせが試されるが、
ユーザ名の発見はより遅くなる。
UNIX マシンに "AstrangeUser"
といった特殊なユーザ名があるときに
このパラメータを使う。
既定値:
username level = 0
例:
username level = 5
このオプションは、クライアントからサーバへのユーザ名マッピングを 含んだファイルを指定することができる。 これはいくつかの目的のために使う。 最も一般的な使用法は、DOS または Windows マシン上のユーザ名を、 UNIX マシンが使うものに置き換えすることである。 その他には、ファイルをより簡単に共有できるように、 複数のユーザを単一のユーザ名に置き換えすることである。
マップ・ファイルは各行ごとに評価される。
各々の行は、最左端に UNIX のユーザ名を含んでいなければならず、
次に '='
がきて、その後にユーザ名のリストが続いている。
ユーザ名のリストの右には、グループ内のすべてのユーザ名に一致する
フォーム @group を含んでいてもよい。
特別なクライアント名 '*'
はワイルド・カードであり、任意の名前と一致する。
マップ・ファイルの各行は最大 1023 文字まで使える。
ファイルは提供されたユーザ名によって行ごとに処理され、
'='
記号の右側の各ユーザ名と比較される。
提供された名前が右側のどれかに一致するすると、それは左側の名前に置き換わる。
そして次の行の処理へと続行していく。
行が '#'
または ';'
で始まっていると、その行は無視される。
行が '!'
で始まっていると、
それ以降の行でユーザ名が一致した時点で比較処理は中止される。
そうでなければ、置き換え比較はすべての行に対して継続される。
後の方でワイルドカードによるマッピングがあるときには '!'
を使うと
かなり便利である。
たとえば、"admin"
または "administrator"
から UNIX 名の "root"
に
置き換えたいならば、下記のように記述する。
root = admin administrator
または、UNIX のグループ "system"
の全員を UNIX 名 "sys"
に
置き換えるには、下記のように記述する。
sys = @system
ユーザ名マップ・ファイル中には、好きなだけマッピングを記述することができる。
システムが NIS NETGROUP オプションをサポートしている場合、 一致するグループは /etc/group データベースより先に ネットグループ・データベースから調べられる。
空白を含んでいる Windows のユーザ名は、ダブルクォートで名前を 括ることで置き換えできる。たとえば、
tridge = "Andrew Tridgell"
とすることで Windows のユーザ名 "Andrew Tridgell"
を
UNIX のユーザ名 tridge に変更する。
以下の例は、mary と fred を UNIX ユーザ sys に置き換え、
そのほかのユーザを guest に置き換える。
一致した行で Samba が処理を止めるようにするため、'!'
を
使用していることに注意。
!sys = mary fred guest = *
置き換えが、すべてのユーザ名の定義に適用されることに注意すること。
従って、もし "\\server\fred"
に接続し、"fred"
が "mary"
に
置き換えされるならば、実際には "\\server\mary"
に接続することになり、
"fred"
ではなく "mary"
に必要なパスワードを入力することが必要となる。
唯一の例外は(もしも存在するならば)、
"password server" にユーザ名を送る時である。
パスワード・サーバは、修正せずにクライアントが供給するどのようなユーザ名
でも受け取る。
また、逆マッピングは行われない。これは主に印刷に影響する。 WfWg 下のプリントマネージャは、それらがプリントジョブを所有しないと 認識するので、 置き換えされたユーザは、プリント・ジョブ削除時にトラブルに会う。
既定値:
ユーザ名マップなし
例:
username map = /usr/local/samba/lib/users.map
この真偽値パラメータは、もしもSambaが --with-utmp
オプション付きで
構成(訳注:configure)され、コンパイルされた時にのみに有効である。もしも真に
設定されると、Sambaは utmp または utmpxレコード(UNIXシステムに依存)に、
Sambaサーバへの接続時の情報を追加する。サイトはSamba共有へのユーザの接続を
記録するのに使うことができる。
"utmp directory" パラメータも参照のこと。
既定値:
utmp = False
例:
utmp = True
このパラメータは、Sambaが --with-utmp
オプション付きで構成(訳注:configure)され、コンパイルされた時にのみに有効である。一般的に各共有は utmp レコードを作成するが、多数の共有に対して多くの接続が行なわれている場合、接続単位にまとめることが望ましいであろう。
既定値:
utmp consolidate = no
例:
utmp consolidate = yes
このパラメータは、Sambaが --with-utmp
オプション付きで
構成(訳注:configure)され、コンパイルされた時にのみに有効である。
これは、Sambaサーバへの接続を記録するutmp またはutmpxファイル
(UNIXシステムに依存)が存在するディレクトリを指定する。
"utmp"パラメータも参照のこと。
既定値では、この値は設定されておらず、システムが使用している
utmpファイルを使う事を意味している(通常Linuxでは/var/run/utmp)。
既定値:
utmp ディレクトリはない
例:
utmp directory = /var/adm/
このパラメータは、Sambaが --with-utmp
オプション付きで
構成(訳注:configure)され、コンパイルされた時にのみに有効である。
このパラメータは utmp および wtmp レコードの ut_host フィールドに記録する値を設定する。デフォルトは NetBIOS 名 (%m) であるが、InternetのDNS 名 (%M) を代わりに用いるのも便利なことがあるだろう。
既定値:
utmp hostname = %m
例:
utmp hostname = %M
(訳注:2.0.3 では不要です。) このオプションは、ファイル名としてサーバが有効と認める 付加的な文字を指定することができる。 これは特に、u-ウムラウトまたは a-リングなどの、国別の文字集合に有益である。
オプションは、スペースによって区切られた整数または文字形式での 文字リストである。コロンによって分離された 2 文字があると、 それは小文字:大文字ペアとして扱われる。
任意の文字を設定ファイルに書き込むことのできるエディタがあれば、 これを利用するのが最も簡単である。 さもなければ、通常の C 言語記述方式を使った、 8 進数、10 進数、あるいは 16 進数で文字を指定できる。
たとえば、単一文字 'Z'
を文字セットに追加する
(これは既にあるので意味はない)ためには、下記のうちのどれかを行えばよい。
valid chars = Z valid chars = z:Z valid chars = 0132:0172
実際、上記の例の下の 2 つは、2 文字を付加し、 大/小文字のマッピングを適切に変更する。
"client code page" パラメータも設定する場合は、 それより後にこのパラメータを設定しなければならないので注意すること。 "client code page" を "valid chars" の後に設定してしまうと、"valid chars" の設定は無視されてしまう。
"client code page" パラメータも参照のこと。
既定値:
Samba は英語環境における妥当な有効文字セットを利用すること を既定値としている。
例:
valid chars = 0345:0305 0366:0326 0344:0304
上記の例では、ファイル名にスウェーデン文字を使う事ができる。
注意:特定のシステム用に "valid chars" 行を正しく生成することは 実際は非常に難しい。この作業を自動化するために、 tino@augsburg.net は与えられたクライアント・システム用に、 完全な "valid chars" 行を自動的に生成する "validchars" パッケージを書いた。Samba ソースコードディストリビューション中の、 examples/validchars/ サブディレクトリを見よ。
このサービスにログインできるユーザのリストである。
'@'
、'+'
および '&'
によって始まる名前は、
"invalid users" パラメータで説明されたのと
同じルールで解釈される。
これが空白ならば(既定値)、どのようなユーザでもログインできる。 ユーザ名がこのリストおよび "invalid users" リスト両方にあると、そのユーザのアクセスは拒否される。
現在のサービス名は "%S" で置き換えられる。 [homes] セクションで使うのに便利である。
"invalid users" も参照のこと。
既定値:
有効なユーザなし(だれでもログインできる)
例:
valid users = greg, @pcusers
これは、見ることもアクセスすることもできないファイルと
ディレクトリのリストである。リストの各エントリは '/'
で区切る必要があり、
エントリに空白文字を含めることができる。
'*'
と '?'
は DOS のワイルドカードのように複数のファイルや
ディレクトリを指定するのに利用することができる。
各エントリは UNIX のパスであり、DOS のパス ではない。
また、UNIX のディレクトリ区切りである '/'
を含めてはならない。
大文字/小文字を区別する "case sensitive" オプションが ファイルを拒否する動作に影響することに注意。
意識すべき重要な veto files パラメータの特徴がある。 veto files パラメータに一致するファイル (Windows/DOS クライアントはそれらをまったく見ることができない) だけを含んだディレクトリを削除するとき、 ユーザが UNIX で削除を行う許可を持っている場合は ディレクトリ内の拒否ファイルが自動的に削除されてしまう。
このパラメータの設定は Samba の性能に影響する。 ファイルとディレクトリを走査するとき、すべてのファイルとディレクトリに 一致するかどうかの検査をするよう強制するためである。
"hide files" と "case sensitive" も参照のこと。
既定値:
いずれのファイル、ディレクトリも拒否されない。
例:
例 1.
単語 Security と最後に .tmp を含むファイル、 単語 root を含むディレクトリを拒否する。 veto files = /*Security*/*.tmp/*root*/
例 2.
Netatalk サーバが作る Apple 特有のファイルを拒否する。 veto files = /.AppleDouble/.bin/.AppleDesktop/Network Trash Folder/
このパラメータは共有で "oplocks" パラメータが 有効になっている場合にだけ効果がある。 Samba 管理者はこのパラメータを使って 特定ファイルに対する oplocks 許可を無効にすることができる。 ファイルは "veto files" パラメータで使用される ワイルドカード・リストと同じ形式で指定する。
既定値:
どのファイルも oplock 許可を禁止されない。
例:
クライアントによって激しく競合にさらされているとわかっているファイルに対し、
このオプションを適用したいと思うことがあるだろう。
よい例として NetBench SMB ベンチマーク・プログラムがあり、
このプログラムは ".SEM"
で終わる名前のファイルに
クライアントから大量の競合を引き起こす。
Samba がこれらのファイルに oplock を認めないようにするには、
([global] セクションか NetBench 用の共有セクションの
どちらかで) 以下のように指定する:
veto oplock files = /*.SEM/
これは、共有のボリューム・ラベルを上書きすることができる。 特別なボリューム・ラベルが必要な CD-ROM のインストール・プログラムに 便利である。
既定値は共有名である。
このパラメータは、UNIX のファイル・システムのリンクを追跡するか否かを 制御する。 サーバによってエクスポートされているディレクトリ構造内部へ ポイントする領域のリンクは、いつでも許されている。 このパラメータは、エクスポートされているディレクトリ構造外部にある 領域のアクセスを制御する。このパラメータを設定しても、 ディレクトリへのリンクのみが制限されることに注意。 ファイルへ直接リンクされている場合は、制限されない。
このパラメータをセットすると、リンクのチェックを実行しなければならない ために、余分なシステムコールを行なうために、サーバのパフォーマンスに 悪影響を及ぼすことに注意。
既定値:
wide links = yes
例:
wide links = no
nmbd がその他のホストのためにブロードキャスト名の
問い合わせに応じるかどうかを制御する真偽値である。
いくつかの古いクライアントに対しては、これを "yes"
にセットする必要がある。
既定値:
wins proxy = no
nmbd が名前を登録すべき WINS サーバの名前を DNS 名(または IP アドレス)で指定する。 ネットワークに WINS サーバがあるなら、それを WINS サーバの名前として設定する。
ネットワークが複数のサブネットに別れているなら WINS サーバを指し示すようにするべきである。
注意 もしも、複数のサブネットで、サブネット越しのブラウジングを 正しく動かしたいならば、WINS サーバを指し示すように Samba をセットアップ する必要がある。
Samba ソースディストリビューション中の docs/ ディレクトリの中の、 BROWSING.txt を参照のこと。
既定値:
wins server =
例:
wins server = 192.9.200.1
Samba がWINSサーバとして動いている時、このオプションはWINSデータベース に対するすべての変更のための外部プログラムを起動できるようにする。 このオプションの主目的は、ダイナミックDNSのような外部の名前解決 データベースの動的な更新をできるようにすることである。
wins hook パラメータは以下の形式で呼ばれるスクリプト又は実行形式プログラム を指定する。
wins_hook operation name nametype ttl IP_list
最初の引数は動作指定であり "add"、"delete"、"refresh" のいずれかを取る。 ほとんどの場合、動作は適当な情報を提供する残りのパラメータによって 無視することができる。"refresh" はしばしば名前が現在追加されていなく、 add として扱われるべき時に呼ばれることに注意。
2番目の引数は、netbios名である。もしも、名前が正しくなければ、 wins hook は呼び出されない。正しい名前は文字、数字、ハイホン、 アンダースコアとピリオドのみを含む。
3番目の引数は netbios名のタイプで、2桁の16進数である。
4番目の引数は 名前の TTL(生存時間) で秒数単位である。
5番目とそれ以降の引数は、その名前で現在登録されているIPアドレスである。 もしも、リストが空ならば、名前は削除される。
BIND ダイナミックDNSアップデートプログラム "nsupdate" と呼ばれる スクリプトの例は、Sambaソースコードの examples ディレクトリで提供される。
この真偽値は、Samba の nmbd プロセスが WINS サーバとして振る舞うかを制御する。 複数に分割されたネットワークを持たない場合や WINS サーバとしてとくに nmbd を必要としないのであれば、 このパラメータは true に設定すべきではない。 ネットワークの 2 台以上のマシンでこのパラメータを true にしてはならない ことに注意。
既定値:
wins support = no
クライアントから問合せがあった時に、どんな workgroup をサーバが 見せるかを制御する。このパラメータは、 "security=domain"設定で使われる ドメイン名をも制御することに注意。
既定値:
コンパイル時に WORKGROUP にセットされる。
例: workgroup = MYGROUP
"writeable" が正しく綴れない人のための同義語である。
サービスに対して読み書きアクセスが与えられるユーザのリストである。 接続しているユーザがこのリストにあれば、 たとえ "writeable"オプションがセットされていても、 書き込みアクセスを得られる。 このリストは @group 形式を利用したグループ名を含むことができる。
ユーザが read list と write list 両方に存在すると、 書き込みアクセスを与えられる事に注意。
"read list" オプションも参照のこと。
既定値:
write list = 空白文字列
例:
write list = admin, root, @staff
このパラメータ(Samba 2.0.7 で新規)をゼロ以外に設定すると、 Sambaは oplockされた各ファイルに対してメモリキャッシュを作成するように なる(非oplockファイルに対しては行なわれない)。ディスクに対して 直接書き込み操作を要求しないすべてのクライアントの書き込みは、可能ならば このキャッシュに保存される。キャッシュはキャッシュにフィットしないオフセット の書き込み時か、ファイルがクライアントによってクローズされた時にフラッシュ される。もしも、データがキャッシュ中に存在していれば、ファイルからの読み出しに キャッシュが使用される。
このキャッシュにより、SambaはRAIDディスクに対して適切な書き込みサイズで 書き込みできるようになり(すなわち、書き込みサイズが、RAIDのストライプサイズに なる)、ディスクサブシステムがボトルネックだが、ユーザ空間のプログラム向けの フリーメモリがある時、バッチクライアント(batch client)動作時の、システムの パフォーマンスを向上させることができる。
既定値:
write cache size = 0
writeable の同義語である。
このパラメータは、クライアントからのデータ転送時に、 サーバが raw 書き込み SMB をサポートするかどうかを制御する。 このパラメータを変更してはいけない。
既定値:
write raw = yes
"read only" の反意語である。
このパラメータが "no"
ならば、サービスに対応するユーザは
サービスのディレクトリ中のファイルの作成も修正もできない。
印刷可能なサービス ("printable = yes") は、 常に(ユーザがアクセス権を持っている)ディレクトリに書くことを認めるが、 それは単にスプール操作経由だということに注意。
既定値:
writeable = no
例:
read only = no writeable = yes write ok = yes
このパラメータは、Sambaが --with-utmp
オプション付きで
構成(訳注:configure)され、コンパイルされた時にのみに有効である。
このパラメータは Samba サーバへのユーザの接続を記録する wtmp 、もしくは wtmpx ファイル(UNIX システムに依存する)が配置されるディレクトリを指定する。
"utmp directory" パラメータも参照のこと。デフォルトではこのパラメータは設定されておらず、"utmp" で設定された値か、システムが設定した値(Linux では通常 /var/run/wtmp)が用いられる。
既定値:
no wtmp directory
例:
wtmp directory = /var/adm/
設定ファイルは、サービス名にスペースを含んでいてもよいが、 クライアント・ソフトウェアによっては許されない場合がある。 スペースは比較時に無視されるので問題になることはない筈であるが、 可能性は考慮しておくこと。
同様な注意事項として、多くのクライアント − 特に 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)。
オリジナルの Samba ソフトウェアと関連するユーティリティは、 Andrew Tridgell samba@samba.org によって作られた。 Samba は現在 Linux カーネルが開発されているような方法での オープンソースプロジェクトである Samba Team によって開発されている。
オリジナルの Samba の マニュアルページは Karl Auer によって書かれた。 マニュアルページは YODL 形式(別の、優秀なオープンソースソフトウェアで、 ftp://ftp.icce.rug.nl/pub/unix/ にある)で変換され、Jeremy Allison によって Samba 2.0 リリースのために 更新された。 samba@samba.org.
バグレポート、コメント等の提出方法の詳細と、協力してほしい項目のすべてのリストを 得る方法は、samba (7) を参照のこと。
日本語訳
補訳・校正
追加の協力者