Name

smb.conf — Samba の設定ファイル

概要

smb.conf ファイルは Samba システムの設定ファイルである。smb.conf には、Samba システムの各プログラムが実行時に参照する設定情報が記述される。 smb.conf ファイルは、swat(8) プログラムによって設定、 管理されるように設計されている。 以下参照目的で、ファイルの形式と設定可能なパラメータに関して網羅的に記述する。

ファイルの形式

ファイルはセクションとパラメータから構成される。セクションは、 大括弧(“[” と “]”) で囲まれたセクション名で始まり、次のセクションが始まるまで 続く。セクション内には以下の形式でパラメータが記述される:

パラメータ名(パラメータ) = パラメータ値(値)

ファイルは行を基本単位とし、改行で終了する各行は、コメント、 セクション名、パラメータのいずれかを表す。

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

パラメータを示す行では、最初の 「=」 文字に重要な意味がある。 最初の 「=」 文字の前後の空白文字は破棄される。 セクション名およびパラメータ名の先頭、 途中、末尾にある空白文字は 無視される。パラメータ値の先頭と末尾にある空白文字も無視される。 ただし、パラメータ値の途中にある空白文字はそのまま意味を持つ。

セミコロン (“:”)、シャープ (“#”) で始まる行や、空白のみの行は 無視される。

\” 文字で終わる行は、UNIX の慣習通り次の行へ継続する。

「=」文字に続くパラメータ値には、文字列 (引用符で囲む必要はない)、または真偽値を表す、yes/no、0/1、true/false のいずれかを記述する。真偽値の場合、大文字と小文字は同じ意味だが、 記述されたとおりの文字列が保存される。 create mask など、幾つかのパラメータ値は数値となる。

セクションの説明

設定ファイル中の ([global] セクションを除く) 各セクションでは、 共有リソース (単に“共有”とも呼ぶ (訳注: 「サービス」とも呼ばれる)) の設定が行なわれる。 セクション名は共有リソース名となり、 セクション内のパラメータは共有の設定に利用される。

[global]、[homes]、[printers] という 3 つの特殊なセクションに ついては、特殊なセクション で説明する。 以下の説明は、通常のセクションについてのものである。

共有の設定としては、大きくアクセスを許可するディレクトリの設定と それを利用するユーザに対するアクセス許可の設定とがある。 その他いくつかの補助的なオプションの指定も可能である。

セクションは、ファイル共有サービス (クライアントからファイルシステムの延長として利用される) とプリントサービス (クライアントからサーバ上で動作している 印刷サービスにアクセスするために利用される) のいずれかに分類される。

セクションは、パスワードなしでアクセスできる ゲスト サービスとして構成することもできる。 この場合、UNIX 側で指定されたゲストアカウントの権限でアクセスが 行なわれる。

ゲストサービス以外のセクションにアクセスするにはパスワードが 必要である。通常クライアントからはユーザ名も提供されるが、 年代物のクライアントはパスワードのみでユーザ名を提供しないため、 “user =” パラメータで指定したユーザのリストを用いてパスワードの検証を 行なうことも可能である。Windows 95/98/Me/NT/2000 のような最近の クライアントでは、このパラメータは不要である。

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

以下の簡単なセクションは、ファイル共有を定義するものである。 ユーザは /home/bar に対して書き込みができる。 共有は、foo という共有名でアクセス可能である:

	[foo]
	path = /home/bar
	read only = no

以下の簡単なセクションは印刷サービスを定義するものである。 共有は読み取りのみであるが、印刷可能である。これは、 スプールファイルのオープン、書き込み、クローズという作業についてのみ書き込みが許可されるということである。guest ok パラメータは、(別途定義された) デフォルトのゲストユーザとしてアクセスが許可されていることを意味する:

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

特殊なセクション

[global] セクション

このセクション中のパラメータは、サーバ全体に対して、 もしくは各セクションで項目が定義していないときの既定値として 適用される。詳細な情報はパラメータ(PARAMETERS)の節を参照のこと。

[homes] セクション

homes セクションが設定ファイル中にあると、 接続してきたユーザのホームディレクトリを共有するサービスが 必要時にサーバによって作成されるようになる。

接続の要求が行なわれると、存在するセクションが検索される。 要求に合致するセクションが見つかった場合はそのセクションが 利用される。見つからなかった場合は、 要求されたセクション名をユーザ名とみなしてローカルのパスワードファイルが検索される。 ファイル中に名前が存在して、パスワードが適切だった場合、 [homes] セクションの設定を引き継ぐ形で共有が作成される。

新しく作成される共有に対しては、 幾つかの変更が行なわれる:

  • 共有名は、homes からユーザ名に変更される。

  • path パラメータが設定されていなかった場合、 ディレクトリのパスはユーザのホームディレクトリに設定される。

path = 行を [homes] セクションに記述した場合、"%S" マクロを用いると便利になる 場合があるかも知れない。以下に一例を示す:

path = /data/pchome/%S

これは、UNIX からのアクセスと PC からのアクセスとでホームディレクトリが異なる場合に便利である。

これは多数のクライアントに対するホームディレクトリの 提供を最小の手間で素早く簡単に実現する方法である。

要求されたセクション名が “homes” の場合にも同様の処理が行われるが、共有名が要求したユーザの 名前に変更されることはない。 [homes] セクションを使用する 方法は、複数のユーザがクライアント PC を共有する場合に 便利である。

[homes] セクションでは、通常のサービスで指定可能な すべてのパラメータを指定できるが、幾つかのものは他の セクションと少し違った意味になる。以下は典型的な [homes] セクションの例である:

[homes]
read only = no

重要な点として、[homes] セクションでゲストアクセスを許可した場合、 全てのホームディレクトリが全てのクライアントから パスワードなしで アクセス可能になるという点が挙げられる。 ほとんどあり得ないと思うが、もしこの設定を実際に行なうのであれば、読み取り専用 アクセスの設定にしておくことが好ましいであろう。

自動的に作成されるホームディレクトリの browseable パラメータの値は、[homes] セクションの browseable パラメータからではなく、[global] セクションの browseable パラメータより継承される。これは、 [homes] セクションで browseable = no を指定して [homes] 共有を不可視にしても、自動的に作成されるホームディレクトリを表示させるようにするための仕様である。

[printers] セクション

このセクションは、プリンタ用の [homes] セクションに 相当する。

[printers] セクションが設定されていると、ユーザは、 ローカルホストの printcap ファイルで設定されている各プリンタに接続することが可能となる。

接続の要求が行なわれると、存在するセクションが検索される。 要求に合致するセクションが見つかった場合はそのセクションが利用される。 見つからなかった場合、[homes] セクションがあれば前述した処理が行なわれる。 それでも要求が解決できない場合は、 要求されたセクション名をプリンタ名とみなし、 適切な pritcap ファイルが検索され、 要求されたセクション名をプリンタ共有名とみなすかどうかの 確認が行なわれる。ファイル中に名前が存在した場合は、 [printers] セクションの設定を引き継ぐ形でプリンタ共有が 作成される。

新しく作成される共有に対しては、 幾つかの変更が行なわれる:

  • 共有名には、実際のプリンタ名が設定される。

  • プリンタ名が設定されていない場合、 プリンタ名として実際のプリンタ名が設定される。

  • 共有がゲストアクセスを許可しておらず、 username パラメータも指定されていない場合、username に実際のプリンタ名が設定される。

[printers] サービスは、必ず printable にすること。 それ以外の設定を行なうと、サーバが設定ファイルの読み取りを 拒否してしまう。

通常指定されるパスは、sticky ビットが設定され、 誰でも書き込み可能になっているスプールディレクトリである。 典型的な [printers] のエントリは次のようになる:

[printers]
path = /usr/spool/public
guest ok = yes
printable = yes

printcap ファイル中で定義されているすべてのプリンタの エイリアス(別名)は、プリンタ名として認識される。 印刷システムが printcap ファイルのような機構を使用して いないのであれば、仮の printcap ファイルを設定する必要がある。 このファイルは以下のような形式の行で構成される:

alias|alias|alias|alias...    

各エイリアスは、印刷システムが処理可能なプリンタ名で ある必要がある。[global] セクションで、別のファイルを printcap ファイルとして指定することで、仮想的な printcap ファイル中にある名前のみがサーバに認識される。 もちろんこのファイル中には任意のエイリアスを記述することが 可能である。このテクニックは、ローカルプリンタの一部のみに アクセスを制限する機能を簡単に実現するためにも利用できる。

なお、エイリアスとは printcap ファイル中の各レコードの 最初のエントリに続く各要素をさす。 各レコードは改行コードで区切られ、各要素は (複数個存在する場合) 縦棒 (|) で区切られる。

Note

lpstat コマンドによりシステムで定義されている プリンタの一覧を取得可能な SYSV 系のシステムでは、 printcap name = lpstat とすることで、 プリンタの一覧を取得することが可能である。 詳細は、printcap name オプションを参照のこと。

ユーザ定義共有

Samba 3.0.23 より、root 以外のユーザが共有の追加、修正、削除を行なうことを可能とする機能が追加された。 この機能を ユーザ定義共有(usershares) と呼び、 smb.conf の セクションで定義される一連のパラメータによって制御される。 関連するパラメータを以下に示す :

usershare allow guests

ユーザ定義共有でゲストアクセスを許可するかどうかを制御する。

usershare max shares

作成を許可するユーザ定義共有の最大数を制御する。

usershare owner only

有効にすると、ユーザが所有しているディレクトリのみが共有可能となる。

usershare path

ユーザ定義共有を作成可能なディレクトリを指定する。 実際にユーザ定義共有を作成可能かどうかは、ファイルシステム上のディレクトリのパーミッションに依存する。

usershare prefix allow list

共有を許可するディレクトリの絶対パス名をコンマで区切って列挙する。 ここで指定されたパス名から始まるディレクトリのみが共有を許可される。

usershare prefix deny list

共有を拒否するディレクトリの絶対パス名をコンマで区切って列挙する。 ここで指定されたパス名から始まるディレクトリは共有を拒否される。

usershare template share

新しいユーザ定義共有を作成する際のテンプレートとなる既存の共有を指定する。 ユーザ定義共有の定義時に指定されなかったすべての共有に関するパラメータは、この共有のものが用いられる。

UNIX グループ foo のメンバにユーザ定義共有の作成を許可したい場合は、 共有の定義ファイルを格納するディレクトリを以下のように作成する:

root 権限で以下を実施:

mkdir /usr/local/samba/lib/usershares
chgrp foo /usr/local/samba/lib/usershares
chmod 1770 /usr/local/samba/lib/usershares

ついで、以下のパラメータ

	usershare path = /usr/local/samba/lib/usershares
	usershare max shares = 10 # (もしくは必要な共有数)

smb.confの global セクションに追加。 これにより foo グループのメンバは、以下のコマンドでユーザ定義共有を作成することが可能となる。

net usershare add sharename path [comment] [acl] [guest_ok=[y|n]]

これにより、ユーザ定義共有を作成もしくは修正(上書き)する。

net usershare delete sharename

ユーザ定義共有を削除する。

net usershare list wildcard-sharename

ユーザ定義共有を一覧する。

net usershare info wildcard-sharename

ユーザ定義共有の情報を表示する。

パラメータ

パラメータはセクションの属性を定義するものである。

幾つかのパラメータ (security など) は、 [global] セクションで指定する。また幾つかのパラメータ (create mask など) は、すべてのセクションで 利用可能である。それ以外のパラメータは、通常のセクションでのみ 利用できる。以下の説明では、[homes] と [printers] セクションを "通常の" セクションとして扱う。(G) がついたパラメータは、 [global] セクションでのみ指定できる。(S) がついたパラメータは、個々のサービスを表すセクションで指定できる。 ただし、(S) がついたパラメータは、[global] セクション中で指定することも可能である。この場合、それらはすべての サービスに対するデフォルト値として機能する。

パラメータはアルファベット順に説明されている。 最良の順序とはいえないが、少なくとも目的のパラメータを見つけることは できるだろう。同義語がある場合は、主として用いるべき表記の部分で 説明が行なわれ、他はその表記への参照になっている。

変数による置換

設定ファイルに記述可能な文字列の多くには、変数による置換を利用できる。 たとえば、“path = /tmp/%u” は、john というユーザ名でユーザが 接続すると、“path = /tmp/john” として解釈される。

これら置換の詳細については、各々のパラメータの説明にて 解説するが、どのパラメータに対しても適用される共通の変数置換もいくつか 存在する。それらを以下に記載する:

%U

セッションのユーザ名 (クライアントが接続時に 送信したものであるが、実際に接続したユーザ名と同じであるとは 限らない)。

%G

%U のプライマリグループ。

%h

Samba が動作しているマシンの インターネットホスト名。

%m

クライアントマシンの NetBIOS 名 (とても便利)。

Samba がポート 445 で待機している場合、クライアントがこの情報を送信しないため、この変数は利用できない。 Samba がドメインコントローラであるドメインで include パラメータにおいてこの変数を用いている場合などは、 [global] セクションで smb ports = 139 の設定を行なうこと。 これにより Samba はポート 445 で待機しなくなり、Samba 2.X で実現していた include 機能が利用できる。

%L

サーバの NetBIOS 名。これを用いることで、 クライアントから呼ばれた名前に応じて設定を変更することが 可能となる。これによりサーバは “二つの顔” を持つことができる。

%M

クライアントマシンのインターネットホスト名。

%R

プロトコルのネゴシエーションを経て選択された プロトコルレベル。これは CORE、COREPLUS、LANMAN1、LANMAN2、NT1 のいずれかの値をとる。

%d

サーバプロセスのプロセス ID。

%a

リモートマシンのアーキテクチャ。 現在認識できるのは Samba (Samba)、 Linux の CIFS ファイルシステム (CIFSFS)、 OS/2 (OS2)、 Windows for Workgroups (WfWg)、 Windows 9x/Me (Win95)、 Windows NT (WinNT)、 Windows 2000 (Win2K)、 Windows XP (WinXP)、 Windows XP 64-bit(WinXP64), 2003R2 (Win2K3)を含むWindows Server 2003 (Win2K3)と, Windows Vista (Vista) である。 それ以外のものは “UNKNOWN” となる。

%I

クライアントマシンの IP アドレス。

%i

クライアントが接続してきたサーバの IP アドレス。

%T

現在の日付と時間。

%D

現ユーザが所属するドメインかワークグループ名。

%w

Winbind のセパレータ

%$(envvar)

環境変数envvarの値。

以下の置換マクロは (すでに接続が確立されている場合に) いくつかの 設定オプションに対して有効なものである:

%S

現在のサービス名 (存在する場合)。

%P

現在のサービスのトップディレクトリ (存在する場合)。

%u

現在のサービスのユーザ名 (存在する場合)。

%g

%u のプライマリグループ。

%H

%u で指定されたユーザのホームディレクトリ。

%N

NIS のホームディレクトリサーバの名前。 これは NIS の auto.map エントリから取得される。Samba が --with-automount オプションをつけて コンパイルされていない場合、このオプションは %L と同じになる。

%p

NIS auto.map エントリから取得された サーバの ホームディレクトリのパス。NIS auto.map エントリは %N:%p のように分割されている。

これらの置換操作とその他の smb.conf のパラメータを組み合わせると、非常に凝った動作を設定できる。

名前の短縮(NAME MANGLING)

Samba は、DOS や Windows クライアントが 8.3 形式に準拠しない 名前のファイルを扱うことができるように “名前の短縮” 機能を提供している。この機能により、8.3 形式のファイル名についても 文字の case (大文字、小文字) を調整可能である。

短縮時の動作を制御するパラメータが幾つか存在しており、 それらは個々に解説を行なわず、ここでまとめて説明を行なう。 デフォルト値は testparm コマンドの出力を参照のこと。

以下のオプションは、すべて共有毎に設定できる (もちろん全体に対しても設定できる)。

オプションは以下の通りである:

case sensitive = yes/no/auto

ファイル名の case を識別するかどうかを制御する。 識別を行なわない場合、Samba は指定された名前に合致する ファイル名の有無を検索することが必要になる。デフォルトは auto であり、ファイル名の case を識別するクライアント(現在のところ Linux CIFSVFS や Samba 3.0.5 以降の smbclient) に対しては、case を識別する(UNIX の case を識別する挙動に準拠する) ファイルシステム上の Samba サーバにアクセスしているものとして通知する。 Windows および DOS システムでは case を識別するファイル名はサポートされておらず、このパラメータを auto に設定した場合、no の設定で動作する。 デフォルトは auto である。

default case = upper/lower

新しく作成されるファイル(現在ファイルシステム上に存在していないファイル)のファイル名のデフォルトの case を制御する。 デフォルトは lower である。 重要: case sensitive = yespreserve case = Noshort preserve case = No の場合、このオプションにより、新しく作られるファイル名だけではなく、クライアントから渡される すべての ファイル名の case が変更されることに注意。 非常に多くのファイルを格納するディレクトリの最適化作業の一貫として、この設定変更が必要となる。

preserve case = yes/no

新しく作成されるファイル(現在ファイルシステム上に存在していないファイル)のファイル名について、クライアントから 渡された case で作成するか、デフォルトの case で作成するかを制御する。 デフォルトは yesである。

short preserve case = yes/no

すべて大文字で適切な長さの 8.3 形式に 準拠した新しく作成されるファイル(現在ファイルシステム上に存在していないファイル)のファイル名について、大文字で作成するか、 デフォルト の case で作成するかを制御する。 このオプションにより、preserve case = yes で長いファイル名が case を保持する設定の時であっても、 短いファイル名は小文字で作成するといったことが可能になる。 デフォルトは yes である。

Samba 3.0 のデフォルトは、Windows NT のサーバと同様に動作する。 すなわち、case を識別しないが case は保持する。 ただし、大量のファイルが存在するディレクトリにおいては、case 関連のパラメータを "case sensitive = yes"、"case preserve = no"、"short preserve case = no" に設定するとよいであろう。 これにより、"default case" パラメータが有効になり、クライアントから送信されるすべてのファイル名が変更される。 (訳注: 上記設定は、case sensitive = yes によりファイル名の検索を抑止することで、パフォーマンスを向上させようとする意図だと思われる)

ユーザ名とパスワード認証についての注意

ユーザがサービスに接続するための方法は幾つかある。サーバは、 以下のステップを踏みサービスに対して接続を許可するかどうかを確認する。 すべてのステップが失敗した場合、接続要求は拒否される。 いずれかのステップで成功した場合、それ以降のステップは行なわれない。

サービスが “guest only = yes” となっており、 サーバが共有レベルのセキュリティ (“security = share”) で構成されている場合、ステップ 1 から 5 は省かれる。

  1. クライアントからユーザ名とパスワードが 提供されており、それが UNIX システムのパスワード機構によって 認証された場合、そのユーザ名を使った接続が行なわれる。この ステップは \\server\service%username 形式でユーザ名が提供された場合にも行なわれることに注意。

  2. クライアントからシステムに登録されている ユーザ名が提供された場合、そのユーザ名に対する適切な パスワードが提供されれば、接続が許可される。

  3. クライアントの NetBIOS 名および以前に使われた ユーザ名について提供されたパスワードとの確認が行なわれ、 合致すれば、対応するユーザ名を使った接続が許可される。

  4. クライアントが既にユーザ名とパスワードを 提供してサーバに認証されており、その際の認証トークンが 提示された場合、そのユーザ名が使われる。

  5. user = フィールドが smb.conf ファイルで 該当サービスに対して設定されており、クライアントから提供された パスワードが (UNIX システムのパスワード認証により) user = 行に記述されたユーザ名のいずれかのものと 合致した場合、接続は、user = 行で設定された ユーザ名で行なわれる。user = リスト中のユーザ名の 中に @ ではじまるものがあった場合、それはその名前の グループに所属するユーザ名のリストに展開される。

  6. サービスがゲストサービスの場合、 提供されたパスワードがなんであっても、そのサービスの guest account = で指定されたユーザ名で接続が 行なわれる。

レジストリベースの設定方法

Sambaのバージョン 3.2.0 から、レジストリ中にSambaの設定を 格納する機能が有効になった。Sambaの設定は、レジストリキー HKLM\Software\Samba\smbconf中に格納される。 レジストリベースの設定は2つのレベルがある。

  1. レジストリに共有の定義を格納する。 これは、smb.conf中のグローバル パラメータregistry shares を“yes”に設定することで利用可能になる。

    レジストリ定義の共有はスタートアップ時にはロードされ ないが、smbdによって、実行時に動的に ロードされる。smb.conf中の共有定義 はレジストリ中での同じ名前の共有定義に優先する。

  2. グローバルなsmb.conf オプションをレジストリに格納する。これは,以下の2つの異なった 方法で有効にできる:

    1番めは、smb.conf中の [global]セクション中のconfig backend = registryを設定することで、レジストリのみの 設定を有効にできる。これは,この時点まで読み込んだ設定ファイ ルの内容をすべてリセットし、レジストリからグローバルセク ションの内容を読む。これは、レジストリベースの設定方法を使う 時の推奨方法である。

    2番目はsmb.confの[global] セクション中の、特別に新しい意味を持つ、include = registryパラメータによって有効にできる 混成設定方法である。これは,テキストファイルをインクルード するのと同じような優先度で、レジストリからグローバルオプ ションを読む。これは,初期設定がレジストリにアクセスするのに 必要な場合に特に有益である。

    グローバルレジストリオプションの有効化は、レジストリ ベースの共有が有効になることで自動的に行われる。そのため、 レジストリのみの場合、共有は要求時にのみロードされる。

レジストリベースの設定に伴うシステムの破壊を限定的にするために、 レジストリでの設定中では、lock directoryconfig backendの使用は無効化 されることに注意。 特に、レジストリでの設定中に、lock directoryを 変更してしまい、それがいったん有効化されてしまうと、 デーモンからはそれの設定自体が見えなくなる、壊れた設定を作成することになる。

レジストリベースの設定は、キーHKLM\Software\Samba\smbconfregeditnet (rpc) registryを使ってアクセスすることもできる。 利便性のため、net(8)ユーティリティ のconfサブコマンドが、レジストリ ベースの設定をローカルに読み書きするための特別なインタフェース として提供されている。すなわち、データベースファイルに直接 アクセスし、サーバを迂回できる。

各パラメータの説明

abort shutdown script (G)

このパラメータは、 smbd(8) が呼び出すことで、 shutdown script によって実行されたシャットダウン処理を停止させるスクリプトのフルパス名である。

接続しているユーザが SeRemoteShutdownPrivilege 権限を保持している場合、このコマンドはユーザ権限で呼び出される。

既定値: abort shutdown script = ""

例: abort shutdown script = /sbin/shutdown -c

acl check permissions (S)

この真偽値パラメータは、 smbd(8) が Windows クライアントから「open for delete」というプロトコル要求を受けとった際の挙動を制御する。 Windows クライアントにファイル削除のパーミッションがない場合は、オープン時に失敗することが想定される挙動である。しかし、POSIX システムでは、実際にファイルやディレクトリを削除しようとした段階で、初めて削除のパーミッション確認が行なわれる。 Windows クライアントは「delete on close」ビットを外すことで、削除のリクエストを「取り止める」ことが可能である。 このため、Samba が「open for delete」リクエストが行なわれた時点で該当のファイルを削除してみるといった方策も、 一度削除されたファイルを復活させることはできないため難しい。 このパラメータが true (デフォルト) の場合、smbd は「open for delete」リクエストの際にファイルシステムのパーミッションを直接チェックし、 ファイルシステムのパーミッション上削除できないと考えられる場合、該当のリクエストを拒否するようになる。 これは完全な方法ではなく、Samba がパーミッションを適切に確認できない場合に、ユーザがファイルを削除できてしまう可能性があるが、 大半の場合は Windows と同様の挙動となるであろう。 通常 Samba は POSIX ACL の挙動を適切に確認できるはずである。

このパラメータを「false」に設定した場合、Samba は「open for delete」リクエストの際にパーミッションの確認を行なわずにオープンを許可する。 ユーザにファイルを削除するアクセス許可がない場合は、クローズする時までわからない。 Windows 上のツールにとって、クローズ時点でこれが判明しても遅過ぎるため、ユーザにエラーメッセージが表示されるだろう。 また、削除したように見えたファイルが Windows 側のエクスプローラで再表示すると「魔法のように」復活するといった現象も発生するであろう。 これは非常に高度なプロトコルに関するパラメータであり、通常変更する必要はないはずである。 このパラメータは Samba 3.0.21 で現在の形となったが、現在とは若干挙動が異なる古い版は Samba 3.0.20 で導入された。古い版の挙動について、ここでは言及していない。

既定値: acl check permissions = True

acl compatibility (G)

このパラメータはどの OS の ACL の挙動と互換性をとるかを指定する。 設定可能な値は、Windows NT 4.0 互換の winnt か、 Windows 2000 以上と互換の win2k もしくは auto である。 auto に設定した場合、パラメータの値はクライアントのバージョンに合わせて変更される。 このパラメータを既定値から変更する必要はないだろう。

既定値: acl compatibility = Auto

例: acl compatibility = win2k

acl group control (S)

POSIX ファイルシステムでは、ファイルまたはディレクトリの所有者とスーパーユーザのみがファイルのパーミッションや ACL を修正できる。 このパラメータを有効にすると、Samba はこの制約を無視して、 ファイルやディレクトリの プライマリグループ所有者 が、 ファイルのパーミッションや ACL を修正することを可能とする。

Windows サーバでは、グループがファイルやディレクトリの所有者となることができるため、 そのグループに所属する誰もがパーミッションを修正することができる。 これにより、ディレクトリのグループ所有者が、ファイルシステムのある地点以下のセキュリティ管理を委任することが可能となり、 その配下に作成されるファイルやディレクトリについても、そのグループが所有者となる。

このパラメータにより、公開されたディレクトリ階層内で Samba が Windows と類似した制御の制御を行なうことを可能とする。 これは、UNIX グループのメンバ全員がグループ所有者となっているファイルやディレクトリのパーミッション制御を行なうことが可能となることを意味する。

このパラメータは、inherit owner パラメータが有効で、 ディレクトリに UNIX の setgid ビット が設定された共有で用いる のが最適であり、共有内に作成される新しいファイルやディレクトリに、 親ディレクトリのグループ所有者を継承させることが可能となる。

このパラメータは、Samba 3.0.23 において、廃止予定の(deprecated)パラメータとなった。 しかし、Samba 3.0.31以降で復活し、ユーザが、所有するプライマリグループ中にいるとき、 パーミッションの変更を制御するのみになった。もはや dos filemodeオプションとは異なる。

既定値: acl group control = no

acl map full control (S)

この真偽値パラメータは、 smbd(8) が POSIX の ACE エントリでは最大のアクセス権を許可した状態である「rwx(read/write/execute)」を Windows 側の ACL の「フルコントロール」に対応づけるかどうかを制御する。 このパラメータを true に設定した場合、POSIX ACE で「rwx」のエントリに対して、Windows 側の ACL としては「フルコントロール」が返却される。 このパラメータが false に設定された場合、POSIX ACE で「rwx」のエントリに対して、 Windows 側の ACL としては read/write/execute を表すビットを設定したエントリが返却される。

既定値: acl map full control = True

add group script (G)

このパラメータは、新しいグループの作成が要求された際に、 smbd(8) によって ROOT 権限で 実行されるスクリプトのフルパス名である。 %g はグループ名に展開される。 スクリプトは Windows NT のドメイン管理ツールを使用して設定を行なう際にのみ有効である。 このスクリプトでは、UNIX側のグループ名の制約に捕らわれず、任意の名前のグループを作成することができる。 ただし、その場合スクリプトは標準出力に作成されたグループの gid の数値を表示する必要がある。

既定値: add group script =

例: add group script = /usr/sbin/groupadd %g

add machine script (G)

このパラメータは、"$"を付けたマシン名が、SambaのドメインとUnix アカウントと一致しなかった場合に、 smbd(8)がマシンを追加する時に実行されるスクリプトのフルパス名である。

このオプションは、add user scriptととてもよく 似ていて、さらに、アカウント名の置換として%uを使う。%mの置換を使ってはいけない。

既定値: add machine script =

例: add machine script = /usr/sbin/adduser -n -g machines -c Machine -d /var/lib/nobody -s /bin/false %u

add port command (G)

Samba 3.0.23 では、Windows の"Add Standard TCP/IP Port ウィザード"によるリモートからのプリンタポートの追加がサポートされた。 このオプションは、smbd がシステムに対する新しいポートの追加要求を受信した際に、 実行される外部のコマンドを定義する。 スクリプトは以下の 2 つのパラメータをとる。

  • ポートの名称

  • device URI

deviceURI は socket://<hostname>[:<portnumber>] もしくは lpd://<hostname>/<queuename> のように指定する。

既定値: add port command =

例: add port command = /etc/samba/scripts/addport.sh

add printer command (G)

Samba 2.2における Windows NT/2000 クライアントに対応した MS-RPC ベースの印刷サポートの実装にともない、 共有の一覧に表示される"Printers... " フォルダ中の "プリンタの追加"ウィザード(Add Printer Wizard (APW))アイコンを利用することが可能になった。 APWにより、SambaやWindows NT/ 2000プリンタサーバに別のマシンからのプリンタ追加が可能となった。

Sambaホストの場合、これは、下位レイヤの印刷システムにプリンタを物理的に追加できる必要があるということである。 add printer command は、 印刷システムにプリンタを追加するとともに、 smb.conf ファイルに対して、 smbd(8) によって共有が行なわれるサービスのエントリを適切に追加するのに必要な処理を行なうスクリプトを設定する。

add printer command は 以下のパラメータを(順番に)付加して自動的に実行される:

  • printer name

  • share name

  • port name

  • driver name

  • location

  • Windows 9x driver location

すべてのパラメータは、一つの例外を除き、 Windows NT/2000 クライアントから送信される PRINTER_INFO_2 構造体から取得される。 "Windows 9x driver location"パラメータは、下位互換性を保つためにのみ提供される。 それ以外の構造体のフィールドは、APWの問い合わせに対する回答から生成される。

add printer command が実行されると、 smbd は、 smb.conf を再度読み込んで、 APWで設定された共有がすでに存在していないかを確認する。 共有名が不正な場合、smbd は、 クライアントに対して ACCESS_DENIED エラーを返却する。

addprinter commandは Samba が新しいプリンタが接続するポートとして設定した 文字列からなる1行を返却する。 返却されない場合、Samba は印刷共有の再読み込みを行なわない。

既定値: add printer command =

例: add printer command = /usr/bin/addprinter

add share command (G)

Samba 2.2.0 では、Windows NT 4.0 のサーバーマネージャーを利用して共有設定を を追加・削除する機能が追加された。 add share command は、 smb.confに新しいサービスの設定を追加 する外部のプログラム、もしくはスクリプトを設定するためのパラメータである。

add share command を実行するため、管理者は smbd にroot アカウント(uid = 0)で接続するか、アカウントにSeDiskOperatorPrivilege が付与されている必要がある。 add share commandで指定された スクリプトはroot権限で実行される。

コマンド実行時に、smbdは自動的に以下の 5 つの引数を付加してadd share commandを実行する。

  • configFile - smb.confの場所

  • shareName - 新しい共有名

  • pathName - ディスク上に「存在している」ディレクトリへのパス名

  • comment - 新しい共有に対するコメント文字列

  • max connections 共有への最大同時接続数。

このパラメータは、ファイル共有の追加にのみ使われる。印刷共有の追加については、 addprinter command を参照のこと。

既定値: add share command =

例: add share command = /usr/local/bin/addshare

add user script (G)

このパラメータは、以下に記述する特別な条件下において、 smbd(8) によって ROOT 権限で 実行されるスクリプトのフルパス名である。

通常、Samba サーバでは、サーバ上のファイルにアクセスするすべてのユーザに対して対応する UNIX ユーザが存在している必要がある。しかし、Windows NT のアカウントデータベースをユーザデータベースのマスタとして使うサイトでは、 Samba サーバ上のユーザの作成や保守を Windows NT の PDC と同期して行なうのは骨の折れる作業である。このオプションにより、Samba サーバに対してユーザがアクセスした時点で smbd が UNIX のユーザを 必要に応じて 作成することが可能になる。

このオプションを使う場合、 smbd(8)決して security = share で構成されていてはならず、 add user script には、 作成される UNIX のユーザ名を表す %u を引数にとり、 UNIX ユーザを作成するスクリプトのフルパス名が設定されている必要がある。

Windows のユーザが Samba サーバにアクセスしようとして、 ログイン(SMB プロトコルの session setup) を行なう時に、 smbd(8) は、送信されたユーザ名とパスワードを認証するために、 password server と通信を行なう。 認証が成功すると、 smbd は UNIX 上のパスワードデータベース中から対応する UNIX のユーザを検索して Windows のユーザに対応づけようとする。この検索が失敗し、 add user script が設定されていると、 smbd は、 %u 引数を作成すべきユーザ名に展開した上で、 設定されたスクリプトを ROOT 権限で 呼び出す。

スクリプトがユーザの作成に成功すると、 smbd は、その UNIX ユーザがすでに存在していたかのようにして処理を継続する。このようにして、存在する Windows NT のアカウントに対応する UNIX のユーザが動的に作成される。

(訳注: この他に、Samba のドメイン環境において add user script はリモートからの要求によりユーザを作成するという重要な役割がある。)

security, password server, delete user script も参照のこと。

既定値: add user script =

例: add user script = /usr/local/samba/bin/add_user %u

add user to group script (G)

このパラメータは、 Windows NT のドメイン管理ツールによってユーザにグループが追加された際に実行されるスクリプトのフルパス名である。 これは smbd(8) によって ROOT 権限で 呼び出される。 %g はグループ名に置換され、 %u はユーザ名に置換される。

adduser コマンドは、すべてのシステムにおいて、 以下の例で用いた構文をサポートしているわけではないことに注意。

既定値: add user to group script =

例: add user to group script = /usr/sbin/adduser %u %g

administrative share (S)

このパラメータが共有のために yes になっている場合、その共有は管理用となる。管理用の共有は Windows NT ベースのすべてのオペレーティングシステムで作られるデフォルトの ネットワーク共有であり、C$, D$, ADMIN$ などと同様のものである。 これらの共有のタイプは STYPE_DISKTREE_HIDDEN となる。

このオプションに関する詳細は、後述の security を参照してほしい。

既定値: administrative share = no

admin users (S)

このパラメータは、共有上で管理者権限が与えられるユーザのリストである。 指定されたユーザは、すべてのファイル操作をスーパーユーザ (root) として実行できる。

このリストに登録されているユーザは、 ファイルのパーミッションに関係なくあらゆる操作を行うことができてしまうため、 このオプションは十分に注意して使用すべきである。

このパラメータは、 Samba 3.0 における security = share 環境では動作しない。 これは仕様である。

既定値: admin users =

例: admin users = jason

afs share (S)

このパラメータは、共有に対して AFS 特有の機能を有効にするかどうかを指定する。 もし有効な場合、path パラメータでエクスポートされているディレクトリをローカルの AFS インポートとして扱う。 特殊な AFS の機能というのは、もし configure 時に --with-fake-kaserver オプションを有効にした場合に、 AFS トークンを作成しようとする機能などが含まれる。

既定値: afs share = no

afs username map (G)

ダミーの kaserver の AFS 機能を使用している場合、 作成するトークンのユーザ名を指定したい場合もあるだろう。 たとえば、AFS Protection Database に複数のドメインのユーザが混在している場合などが挙げられる。 一つの解決策は、winbind と同じように + をセパレータとして DOMAIN+User と指定することである。

マップされたユーザ名はログインするためのセル名を含んでいる必要がある。 そのため、このパラメータが指定されていない場合、トークンは使用されない。

(訳注: AFSに関する知識不足のため、訳の正確性については担保できない)

既定値: afs username map =

例: afs username map = %u@afs.samba.org

aio read size (S)

Samba が非同期 I/O サポート付きでビルドされていて、かつこの整数パラメータ が非ゼロ値にセットされている場合、ファイルリードする際に要求された I/O サイズがこの値より大きければ、Samba は非同期リードを行う。 注意:非同期リードが行われるのは、non-chained と non-chaining リードで、 かつライトキャッシュを使わない場合に限られる。

Samba 3.0 における非同期 I/O におけるサポートは、リードとライトを合わせて 10個までの、未解決の非同期リクエストに限られる。

Related command: write cache size

Related command: aio write size

既定値: aio read size = 0

例: aio read size = 16384 # リクエストサイズが 16KB を超えるリードについて非同期 I/O を使用する。

aio write size (S)

Samba が非同期 I/O サポート付きでビルドされており、かつこの整数パラメータ が非ゼロ値にセットされている場合、ファイルをライトする際に要求された I/O サイズがこの値より大きければ、Samba は非同期ライトを行う。 注意:非同期ライトが行われるのは、non-chained と non-chaining ライトで、 かつライトキャッシュを使わない場合に限られる。

Samba 3.0 における非同期 I/O におけるサポートは、リードとライトを合わせて 10個までの、未解決の非同期リクエストに限られる。

Related command: write cache size

Related command: aio read size

既定値: aio write size = 0

例: aio write size = 16384 # リクエストサイズが 16KB を超えるライトについて非同期 I/O を使用する。

algorithmic rid base (G)

このパラメータにより、 Samba が UID や GID を NT セキュリティ識別子(訳注:SID)の構築に必要な RID に機械的に対応づける際の RID の値が設定される。

Windows NT/2000 から移行を行なうサイトでは、存在しているユーザやグループの RID がシステムのユーザと競合してしまうことを防ぐため、この値を大きい値にすることが有用な場合もあるだろう。

サーバ上の ACL が正しく機能する上では、すべての UID および GID が SID に変換できることが必須である。 このため、機械的な対応づけを無効にせずに、一定の範囲を対象領域から除外することが、 問題を避ける上で必要である。 RID の競合に対応したパスワード機構において、ユーザおよびグループには、 「小さな」 RID が割り当てられる。

既定値: algorithmic rid base = 1000

例: algorithmic rid base = 100000

allocation roundup size (S)

このパラメータにより、管理者が Windows クライアントから見たアロケーションサイズを切り上げることが可能となる。 デフォルトのサイズである 1MB にすることで、通常 Windows クライアントのパフォーマンスは向上する。 ただし、Visual Studio のように、 アロケーションサイズを切り上げることで問題が発生するアプリケーションもある。 Visual Studio のコンパイラーが内部エラーでクラッシュしてしまうような場合は、 該当の共有でこのパラメータを 0 に設定すること。

このパラメータには、切り上げるサイズをバイト単位の整数値で指定する。

既定値: allocation roundup size = 1048576

例: allocation roundup size = 0 # (to disable roundups)

allow trusted domains (G)

このパラメータは、security パラメータが serverdomain もしくは ads に設定されている時のみ有効である。 no に設定されている場合、 smbd が動作しているドメインもしくはワークグループ外からのリソースへの接続要求は、失敗する。 これは、たとえそのドメインが認証を行なうサーバによって信頼されている場合であっても同様である。

このオプションは、 Samba サーバが所属するドメインのユーザのみにリソースを提供させたい場合に便利である。 一例として DOMA と DOMB という 2 つのドメインがあって、 DOMA は Samba サーバを含み、DOMB を信頼している場合を想定する。 通常の条件では、DOMB中にアカウントを持つユーザは、 Samba サーバに同じ名前の UNIX アカウントがあれば、 DOMA にアカウントがなくてもリソースにアクセスできるため、 セキュリティ境界の区分けが困難である。

既定値: allow trusted domains = yes

announce as (G)

このパラメータは、 nmbd(8) が、 自身を「ネットワークコンピュータ」中のブラウズリストにアナウンスする際のサーバの種類を指定する。 デフォルトでは Windows NT に設定されている。有効な値は: 「NT Server」(これは「NT」と表記することもできる)、 「NT Workstation」、「Win95」、「WfW」であり、各々 Windows NT Server、 Windows NT Workstation、Windows 95、Windows for Workgroups を意味する。 変更を行なうと、Samba サーバがブラウザサーバ(訳注: ポテンシャルブラウザの意?)に正しく参加できなくなるかも知れないため、 Samba サーバを NT サーバとして表示させたくない特別な理由がない限り、 このパラメータを変更しないこと。

既定値: announce as = NT Server

例: announce as = Win95

announce version (G)

このパラメータは、 nmbd が自身をサーバとしてアナウンスする際に指定するメジャーおよびマイナーバージョン番号を指定する。 デフォルトは 4.9 である。 Samba サーバをより下位のサーバとして設定する特別な必要性がない限り、このパラメータは変更しないこと。

既定値: announce version = 4.9

例: announce version = 2.0

auth methods (G)

このパラメータにより、管理者は smbd がユーザ認証を行なう際に使用する認証機構を選択することが可能となる。 このパラメータのデフォルトは、security パラメータに基づいて適切な値が設定される。 このオプションは開発者向けであり、 特殊な状況でのみ使用するものと考えるべきである。 実際の運用では多くの場合 (必ずというわけではない)、デフォルト設定のままにしておくべきである。

ユーザが認証されるまで、 リスト中の各エントリによって順番にユーザ認証が行なわれる。 従って、実際に認証が成功となる認証機構は1つだけである。

設定可能な値としては、guest (匿名アクセス)、 sam (NetBIOS名あるいはドメイン名に基づくローカルのアカウントリストの検索)、 winbind (winbinddによるリモートユーザーの認証要求の中継)、 ntdomain (winbindd 導入以前のリモートドメインユーザーの認証方法。 現在は winbindd を使用する方が望ましいので使用すべきではない)、 trustdomain (信頼できるユーザーの、smbd からリモート DC への直接アクセスによる認証。 現在は winbindd を使用する方が望ましいので使用すべきではない) がある。

既定値: auth methods =

例: auth methods = guest sam winbind

available (S)

このパラメータにより、サービスを「無効」とすることが可能である。 available = no の場合、 サービスに対する接続はすべて失敗する。これらの失敗は記録される。

既定値: available = yes

bind interfaces only (G)

このグローバルパラメータにより、 Samba 管理者が SMB 要求を受け付けるインタフェースを制限できるようになる。 この影響は、ファイルサービス smbd(8) とネームサービス nmbd(8) とで多少異なる。

このパラメータを指定すると、ネームサービス nmbd は、 interfaces パラメータで指定されたインタフェースのポート 137 と 138 にバインドする。 nmbd は、ブロードキャストメッセージを受信するために、 「すべてのアドレス」となるインタフェース (0.0.0.0) のポート 137 と 138 にもバインドする。このオプションが設定されていない場合、 nmbd は、これらすべてのソケットに対してネームサービスを提供する。 bind interfaces only が設定されていると、 nmbd はブロードキャストパケットの送信元アドレスを確認して、 interfaces パラメータで指定されたインタフェースのブロードキャストアドレスを経由しないパケットを破棄する。 他のソケットでユニキャストパケットを受信した場合、 nmbd は、 interfaces パラメータで指定されたインタフェースを経由しないパケットを送出したマシンに対してはネームサービスを拒否する。 もっとも、IP ソースアドレスを偽造 (spoofing) することで、この単純なチェックは破られてしまう。 そのため、このパラメータを nmbd のセキュリティ機能と位置付けて本格的に利用すべきではない。

ファイルサービスの場合、このパラメータを指定すると、 smbd(8)interfaces パラメータで指定されたインタフェースにのみバインドするようになる。 これにより、 smbd がサービスを提供するネットワークを指定したインタフェース経由のものに制限することが可能である。 PPP などの間欠的なネットワークインタフェースや、非ブロードキャストなネットワークインタフェースにサービスを提供している場合は、 これらの非永続的なインタフェースをうまく処理できないため、このパラメータを使わないこと。

bind interfaces only が設定されているが、 127.0.0.1 のネットワークアドレスが interfaces パラメータに指定されていない場合は、 以下に示すような理由のため、smbpasswd(8)swat(8) などが期待したように動作しないことがある。

ユーザの SMB パスワードを変更するために、 smbpasswd はデフォルトで localhost - 127.0.0.1 のアドレスに SMB クライアントとして接続を行ない、パスワード変更要求を送信する。 bind interfaces only が設定されているにも関わらず、 127.0.0.1 のネットワークアドレスが interfaces パラメータに含まれていなかった場合、 smbpasswd のデフォルトの状態では接続に失敗してしまう。 smbpasswd については、 smbpasswd(8)-r remote machine パラメータを指定して、 remote machine にローカルホストのプライマリインタフェースのIPアドレスを設定することにより、 強制的にローカルホストのプライマリIPインタフェースを利用させることも可能である。

swat のステータス(status)ページは、 smbdnmbd が実行されているかを確認するために、 127.0.0.1 から接続を行なおうとする。 そのため、127.0.0.1を追加していない場合、 smbdnmbd は実際には動作している場合でも、 常に「not running」と表示される。更に、 swat から smbdnmbd の開始/停止/再起動を行なうこともできなくなる。

既定値: bind interfaces only = no

blocking locks (S)

このパラメータは、クライアントからオープン中のファイルの一部範囲に対して、 バイト範囲のロック(byte range lock)が要求された際に、タイムアウトが発生した場合の smbd(8) の動作を制御する。

このパラメータが設定されている場合にロック範囲の要求が即座に処理できない場合、 Samba は内部的にロック要求をキューイングして、タイムアウトが来るまで定期的にロックを取得する動作を行なう。

このパラメータが no の場合、 Samba は以前のバージョンの Samba (訳注: Samba 1.9.x 以前)と同様に振舞い、 ロック範囲が取得できない場合にただちにロック要求を失敗させる。

既定値: blocking locks = yes

block size (S)

このパラメータにより、ディスクの空き領域を報告する際の smbd(8) の動作が制御される。 デフォルトでは、ディスクのブロックサイズを 1024 バイトとして報告が行なわれる。

このパラメータを変更した場合、クライアントからの書き込みに影響がでることが予想されるが、確認されていない。このパラメータは、熟練した管理者が(通常より大きい値に)変更を行なうことで、再コンパイルを行なうことなく、クライアントからの書き込みパフォーマンスへの影響をテストすることを可能とするために追加された。これは実験的なオプションのため、将来のリリースでは削除されるかも知れない。

このオプションを変更しても、報告されるディスクの空き容量自体は変わらない。クライアントに報告されるディスクのブロックサイズが変更されるだけである。

既定値: block size = 1024

例: block size = 4096

browsable

このパラメータは右記のパラメータの別名である:browseable.

browseable (S)

このパラメータは、net view コマンドやブラウズリスト中に現れる利用可能な共有の一覧にこの共有を表示させるかどうかを制御する。

既定値: browseable = yes

browse list (G)

このパラメータは、クライアントからの NetServerEnum コールに対して、 smbd(8) がブラウズリストを提供するかどうかを制御する。 通常 true に設定されている。 これを変更する必要はまずないであろう。

既定値: browse list = yes

casesignames

このパラメータは右記のパラメータの別名である:case sensitive.

case sensitive (S)

name mangling セクションでの説明を参照のこと。

既定値: case sensitive = no

change notify (S)

このパラメータは、Samba がクライアントからのファイル変更通知要求に対して 返信するべきかどうかを指定する。

このパラメータを変更する必要はないはずである

既定値: change notify = yes

change notify timeout (S)

この SMB により、クライアントは指定したディレクトリが変更されていないかをサーバに「監視」させ、なんらかの変更が発生した際にのみ、その SMB 要求に返答させるということが可能になる。こうした定常的なディレクトリの監視は、 UNIX では高負荷な作業になるため、 smbd(8) デーモンは change notify timeout で設定された秒毎に、要求された各ディレクトリの監視を行なう。 Samba 3.0.23 以降、このパラメータは共有単位のパラメータに変更され、 このパラメータを 0 に設定することで change notify 機能による共有内のディレクトリ走査を完全に抑止することが可能となった。 大量のディレクトリが存在するため、(大量のファイルを削除すると) 削除処理のたびに Windows クライアントが change notify によりディレクトリ全体の再走査を何度も繰り返すような共有において、このパラメータを 0 に設定することが可能となった。 この change notify 処理は、システムによっては非常に負荷のかかる処理となる。

既定値: change notify timeout = 60

例: change notify timeout = 300 # スキャン間隔を 5 分毎にする。

change share command (G)

Samba 2.2.0 では、Windows NT 4.0 のサーバーマネージャーを利用して共有設定を を追加・削除する機能が追加された。 change share command は、 smb.confの既存のサービスの設定を変更 する外部のプログラム、もしくはスクリプトを設定するためのパラメータである。

change share command を実行するため、管理者は smbd にroot アカウント(uid = 0)で接続するか、アカウントにSeDiskOperatorPrivilege が付与されている必要がある。 add share commandで指定された スクリプトはroot権限で実行される。

コマンド実行時に、smbdは自動的に以下の 5 つの引数を付加してchange share commandを実行する。

  • configFile - smb.confの場所

  • shareName - 新しい共有名

  • pathName - ディスク上に「存在している」ディレクトリへのパス名

  • comment - 新しい共有に対するコメント文字列

  • max connections 共有への最大同時接続数。

このパラメータは、ファイル共有設定の変更にのみ使われる。印刷共有の設定を 変更にするには、共有されているホストのプリンタフォルダを使用する。

既定値: change share command =

例: change share command = /usr/local/bin/changeshare

check password script (G)

パスワードの複雑性を検証するためのプログラム名を指定する。 パスワードはプログラムの標準入力に送られる。

プログラムは、パスワードが良好であった場合に 0 を、それ以外の場合は他の値を返却しなければならない。 パスワードが脆弱であると判断された(プログラムが 0 を返却しなかった)場合、 ユーザには、パスワード変更の失敗が通知される。

example ディレクトリに、crackcheck という サンプルのプログラムがある。 これは cracklib を用いてパスワードのチェックを行なっている。

既定値: check password script = Disabled

例: check password script = /usr/local/sbin/crackcheck

client lanman auth (G)

このパラメータは、smbclient(8) などの Samba のクライアントツールが 脆弱な LANMAN パスワードハッシュを使用した認証を行なうか否かを制御する。 無効にした場合、 Samba クライアントからは、NT パスワードハッシュを利用するクライアント (Windows NT/2000クライアント、Samba など。しかし Windows 95/98 は含まない) に対してのみ接続できる。

LANMAN 暗号化レスポンスは簡単に解読することが可能である。 これは大文字と小文字を区別しないことや、使用しているアルゴリズムなどに起因する。 Windows 95/98 サーバが存在しない場合は、このオプションを無効にした方がよいだろう。

このオプションを無効にすると、client plaintext auth オプションも同時に無効となる。

同様に、 client ntlmv2 auth パラメータを有効にした場合、NTLMv2 ログインのみが可能となる。

既定値: client lanman auth = no

client ldap sasl wrapping (G)

client ldap sasl wrapping は、ldapとの通信が 署名付きか、署名+暗号化(シールされている)かを定義する。設定可能な値は、 plain, signsealである。

signsealは、 もしもSambaが最新のOpenLDAPバージョン(2.3.xかそれ以降)とともに コンパイルされた時に有効である。

このオプションは、(たとえば Windows 2000 SP3 またはそれ以降の)署名された LDAP接続を使うことを強制するドメインコントローラの場合に必要である。 LDAP署名と暗号化LDAP接続は、Windowsサーバ側のレジストリキー "HKLM\System\CurrentControlSet\Services\ NTDS\Parameters\LDAPServerIntegrity" によって制御する事が出来る。

使用するKRB5ライブラリ(MITと古いバージョンのHeimdal)に依存するが、 メッセージ "integrity only" はサポートされないことが可能である。この場合、 signsealのための単なる別名である。

既定値はplainで、これは、KRB5のクロックスキュー エラーに対して過敏ではない。これは、signsealを使う場合においてはKDCとの時刻同期があること を暗黙的に示している。

既定値: client ldap sasl wrapping = plain

client ntlmv2 auth (G)

このパラメータにより、smbclient(8) がサーバへの接続時に NTLMv2 暗号化パスワードレスポンスを使用した認証を行なうかどうかが設定される。

有効にすると、NTLMv2 および LMv2 レスポンス(両方とも以前のバージョンよりはセキュアである) が送信される。 ただし、多くのサーバ(Windows NT 4.0 SP3以前、Windows 9x および Samba 2.2)は NTLMv2 と互換性がない。

同様に、有効にした場合 NTLMv1、 client lanman auth および client plaintext auth 認証は無効となる。また、共有レベルの認証も同時に無効となる。

無効にした場合、 NTLM レスポンス (および可能であれば LANMAN レスポンス) が、client lanman auth の値に応じてクライアントから送信される。

サイトによっては (特に「ベストプラクティス」のセキュリティポリシーを適用しているサイト)、NTLMv2 のみを許可し、脆弱な LM および NTLM レスポンスは許可していない。

既定値: client ntlmv2 auth = no

client plaintext auth (G)

このパラメータは、サーバが暗号化パスワードをサポートしていない場合にクライアントから平文パスワードを送出するかどうかを制御する。

既定値: client plaintext auth = yes

client schannel (G)

このパラメータはクライアントが netlogon セキュアチャネルの使用を有効にするか、もしくは要求するかを制御する。 client schannel = no はセキュアチャネルを有効にしない。 client schannel = auto はセキュアチャネルを有効にするが、強制はしない。 client schannel = yes はサーバが netlogon セキュアチャネルを理解できない場合、アクセスを許可しない。

既定値: client schannel = auto

例: client schannel = yes

client signing (G)

このパラメータは、クライアントがサーバと通信する際に SMB 署名を有効にするか、もしくは強制するかを設定する。 設定可能な値は、automandatorydisabled である。

auto に設定した場合、SMB 署名が有効になるが、強制はしない。 mandatory に設定すると、SMB 署名が必須となる。disable に設定すると、SMB 署名は有効にならない。

既定値: client signing = auto

client use spnego (G)

この値により、Samba クライアントが認証の際に Simple and Protected NEGOciation (RFC2478 で規定) をサポートしたサーバ (Windows XP 、 Windows 2000 、Samba 3.0 を含む) に対して SPNEGO の使用を試みるかどうかが制御される。 SPNEGO は Kerberos 認証の際に有効となる。

既定値: client use spnego = yes

cluster addresses (G)

このパラメータを使うと、nmbd が WINS サーバに登録する追加のアドレスを 付加することができる。これらのアドレス(群)は、すべてのノード上で 同時に存在しなければならないわけではないが、これらは WINS サーバに 登録されるため、クライアントはこれらのうちのどのノードにも接続できる。

既定値: cluster addresses =

例: cluster addresses = 10.0.0.1 10.0.0.2 10.0.0.3

clustering (G)

このパラメータは、Samba が ctdb に接続して tdb ファイルにアクセスし、 さらにメッセージ処理のバックエンドとして ctdb を使うべきかどうかを 指定する。

ctdb が動作している状態でクラスタ構成を取る場合にのみ、 このパラメータを yes にすること。

既定値: clustering = no

comment (S)

これは、クライアントから「ネットワークコンピュータ」や net view コマンド経由でサーバ上で利用可能な共有を一覧する際に、共有名の横に表示される文字列である。

コンピュータ名の横に表示される文字列を設定したい場合は、server string パラメータを参照のこと。

既定値: comment = # コメント文字列なし

例: comment = Fred's Files

config backend (G)

設定内容を格納するためのバックエンドを切り替える。設定可能な値は file(デフォルト)およびregistry である。smb.conf を読み込んでいる途中で config backend = registry を検出すると、それまでに読み込まれた設定内容は破棄され、その代りに グローバルオプションがレジストリから読み込まれる。つまり、これは レジストリのみの設定にするための仕組みである。共有の定義は即時には 読み込まれないが、その代りに registry sharesyes にセットしてくれる。

注意:このオプションは、レジストリ設定自身の中でセットすることもできる。

既定値: config backend = file

例: config backend = registry

config file (G)

このオプションを指定することで、デフォルトの設定ファイル (通常smb.conf)の代わりのファイルを利用して、 設定を上書きすることが可能になる。このオプション自身が config file 中に記述されるため、これには「鶏と卵」問題がある。

そのため、このパラメータによって設定ファイルが変更されると、 新しい設定ファイルの内容が先頭からロードされる。

このオプションには、通常の変数置換が適用されるので、 うまく使えばとても便利であろう。

指定された設定ファイルが存在しない場合は読み込まれない (これにより、特定クライアントに対して、 特別な設定ファイルを指定するということが可能となる)。

既定値なし

例: config file = /usr/local/samba/lib/smb.conf.%m

copy (S)

このパラメータにより、サービスエントリの「複製」 が可能となる。指定されたサービスの設定が単純に現在のサービスへと複製される。 現在のセクションに設定されているパラメータは、 複製元のセクションの設定を上書きする。

この機能を使うと、「ひな型(template)」となるサービスを作成した上で、 同様の設定のサービスを単純に作成するということが可能となる。 複製元のサービスは、 設定ファイル内で複製先のサービスより前に記述する必要があることに注意。

既定値: copy =

例: copy = otherservice

create mode

このパラメータは右記のパラメータの別名である:create mask.

create mask (S)

ファイル作成時に付与されるパーミッションは、 DOS の属性を UNIX のパーミッションに変換することにより生成されるが、 最終的には、このパラメータとビット単位の AND 演算が行なわれる。 このパラメータは、ファイルの UNIX のパーミッションに対するビットマスクと 考えることができる。ここで設定されないビットは、 ファイル作成時のパーミッションから削除される。

このパラメータのデフォルト値は、 「group」「other」の書き込みおよび実行権を UNIX のパーミッションから取り除いた値である。

この処理に引続き、Samba はこのパラメータにより生成されたパーミッションを force create mode パラメータの値とビット単位の OR 演算を行なう。 なおパラメータの値はデフォルトで、000 に設定されている。

このパラメータは、ディレクトリのパーミッション生成には関与しない。 directory mask パラメータを参照のこと。

このパラメータは、Windows NT/2000 の ACL エディタにより設定されるアクセス許可には関与しない。 管理者が ACL に対するビットマスクも同様に設定したいと考えている場合は、 security mask の設定が必要である。

既定値: create mask = 0744

例: create mask = 0775

csc policy (S)

このパラメータは、クライアントサイドのキャッシングポリシーを規定し、 オフラインキャッシュ機能を持つクライアントが、 共有上のファイルをどのようにキャッシュするかを規定する。 有効な値は、manual, documents, programs, disable である。

これらの値は、Windows のサーバ側の設定に対応している。

例えば、移動プロファイルが格納されている共有では、 csc policy = disable とすることで、 オフラインキャッシュを無効にできる。

既定値: csc policy = manual

例: csc policy = programs

ctdbd socket (G)

clustering=yes の指定を行う場合は、 ctdbd がどの unix ドメインソケットを監視するのかを、Samba に対して 教えてやる必要がある。ctdb 1.0 におけるデフォルトのパスは /tmp/ctdb.socket であるが、これを smb.conf で明示してやらなければならない。

既定値: ctdbd socket =

例: ctdbd socket = /tmp/ctdb.socket

cups options (S)

このパラメータは printingcups に設定されている場合のみ有効である。 この値は、 CUPS ライブラリに直接渡されるオプションを記述した任意の形式の文字列である。

CUPS で有効な一般の印刷オプション ( CUPS の「Spftware Users' Manual」に記載されているもの ) はすべて設定できる。 また、設定対象のキューで有効な ( 「lpoptions -d printername -l」で表示される ) 任意のプリンタ固有のオプションも設定できる。 複数のパラメータは、ABNF指定のPAPIテキストオプションに準じた、空白で 分離された名前/値ペアでなければならない。複数の値を持つ場合 ("name={a=... b=... c=...}")は、中括弧がそのままで格納される。

Windows クライアントが Samba を経由して印刷を行なう際に CUPS サーバの error_log ファイルに 「Unsupported format 'application/octet-stream'」といったメッセージが含まれている場合、 このパラメータを raw に設定するとよい。 現在では /etc/cups/mime.{convs,types} において、 システム全体で raw 印刷を有効にする必要はない。

既定値: cups options = ""

例: cups options = "raw,media=a4

cups server (G)

このパラメータは printingcups に設定されている場合のみ有効である。

このパラメータが設定されると、CUPS の client.conf で設定された ServerName オプションの値が置き換えられる。 これは、仮想 Samba サーバ毎に異なる CUPS デーモンに接続する際に必要である。

なお、サーバ名に引続きコロンの後ろにポート番号を記述することで、ポー ト番号を指定することも可能である。 ポートの指定が行なわれ名張った場合、IPP のデフォルトポート (631) が用いられる。

既定値: cups server = ""

例: cups server = mycupsserver

例: cups server = mycupsserver:1631

deadtime (G)

このパラメータの値(10進の整数)は、接続が利用されなくなったとみなされて切断が行なわれるまでの経過時間(分)を表す。 deadtime はオープンされているファイルが存在しない時のみ有効である。

このパラメータは、多数の利用されていない接続によって、サーバ上のリソースが枯渇するのを防ぐのに有効である。

多くのクライアントは、このパラメータをユーザに意識させないように、接続が切断されていた際に、自動で再接続を行なう機能を持っている。

ほとんどのシステムにおいて、このパラメータを利用して、数分でタイムアウトが発生するようにすることを推奨する。

deadtime が 0 の場合、タイムアウトによる自動的な切断は行なわれない。

既定値: deadtime = 0

例: deadtime = 15

debug class (G)

このブール値パラメータが有効の場合、デバッグ用ヘッダの中にデバッグクラス (DBGC_CLASS) が表示される。

現在利用可能なデバッグクラスに関する詳細は、log level の章を参照してほしい。

既定値: debug class = no

debug hires timestamp (G)

ログメッセージに秒単位以上のタイムスタンプが必要な場合、 この真偽値のパラメータを有効にすることにより、 マイクロ秒単位のタイムスタンプがメッセージに付加される。

このパラメータを有効にする際は、 debug timestamp が有効になっている必要があることに注意。

既定値: debug hires timestamp = no

debug pid (G)

fork されて生成された smbd(8) プロセスが同一のログファイルを共用している場合、 どのプロセスがメッセージを出力しているかを識別することは非常に難しい。 この真偽値パラメータを有効にすることで、ログファイル中のタイムスタンプメッセージのヘッダにプロセスIDが付加されるようになる。

このパラメータを有効にする際は、 debug timestamp が有効になっている必要があることに注意。

既定値: debug pid = no

debug prefix timestamp (G)

このオプションを有効にすると、デバッグメッセージにタイムスタンプメッセージ ヘッダが付くようになる。ただし debug timestamp に含まれるファイル名や関数情報には付加されない。 タイムスタンプを表すためだけに、新たなデバッグ行が発生することはない。

注意:このパラメータは debug timestamp を上書きする。

既定値: debug prefix timestamp = no

timestamp logs

このパラメータは右記のパラメータの別名である:debug timestamp.

debug timestamp (G)

Samba のデバッグログのメッセージには、 デフォルトでタイムスタンプが付加されるが、 高い、debug level を設定している場合、 このタイムスタンプが目障りに感じることもあるだろう。 この真偽値パラメータにより、タイムスタンプの付加を抑止することができる。

既定値: debug timestamp = yes

debug uid (G)

Samba は root 権限で動作する時もあれば、 接続したユーザの権限で動作する時もある。 このパラメータを有効にすると、現在の euid、egid、uid、gid をログファイル中のタイムスタンプメッセージに付加する。

このパラメータを有効にする際は、 debug timestamp が有効になっている必要があることに注意。

既定値: debug uid = no

default case (S)

name mangling セクションを参照のこと。 short preserve case パラメータにも注意。

既定値: default case = lower

default devmode (S)

このパラメータは、printable サービスにのみ適用される。 smbd が、Windows NT/2000/XP クライアントに対してプリンタドライバを提供する際に、 Samba サーバ上の各プリンタでは、用紙サイズ、用紙の方向、両面印刷指定、 settings といった情報が定義されたデバイスモード(device mode)という値を設定する必要がある。 デバイスモードの適切な値は、プリンタドライバ自身のみが生成することができる (この処理は、Win32 プラットフォームでのみ実行することができる)。 smbd はデバイスモードを生成するドライバのコードを実行できないため、 このフィールドのデフォルト値としては、NULL が設定される。

Windows NT/2000/XP クライアントに対してプリンタドライバを提供する上での問題点の多くは、 デバイスモードの生成に関するものである。 ドライバによっては、デバイスモードとして NULL を設定すると、 クライアント側の Explorer.exe をクラッシュさせるものがある。 また、デバイスモードがドライバ自身によって生成されていないと(たとえば smbd がデフォルトのデバイスモードを生成するなど)、 クライアントのスプーラサービス(spoolsv.exe)を停止させてしまうものもある。

このパラメータは、熟慮の上、プリンタドライバのテストを行なった上で用いること。 デバイスモードを NULL のままにしておき、Windows クライアントに適切な値を設定される方が好ましい。 ただし、ドライバが常にこの処理を行なうとは限らないため、 default devmode = yes の設定を行なうことで、smbd にデフォルトのデバイスモードを生成するような指示を行なうことができるようになっている。

Windows NT/2000 の印刷システムやデバイスモードに関する詳細な情報については、 MSDN documentation を参照のこと。

既定値: default devmode = yes

default

このパラメータは右記のパラメータの別名である:default service.

default service (G)

このパラメータは、 要求されたサービスが存在しなかった場合に接続されるサービス名を指定する。 パラメータの値に、大括弧('[' と ']')は不要であることに注意(設定例を参照のこと)。

このパラメータにデフォルト値はない。 このパラメータが設定されていない場合、 存在しない共有に対する接続は失敗する。

default service は guest okread-only パラメータを有効にしたサービスにするのが一般的である。

外面的なサービス名はクライアントから要求されたサービス名に変換される。 これは、%S のようなマクロをワイルドカードサービスに適用する際に、非常に有用である。

default service のサービス名に現れる「_」文字は、「/」にマッピングされる。 これにより、いろいろと面白いことができるだろう。

既定値: default service =

例: default service = pub

defer sharing violations (G)

Windows ではファイルのオープン時に他のプロセスとの共有方法を指定することができる。 あるプロセスがファイルを開こうとした時に指定した共有方法が 別のプロセスによって指定された共有方法と共存できないようなものであった際に 共有違反が発生する。 このパラメータにより、smbd は Windows サーバのように動作するようになり、 「共有違反」のエラーメッセージを 1 秒待ってから返却するようになり、 クライアントはこの間に共有違反を起こしたファイルをクローズすることが可能となる。

UNIX のデフォルトでは、こうした挙動は行なわれない。

このパラメータは Samba の挙動をより Windows に近づけるためのものであり、 無効にする必然性はないであろう。

既定値: defer sharing violations = True

delete group script (G)

このパラメータは、グループの削除が要求された際に、 smbd(8) によって ROOT 権限で 実行されるスクリプトのフルパス名である。 %g はグループ名に置換される。 スクリプトは Windows NT のドメイン管理ツールを使用して設定を行なう際にのみ有効である。

既定値: delete group script =

deleteprinter command (G)

Samba 2.2における Windows NT/2000 クライアントに対応した MS-RPC ベースの印刷サポートの実装にともない、 DeletePrinter() RPC呼び出しを発行することにより、 実行中にプリンタを削除することが可能になった。

Samba ホスト上では、 実際の印刷システム上から物理的にプリンタが削除される。 deleteprinter command パラメータには、 プリンタを印刷システムとsmb.confから削除するために 必要な操作を実行するためのスクリプトを設定する。

deleteprinter commandprinter nameのみをパラメータに設定されて自動的に呼び出される。

deleteprinter command が実行されると、 smbd は削除対象のプリンタを無効にするために、 smb.conf を読み直す。 共有名が依然として有効な場合、smbd はクライアントに ACCESS_DENIED エラーを返却する。

既定値: deleteprinter command =

例: deleteprinter command = /usr/bin/removeprinter

delete readonly (S)

このパラメータにより、読み取り専用のファイルの削除が可能になる。 これは DOS の仕様ではないが、UNIX では可能な処理である。

このオプションは、rcs のようなアプリケーションを動作させるのに有用で、 UNIX ファイルの所有者に関する仕様がファイルのパーミッション変更を妨げたり、 DOS の仕様が読み取り専用ファイルの削除を妨げたりする問題を回避する。

既定値: delete readonly = no

delete share command (G)

Samba 2.2.0 では、Windows NT 4.0 のサーバマネージャーを利用して共有設定を を追加・削除する機能が追加された。 delete share command は、 smb.confに既存のサービスを削除 する外部のプログラム、もしくはスクリプトを設定するためのパラメータである。

delete share command を実行するため、管理者は smbd にroot アカウント(uid = 0)で接続するか、アカウントにSeDiskOperatorPrivilege が付与されている必要がある。 delete share commandで指定された スクリプトはroot権限で実行される。

コマンド実行時に、smbdは自動的に以下の 2つの引数を付加してdelete share commandを 実行する。

  • configFile - smb.confの場所

  • shareName - 既存の共有名

このパラメータは、ファイル共有設定の削除にのみ使われる。印刷共有の設定を 削除するときはdeleteprinter commandを参照のこと。

既定値: delete share command =

例: delete share command = /usr/local/bin/delshare

delete user from group script (G)

このパラメータは、 Windows NT のドメイン管理ツールによってユーザがグループから削除された際に実行されるスクリプトのフルパス名である。 これは smbd(8) によって ROOT 権限で 呼び出される。 %g はグループ名に置換され、 %u はユーザ名に置換される。

既定値: delete user from group script =

例: delete user from group script = /usr/sbin/deluser %u %g

delete user script (G)

このパラメータは、リモート RPC (NT) ツールによってユーザの管理が行なわれた際に、 smbd(8) によって実行されるスクリプトのフルパス名である。

このスクリプトは、「ドメインユーザマネージャ」や rpcclient により、リモートのクライアントがサーバからユーザを削除した際に呼び出される。

このスクリプトは指定されたユーザ名の UNIX ユーザを削除するものでなければならない。

既定値: delete user script =

例: delete user script = /usr/local/samba/bin/del_user %u

delete veto files (S)

このオプションは、アクセスが禁止(veto)されたディレクトリ (veto files オプションを参照のこと)を含むディレクトリを削除しようとする際に影響する。 このオプションが no (デフォルト) の場合、 アクセスが禁止されたディレクトリ内にアクセスを禁止されていないファイルやディレクトリが含まれていても、 ディレクトリ内の削除は失敗する。これは通常期待されている動作であろう。

このオプションを yes に設定すると、 Samba はアクセスが禁止されたディレクトリ内でも 再帰的にすべてのファイルやディレクトリを削除しようとする。 NetAtalk のようなファイルサーバを併用する際は、 通常 DOS/Windows ユーザからの参照するのを禁止しているディレクトリ内にメタファイル (たとえば .AppleDoubleなど)を作成するため、このオプションが有用である。

delete veto files = yes を指定することで、 これらのディレクトリは、親ディレクトリが削除された際に、自動的に削除される (ただし、ユーザはディレクトリを削除するパーミッションを持っている必要がある)。

既定値: delete veto files = no

dfree cache time (S)

dfree cache time パラメータは、 Samba のディスク空き容量の計算で問題が発生するシステムでのみ利用すること。 Ultrix では問題の発生することが知られているが、 他のオペレーティングシステムで発生するかも知れない。 この問題は、各々のディレクトリの一覧表示の終了時に 「終了 再試行 無視 (Abort Retry Ignore)」のエラーが発生する形で顕在化する。

このパラメータは Samba 3.0.21 で新設されたものである。 これは、smbd がディスク空き容量の結果をキャッシュする時間を秒単位で指定する。0 (デフォルト値) の場合、キャッシュは行なわれない。 これにより、高負荷のサーバで dfree command のスクリプトが頻繁に呼ばれて負荷が増大することが避けられる。

このパラメータのデフォルト値は 0 であり、キャッシュは行なわれない。

既定値なし

例: dfree cache time = dfree cache time = 60

dfree command (S)

dfree command パラメータは、 Samba のディスク空き容量の計算で問題が発生するシステムでのみ利用すること。 Ultrix では問題の発生することが知られているが、 他のオペレーティングシステムで発生するかも知れない。 この問題は、各々のディレクトリの一覧表示の終了時に 「終了 再試行 無視 (Abort Retry Ignore)」のエラーが発生する形で顕在化する。

このパラメータでは、 総ディスク容量と空き容量を計算する内部ルーチンを置き換える外部スクリプトを指定する。 以下に、この機能を果たすスクリプトの仕様を示す。

Samba 3.0.21 において、このパラメータは共有単位に設定可能なパラメータとなり、 新たに追加された dfree cache time パラメータにより、 高負荷のシステムにおいて、このスクリプトの出力結果をキャッシュできるようになった。

外部スクリプトは、対象となるファイルシステム中のディレクトリを示すパラメータ 1 つを受け取る。 これは通常 ./という文字列からなる。 スクリプトはアスキー文字で 2 つの整数を返さなければならない。 1 つめはブロック単位のディスク総容量で、 2 つめは利用できるブロック数でなければならない。 3 番目の戻り値として、オプションでブロックサイズをバイト単位で返却させることもできる。 デフォルトのブロックサイズは 1024 バイトである。

注意: スクリプトは、setuid や setgid しては ならず、 (root のみ書き込み可能で)所有者は root である必要がある。

dfree スクリプト(実行可能にする必要がある)を以下に示す:

 
#!/bin/sh
df $1 | tail -1 | awk '{print $(NF-4),$(NF-2)}'

もしくは、以下のようなものも考えられる(Sys V ベースのシステムの場合):

 
#!/bin/sh
/usr/bin/df -k $1 | tail -1 | awk '{print $3" "$5}'

システムによっては、コマンド名をフルパスで記述する必要がある場合があるので注意。

デフォルトは内部ルーチンにより、ディスクの総容量と空き容量が計算される。

既定値なし

例: dfree command = /usr/local/samba/bin/dfree

directory mode

このパラメータは右記のパラメータの別名である:directory mask.

directory mask (S)

このパラメータは、パーミッションを示す8進数の数値であり、 UNIX 側のディレクトリ作成時に DOS の属性から UNIX のパーミッションを生成する際に使われる。

ディレクトリ作成時に付与されるパーミッションは、 DOS の属性と UNIX のパーミッションとのマッピングにしたがって、 DOS の属性を UNIX のパーミッションに変換することにより生成されるが、 最終的には、このパラメータとビット単位の AND 演算が行なわれる。 このパラメータは、ディレクトリの UNIX のパーミッションに対するビットマスクと 考えることができる。ここで設定されないビットは、 ディレクトリ作成時のパーミッションから削除される。

このパラメータのデフォルト値は、 「group」と「other」の書き込み権を UNIX のパーミッションから取り除き、ディレクトリの所有者のみが変更可能にしたものである。

この処理に引き続いて、Samba はこのパラメータで生成された UNIX のパーミッションと force directory mode パラメータの値との OR 演算を行う。 このパラメータは既定では 000 に設定されている(つまり、追加されるパーミッションはない)。

このパラメータは、Windows NT/2000 の ACL エディタで設定される アクセス許可には適用されない。ACL に対しても強制的にマスクを適用したい場合は、 directory security mask パラメータを設定することが必要である。

既定値: directory mask = 0755

例: directory mask = 0775

directory security mask (S)

このパラメータは、 Windows NT クライアント上のセキュリティダイアログボックスを使って、 UNIX ディレクトリのパーミッションを操作する時に、 設定可能な UNIX 側のパーミッションを指定する。

このパラメータは、変更されるパーミッションビットに対して、 マスクとして適用され (AND 操作が適用され)るため、 このマスクにないビットは変更操作から保護される。 このパラメータを、AND ではなく OR 操作を実行するパラメータである force directory security mode と混同しないように。 基本的に、マスク中で 0 と指定されたビットは、常時0であるビットと見なされる。

基本的に、このマスク中ですべてのビットを0に設定することは、ファイル上の、 このビットの以前のステータスにかかわらず、ファイルのパーミッション上の 対応するビットを0に設定する結果となる。

このパラメータが明示的に指定されなかった場合は、 0777 に設定される。これにより、ディレクトリに対する全ての user/group/world パーミッションが変更可能となる。

注意 : 他の方法を使って Samba サーバにアクセスすることが可能なユーザは、この制限を簡単に回避できてしまう。 そのため、このパラメータの主な用途はスタンドアロンで動作する"アプライアンス" システムになるだろう。通常のシステムの管理者のほとんどは、 このパラメータを規定値の 0777 のままにしておきたいと考えるだろう。

既定値: directory security mask = 0777

例: directory security mask = 0700

disable netbios (G)

このパラメータを有効にすると、 Samba の NetBIOS サポート機能が無効になる。 Windows 2000 および Windows XP を除くすべてのバージョンの Windows では、NetBIOS のみを使用できる。

Note

NetBIOS サポートを無効にすると、 NetBIOS のみをサポートするクライアントからは Samba サーバにアクセスできなくなることに注意。

既定値: disable netbios = no

disable spoolss (G)

このパラメータを有効にすることで、 Samba の SPOOLSS MS-RPC サポートを無効にし、Samba 2.0.x と同様の動作をさせることが可能となる。 Windows NT/2000 クライアントは、Lanman 形式の印刷コマンドを利用することも可能である。 Windows 9x/Me は、このパラメータに影響されない。 なお、このパラメータを有効にすると、NT のプリンタプロパティを利用した、 Windows NTのプリンタ追加ウィザードによる Sambaマシンへのプリンタドライバのアップロード機能が無効になる。 また、Windows NT/2000 クライアントが、必要に応じて Samba マシンからプリンタドライバをダウンロードする機能も同時に無効になる。 このパラメータを有効にする際は、充分注意すること。

既定値: disable spoolss = no

display charset (G)

Samba がメッセージを標準出力や標準エラー出力に出力する際に 用いる文字コードセットを指定する。 既定値は "LOCALE"であり、これは、ロケールに従い、自動的に設定される ことを意味する。 この値は、通常、 unix charset と同じに 設定すべきである。

既定値: display charset = "LOCALE" or "ASCII" (システムに依存)

例: display charset = UTF8

dmapi support (S)

このパラメータにより、Samba がオフラインのファイルの判定に DMAPI を用いるかどうかが制御される。 これは、通常ファイルを自動的にテープに移動していくような階層型ストレージとの連携の際に用いられる。

Samba はファイルの状態を DMAPI アプリケーションが登録したイベントを確認することで推測することに注意。 この方法は、多くの階層型ストレージシステムで機能するが、一部機能しないシステムもあるかも知れない。この場合、 Samba はファイルがオフラインであるという誤った報告を行なうことになる。

このパラメータは、コンパイル時に DMAPI の実装サポートを確認できた場合にのみ有効となる。 また、実行時にシステムで DMAPI が使用可能であることが確認できた場合にのみ使用される。

既定値: dmapi support = no

dns proxy (G)

WINS サーバとして機能している nmbd(8) が WINS サーバとして機能している場合、ある NetBIOS 名が登録されていなかった時に、その NetBIOS 名を DNS 名として扱い、名前の問い合わせを行ったクライアントに代わってその名前を DNS サーバに対して問い合わせるように設定する。

NetBIOS 名の最大長は 15 文字であるため、 問い合わせる DNS 名(もしくはDNSの別名)も、最大15文字に制限される。

nmbd が DNS への名前解決を行う際には、問い合わせにより他の処理が停止させないために、自分自身を複製したプロセスを生成する。

既定値: dns proxy = yes

domain logons (G)

このパラメータが yes に設定されると、 Samba サーバは、自身が所属する workgroup に所属する Windows 95/98 に対するドメインログオン機能を提供するようになる。 さらに、Samba サーバは、 Windows NT 4.0 形式のドメインコントローラとしても機能するようになる。 この機能の設定に関する詳細な記述は、 Samba-PDC-HOWTO の「Domain Control」章を参照のこと。

既定値: domain logons = no

domain master (G)

このオプションにより、 smbd(8) が WAN 環境におけるブラウズリストの統合を行なうことが可能になる。 このオプションを設定すると、nmbd は、指定された workgroup のドメインマスタブラウザであることを表す、ドメイン固有の特別な NetBIOS 名(訳注:NetBIOS 名で末尾が 0x1b のユニーク名を指す) を登録する。 各サブネット上にある、同じ名前の workgroup に属するローカルマスタブラウザは、この nmbdに対して、 ローカルに収集したブラウズリストを提供するとともに、 smbd(8) に対してネットワーク全体のブラウズリストの完全な複製の提供を要求するようになる。 ブラウザのクライアントは、ローカルマスタブラウザと通信することで、 個々のサブネットのブラウズリストではなく、 そのドメイン全体のブラウズリストを取得できるようになる。

Windows NT のプライマリドメインコントローラは、 workgroup のドメインマスタブラウザとして機能するために、 workgroup 固有の特別な NetBIOS 名を登録することが前提とされていることに注意 (Windows NT PDC のこの動作を抑止することはできない)。 つまり、このパラメータが Yes に設定され、nmbd が Windows NT PDC より前に、workgroup のための特別な NetBIOS 名を登録してしまうと、 サブネット越しのブラウズは正常に動作せず、失敗する。

domain logons = yes の場合、domain master パラメータはデフォルトで有効となる。 domain logons が有効でない場合(デフォルト)、 domain master パラメータもデフォルトでは有効にならない。

domain logons = Yes の場合、このパラメータもデフォルトで Yes となり、Samba は PDC として動作するようになる。 domain master = No の場合、Samba は BDC として動作するようになる。通常、このパラメータを「No」に設定する必要があるのは、BDC として機能させる場合のみである。

既定値: domain master = auto

dont descend (S)

システムに存在するディレクトリには、 クライアントに参照させたくないものや、 無限に深い(再帰的)なものが存在する(たとえば Linux での /proc)。 このパラメータは常に空のように見せかけるサーバ側のディレクトリをコンマで区切って指定する。

Samba が要求する「dont descend」の書式は一定ではない。 たとえば /proc ではなく ./proc でなければならないかもしれない。 実験してみるのが最良の方法である。 :-)

既定値: dont descend =

例: dont descend = /proc,/dev

dos charset (G)

DOS SMB クライアントは、サーバ側でも自身と同じ文字コードセットを使用していると想定する。 このオプションにより、 Samba が DOS クライアントと通信する際に用いられる文字コードセットを指定する。

デフォルトは Samba にインストールされた文字コードセットによって異なる。 Samba は、文字コードセット 850 の使用を試みるが、使用できない場合は ASCII を使用する。 testparm(1) コマンドを実行することで、システム上のデフォルト値を確認することが可能である。

既定値なし

dos filemode (S)

Samba のデフォルトの動作では、 ファイルやディレクトリの所有者のみがアクセス権を変更できるという、UNIX的な仕様になっている。 しかし、この仕様が DOS/Windows のユーザを混乱させてしまうことも多い。 このパラメータを有効にすることによって、 (何らかの手段によって)ファイルに書き込み権のあるユーザは、パーミッション(ACLを含む)の変更もできるようになる。 ファイルの所有グループに所属しているユーザは、 グループに対して読み込み権限しか与えられていない場合は パーミッションの変更を行なうことができないことに注意。 ファイルやディレクトリの所有者を変更することも可能である。

既定値: dos filemode = no

dos filetime resolution (S)

DOS や Windows の FAT ファイルシステム下では、 時刻の最小単位は 2 秒である。共有に対してこのパラメータを設定すると、 smbd(8) に対して 1 秒精度の要求が 行なわれた際に、 返却される時間をもっとも近い 2 秒の境界値に丸める。

このオプションはおもに、Samba の共有で Visual C++ を 使用するための互換性オプションとして利用する。 共有で oplock が有効であると、 Visual C++ はファイルが最後の読み込みから変更されていないかを検査するときに、 扱う日付の最小単位が異なる 2 つの時刻取得の呼び出し (call) を利用する。 そのうちのひとつの呼び出しは 1秒単位であり、もうひとつは 2 秒単位になっている。 2 秒単位で扱う呼び出しが奇数秒を切り捨てるため、 ファイルが奇数秒の日付であると 2 つの日付が一致せず、 Visual C++ はファイルが変更されたと報告し続けてしまう。 このオプションをyesに設定することで 2 つの日付は一致し、Visual C++ も幸福になれる。

既定値: dos filetime resolution = no

dos filetimes (S)

DOS や Windows では、 ファイルに書き込み権のあるユーザが、ファイルのタイムスタンプを変更することが可能である。 POSIX の仕様では、ファイルの所有者か root のみがタイムスタンプを変更できる。 Samba のデフォルトは、POSIX 仕様に準拠しており、 smbd の実効ユーザがファイルの所有者でないとき、タイムスタンプの変更を禁止する。 このオプションを yes にセットすると、 DOS の仕様に準じて動作するようになるため、 smbd(8) は DOS の要求に従ってタイムスタンプを変更できるようになる。 Microsoft Office 2000 以降で行なわれた変更に対応するため、 Samba 3.0.14 以降ではデフォルト値が「no」から「yes」に変更された。 このパラメータが「yes」になっていない場合、ファイルが複数のユーザ間で共用されていると、 Microsoft Excel はファイルが他のユーザによって変更されたという警告のダイアログボックスを表示してしまう。

既定値: dos filetimes = yes

ea support (S)

この真偽値パラメータにより、 smbd(8) は、クライアントが共有内に OS/2 形式の拡張属性を格納することを可能とする。 このパラメータを有効にするためには、下位のファイルシステムが (Linux の場合 XFS や EXT3 に対するパッチとして提供されているような) 拡張属性をサポートしていることが必要である。 Linux の場合、拡張属性を有効にするには、カーネルが拡張属性を有効にしてコンパイルされていることに加え、 ファイルシステムのマウントオプションとして user_xattr を指定してマウントする必要がある。

既定値: ea support = no

enable asu support (G)

「Advanced Server for Unix (ASU)」というプロダクトを実行しているホストでは、 IPC コネクションのみをサポートするビルトインの [ADMIN$] 共有が作成されるなど、 ASU 特有の動作が幾つか存在する。長年、これは smbd のデフォルトの動作でもあった。 ところが、Print Migrator tool というマイクロソフトのアプリケーションでは、 リモートのサーバで [ADMIN$] というファイル共有がサポートされている必要がある。 このパラメータを無効にすることで、smb.conf に [ADMIN$] というファイル共有を作成することが可能になる。

既定値: enable asu support = no

enable privileges (G)

このパラメータは、smbd が net rpc rights もしくは Windows 側のユーザ、グループ管理ツールにより、特定の SID に対して指定のユーザー権利を付与する機能を制御する。 このパラメータはデフォルトで有効となっているが、Domain Admins グループのメンバがユーザーやグループにユーザー権利を割り当てることで、 root 権限で実行される smbd の処理が該当ユーザとして接続した状態で実行されることを防止するために無効にすることも可能である。

ユーザー権利を使用することで、例えば smbd が動作するサーバの root 権限を与えずに、 Samba ドメインに参加する権利を付与することが可能である。

より詳細な説明については、Samba HOWTO 中の記載を参照のこと。

既定値: enable privileges = yes

encrypt passwords (G)

この真偽値パラメータにより、 クライアントとのネゴシエーションに暗号化パスワードを利用するかどうかが決定される。 Windows NT 4.0 SP3 以降 や Windows 98 以降では、 レジストリの変更をしない限り、暗号化パスワードがデフォルトである。(訳注: これ以前のバージョンでも暗号化パスワードがデフォルトである。ただし、暗号化パスワードの利用ができなかった場合に平文パスワードを送出する点が異なる。) Samba で暗号化パスワードを使う方法は Samba HOWTO collection 中の「User Database」の章を参照してほしい。

Microsoft の暗号化パスワードを想定して、 平文パスワードのサポートを無効にした Windows クライアントは、 暗号化パスワードが有効になっており、 アカウントのパスワードが適切に暗号化されている Samba サーバにのみ接続できる。 ユーザアカウントに対して暗号化パスワードを作成する方法については、 smbpasswd コマンドのマニュアルページを参照のこと。

Microsoft 社の Windows 製品では、すでに平文パスワードのサポートは行なわれていない(訳注: 設定としては残存している)ため、 平文パスワードの利用は推奨できない。 平文パスワードを使用した場合は、このパラメータを no にすること。

暗号化パスワードを正しく機能させるためには、 smbd(8) がローカルの smbpasswd(5) ファイル (設定と保守の方法に関する情報は smbpasswd(8) プログラムを参照)を参照するようにするか、 security = [server|domain|ads] パラメータを設定して、 smbd が別のサーバで認証を行うようにする必要がある。

既定値: encrypt passwords = yes

enhanced browsing (G)

このオプションにより、 Samba に実装されている複数サブネット間でのブラウザのアナウンスメントに関する拡張が有効になる。 ただし、この拡張は、Microsoft の実装の標準とは異なる。

ブラウザのアナウンスメントに関する一つ目の拡張点は、 Samba のWINSサーバに登録されているすべてのドメインマスタブラウザを問い合わせる定期的なワイルドカードクエリと、 返答に含まれる各DMBと行なわれるブラウズリストの同期処理のサポートである。 二つ目の拡張点は、DMBとして識別されているマシンとの間で 定常的に行なわれるランダムなブラウズリストの同期処理のサポートである。 (訳注: これは 120151 などで記載されている、WINS クライアントとなっている Windows NT 3.5 以上の DMB が定期的に WINS サーバに接続し、WINSサーバが保有する「ドメイン名<1B>」のリストを自身のブラウズリストに追加していく処理のサポートだと思われる)

中身が空のワークグループがブラウズリストから消えないというトラブルが発生した場合は、 このオプションを無効にしたい場合もあるだろう。 ブラウザのプロトコルの仕様上、 この拡張により空のワークグループが永久に残ってしまうという悩ましい問題が起こることがある。

通常は、サブネット越えのブラウザのアナウンスメントの信頼性向上のため、 このオプションは、有効のままにしておくべきである。

既定値: enhanced browsing = yes

enumports command (G)

ここでいう「ポート(port)」の概念は、 UNIXのものと大きく異なる。Windows NT/2000のプリントサーバにおいて、 ポートはポートモニタと関連付けられ、通常ローカルポート(LPT1:、COM1:、 FILE:)やリモートポート(LPD Port Monitorなど)といった名称をもつ。 Sambaのデフォルトでは、 「Samba Printer Port」 というポートのみが定義されている。 Windows NT/2000においては、すべてのプリンタに適切なポート名がある。 デフォルトの「Samba Printer Port」 以外のポート名をポートの一覧に表示させたい場合 (smbdはポート名を全く使用していない)、 標準出力に対してポート名のリストを1行に一つずつ生成するようなプログラムを enumports commandで定義することができる。 この一覧はレベル1および2のEnumPorts() RPCのレスポンス中で利用される。

既定値: enumports command =

例: enumports command = /usr/bin/listports

eventlog list (G)

このパラメータは、 Samba がマイクロソフトの「イベントビューア」ユーティリティ経由での表示を可能とするログファイル名の一覧を定義する。 一覧に含まれるログに対しては、ディスク上の $(lockdir)/eventlog 内に、 対応する TDB ファイルが割り当てられる。

管理者は、外部のプロセスを用いて /var/log/messages のような一般の UNIX ログファイルを解析し、 イベントログの TDB ファイルにエントリを書き込む必要がある。 イベントログのエントリを書き込む方法については、eventlogadm(8) ユーティリティを参照のこと。

既定値: eventlog list =

例: eventlog list = Security Application Syslog Apache

fake directory create times (S)

NTFS や Windows VFAT ファイルシステムでは、 すべてのファイルとディレクトリの作成時刻を保持している。 これは UNIX が保持している ctime (状態変更時刻)とは異なるため、 Samba の既定動作では UNIX が保持している中で最も古い時刻を報告する。 共有でこのパラメータを yes にした場合、Samba はディレクトリの作成時刻として、 常に 1980/1/1 の午前 0 時を報告する。

このオプションは、Samba 共有上で Visual C++ を使うときに互換性を保つためのオプションとして用いられることが多い。 Visual C++ は、各オブジェクトファイルに対する依存性チェック用途のオブジェクトディレクトリと、 そのディレクトリを作成するルールを持った makefile を生成する。 NMAKE が日付を比較する際にディレクトリをチェックするときには、ファイル作成時刻を使用する。 これにより、オブジェクトディレクトリが存在しない場合は作成され、作成されたディレクトリは、 ディレクトリ中に存在するオブジェクトファイルよりも古い時刻を保持することになる。

しかし、UNIX の時刻の扱いに関する仕様のため、 Samba が報告するディレクトリの作成時間はディレクトリにファイルが作成または削除されたときにも更新されてしまう。 その結果 NMAKE は、オブジェクトディレクトリで最後にビルドされたファイルを除く すべてのオブジェクトファイルがオブジェクトディレクトリより古いと判断し、それらを再構築してしまう。 このオプションを有効にすることで、 常にディレクトリは含まれるファイルよりも前の日付になり、 NMAKE によるビルドが意図したように行なわれることが保証される。

既定値: fake directory create times = no

fake oplocks (S)

oplock は、SMB クライアントがファイル操作の結果をローカルにキャッシュするための許可をサーバから取得するための機能である。 サーバが oplock (opportunistic lock = 便宜的ロック) を許可すると、 クライアントは自分だけがそのファイルにアクセスしていると認識して、 積極的にファイルの内容をキャッシュする。oplock のタイプによっては、 クライアントがファイルのオープン/クローズの操作をキャッシュすることもありうる。 これにより、多大な性能向上が期待できる。

fake oplocks = yes の設定を行なうと、smbd(8) は、 実際にそのファイルを利用しているクライアント数に関わらず、 常に oplock を許可する。

一般的には、このパラメータを利用するよりも、 実際の oplocks を利用する方がよい。

CDROM 等の物理的に読みとり専用のメディアの場合など、 読みとり専用か、同時に 1 台のクライアントからだけしか アクセスされないとわかっている共有でこのオプションを有効にすると、 多くの操作で大きな性能改善が見られるだろう。複数のクライアントから 同時にファイルの読み書きアクセスする可能性がある共有でこのオプションを有効にすると、 ファイルの内容が破壊される場合が起こりうる。 このオプションは慎重に使用して欲しい!

既定値: fake oplocks = no

fam change notify (G)

このパラメータにより、Samba がディレクトリ内の変更を FAM デーモンに問い合わせ、SMB クライアントがサーバ上のデータに変更があった際に、 更新を行なうことが可能になるようにするかが制御される。

このパラメータは、FAM デーモンによるユーザプログラムへの変更通知機能がサポートされている場合のみ使用される。 FAM デーモンが実行されていない場合、このパラメータは自動的に無効となる。 kernel change notify パラメータが有効な場合、そちらが優先される。

既定値: fam change notify = yes

follow symlinks (S)

このパラメータにより、Samba の管理者は、 smbd(8) がシンボリックリンクを追跡する処理を共有単位で禁止することが可能になる。 このパラメータを no に設定した場合、 シンボリックリンクのファイルやディレクトリの追跡する処理が抑制される(ユーザにはエラーが返却される)。 このオプションは、ユーザが自分のホーム・ディレクトリに /etc/passwd へのシンボリックリンクを追加するのを防止したりする効果がある。 ただし、わずかながらファイル名の検索が遅くなるだろう。

このオプションはデフォルトで有効になっている (つまり、smbd はシンボリックリンクを追跡する)。

既定値: follow symlinks = yes

force create mode (S)

このパラメータは、Samba によって作成されたファイルのパーミッションに 必ず設定される UNIX のパーミッションビットを指定する。 これは、ファイルの作成時時に、ファイルのパーミッションビットに対して、 このパラメータの値でビット単位のOR 演算を行なうことで実現される。 このパラメータの既定値は(8進で)000である。 このパラメータの値がビット単位の OR 演算に用いられるのは、 create mask パラメータの適用後である。

下記の例は、作成されるすべてのファイルに対し、 グループ(group)とその他のユーザ(others)の読み込みと実行ビットと、 所有者(user)の読み込み/書き込み/実行ビットが必ず付与されるようにする。

既定値: force create mode = 000

例: force create mode = 0755

force directory mode (S)

このパラメータは、Samba によって作成されたディレクトリのパーミッションに 必ず設定される UNIX のパーミッションビットを指定する。 これは、ディレクトリの作成時に、 パーミッションビットに対して、このパラメータの値でビット単位の OR 演算を行なうことで実現される。 このパラメータの既定値は 000 (8 進数表記)である。この場合、作成されるディレクトリに対して特にパーミッションビットは追加されない。 このパラメータの値が適用されるのは、 directory mask パラメータの適用後である。

下記の例は、作成されるすべてのディレクトリに対し、 グループ(group)とその他のユーザ(others)の読み込みと実行権ビットと、 所有者(user)の読み込み/書き込み/実行ビットが必ず付与されるようにする。

既定値: force directory mode = 000

例: force directory mode = 0755

force directory security mode (S)

このパラメータは、 Windows NT クライアント上のセキュリティダイアログボックスを使って、 UNIX ディレクトリのパーミッションを操作する時に、 設定可能な UNIX 側のパーミッションを指定する。

このパラメータは、変更されるパーミッションビットに対して、 OR操作のマスクとして適用されるため、 このマスクにあるビットはユーザが行なった修正変更操作に関わらず、設定される。 このパラメータを、OR ではなく AND 操作を実行するパラメータである directory security mask と混同しないように。

基本的に、マスク中で 1 と指定されたビットは、 ディレクトリのセキュリティを修正する際に、常に「on」に設定されたとみなされる。

このパラメータが明示的に設定されなかった場合は、 0000 に設定される。これにより、ディレクトリに対する全ての user/group/world パーミッションを制限なしに変更可能となる。

注意 : 他の方法を使って Samba サーバにアクセスすることが可能なユーザは、この制限を簡単に回避できてしまう。 そのため、このパラメータの主な用途はスタンドアロンで動作する「アプライアンス」システムになるだろう。 通常システムの管理者のほとんどは、このパラメータを 0000 のままにしておきたいと考えるだろう。

既定値: force directory security mode = 0

例: force directory security mode = 700

group

このパラメータは右記のパラメータの別名である:force group.

force group (S)

このパラメータには、 このサービスに接続するすべてのユーザのデフォルトの所属グループと見なされる UNIX のグループ名を指定する。 このパラメータを使うと、サービス上のファイルに対するアクセスの際のパーミッションチェックには、 ここで指定したグループを用いることができるため、ファイル共有を行う際に便利である。 この設定を行うことで、 このサービス内において提供するファイルやディレクトリに対して指定されたグループ名にパーミッションを割り当てることにより、 Samba の管理者がこれらのファイルの共有を許可/不許可にすることができるようになる。

Samba 2.0.5 以降では、このパラメータの機能が拡張されている。 '+' 文字からはじまるグループ名が設定されていた場合、 現在共有にアクセスしているユーザが設定されたグループのメンバーだった場合のみ、 そのグループをユーザのデフォルトのプライマリグループに設定する。 この動作により、該当のグループに予め所属しているユーザのみが、 そのグループを所有者とするファイルを作成する設定を行うことが可能となる。 これにより、所有権の設定をより細かく行なうことが可能となる。 たとえば、force group = +sys という設定を行った場合、 sys グループに所属しているユーザが Samba の 共有 にアクセスした際にのみ、 デフォルトのプライマリグループが sys に設定される。 その他すべてのユーザは、通常のプライマリグループのままとなる。

force user パラメータも設定されていた場合、 force group で指定されたグループより、 force user で指定されたユーザのプライマリグループの方が優先される。

既定値: force group =

例: force group = agroup

force printername (S)

Windows NT (以降)の OS から印刷を行なう場合、 smb.conf 中の各プリンタには、 クライアントから使用可能な名前が 2 つある。 最初のものは smb.conf で定義された共有名(短い名前)である。 Windows 9x クライアントからは、このプリンタ名しか使用できない。 プリンタに割り当てられたもう一つの名前は、Samba サーバの「プリンタ」 (プリンタとFAX)フォルダ」を参照すると表示されるものである。 これは、(printer name オプションと混同しないように) 単にプリンタ名と記載する。

Samba を含む Windows 互換のリモートのプリンタサーバ上で、 プリンタに対して新しいドライバが割り当てられた際、 Windows クライアントは、そのドライバの名前に合致するように、プリンタ名を変更する。 これは、複数のプリンタに同じドライバを割り当てているユーザを混乱させる結果となる。 Samba において、プリンタのプリンタ名を smb.conf で定義された共有名と異なる名称にすることを禁止したい場合は、 force printername = yes と設定すること。

Windows では、プリンタ名と共有名を強制的に一致させることができないため、 このパラメータを有効にすると、Windows サーバから Samba サーバへプリンタの移行を行なう際に問題が発生するので注意。

プリンタがクライアントにより使用を開始された後にこのパラメータの値を変更することは、 ユーザが自身の「プリンタ」フォルダからプリンタを削除することができなくなるため、推奨しない。

既定値: force printername = no

force security mode (S)

このパラメータは、 Windows NT クライアント上で NT 固有のセキュリティダイアログボックスを使った UNIX ファイルのパーミッションを操作を行うときに、 変更可能とする UNIX のパーミッションビットを指定する。

このパラメータは、 変更されるパーミッションビットに対して、OR 操作のマスクとして適用されるため、 このマスクに含まれるビットは、ユーザの設定に関わらず on となる。 このパラメータを、OR ではなく AND 操作を実行するパラメータである security mask と混同しないように。

端的にいえば、マスク中の各ビットは、ユーザがファイルのセキュリティを変更するときに、 常に「on」に設定するビットとして考えることもできる。

このパラメータが明示的に設定されなかった場合は、 0 に設定される。これにより、ディレクトリに対する全ての user/group/world パーミッションを制限なしに変更可能となる。

注意 : 他の方法を使って Samba サーバにアクセスすることが可能なユーザは、この制限を簡単に回避できてしまう。 そのため、このパラメータの主な用途はスタンドアロンで動作する「アプライアンス」システムになるだろう。 通常システムの管理者のほとんどは、 このパラメータを 0000 のままにしておきたいと考えるだろう。

既定値: force security mode = 0

例: force security mode = 700

force unknown acl user (S)

このパラメータを設定すると、 ファイルの所有者や所有グループとして不明な SID (ユーザやグループIDを示す、 セキュリティディスクリプタ) を含む Windows NT の ACL は、 現在接続しているユーザの UNIX での uid や gid に自動的にマッピングされる。

これは、Windows NT のクライアントマシン上で作成された、 マシン内でのみ有効なユーザ(ドメインユーザでない)を含んだ ACL を持つファイルやフォルダを(通常 XCOPY /O により)、 Windows NT クライアントから Samba サーバにコピーした際に、 ファイル上の不明な userid や groupid を現在接続しているユーザのものに対応付けることを意図したものである。 winbindd による Windows NT の SID から UNIX 側の uid や gid への任意の対応づけを可能とする以外に、 この問題を適切に対処する方法はない。

XCOPY /O が ACCESS_DENIED エラーを引きおこす際には、このパラメータを使って欲しい。

既定値: force unknown acl user = no

force user (S)

このパラメータは、サービスに対する接続のすべてで、 デフォルトのユーザとみなされる UNIX ユーザの名前を指定する。 これはファイルを共有する上で便利であるが、誤って使用すると、 セキュリティ上の問題を引き起こす原因となるので、慎重に使用すべきである。

このユーザ名は接続の確立後に適用される。 従って、クライアントが有効なユーザ名とパスワードで接続を行う必要があることには変わりはない。 接続が確立すると、全てのファイル操作は強制的に「force user」で指定されたユーザの権限で実行される。 クライアントが接続を確立した際のユーザ名は無視される。 これは大変便利なことがある。

Samba 2.0.5 以降では、このパラメータによって 設定されたユーザのプライマリグループが、 すべてのファイル操作においてプライマリグループとして利用される。 Samba 2.0.5 以前では、プライマリグループは本来接続を行ったユーザのプライマリグループのまま変わらない(これはバグである)。

既定値: force user =

例: force user = auser

fstype (S)

このパラメータは、 クライアントが共有のファイルシステムを問い合わせた際に、 smbd(8) が返却する共有のファイルシステム名を指定する。 デフォルトは Windows NT 互換の NTFS だが、 必要に応じて Samba FAT といった別の文字列に、変更することができる。

既定値: fstype = NTFS

例: fstype = Samba

get quota command (G)

get quota command は Samba が実行されている OS 上で、API が提供されていない場合に限り使用すべきである。

このオプションは、必ず ./configure --with-sys-quotas が指定されているときのみ有効である。 もしくは Linux において ./configure --with-quotas が指定され、システムにクオータの API が存在し、機能する場合にのみ使用できる。

このパラメータは、指定されたディレクトリが存在するパーティションについて、指定されたユーザやグループのクオータ情報を取得するスクリプトへのパスを指定する。

このスクリプトは三つの引数をとる:

  • ディレクトリ

  • 問い合わせのタイプ

  • ユーザの uid もしくはグループの gid

問い合わせのタイプは以下のいずれかの値をとる:

  • 1 - ユーザのクオータ

  • 2 - ユーザのデフォルトのクオータ (uid = -1)

  • 3 - グループのクオータ

  • 4 - グループのデフォルトのクオータ (gid = -1)

スクリプトの出力は、以下の要素をスペースで区切った1行の形式で行なわれる:

  • 要素1 - クオータフラグ (0 = クオータは無効、 1 = クオータは有効、 2 = クオータは有効で使用を強制されている)

  • 要素2 - 現在の使用済ブロック数

  • 要素3 - ブロック数のソフトウェア的な上限

  • 要素4 - ブロック数のハードウェア的な上限

  • 要素5 - 現在の使用済 inode 数

  • 要素6 - inode 数のソフトウェア的な上限

  • 要素7 - inode 数のハードウェア的な上限

  • 要素8(オプション) - ブロックあたりのバイト数(デフォルト1024)

既定値: get quota command =

例: get quota command = /usr/local/sbin/query_quota

getwd cache (G)

これはチューニングのためのオプションである。このパラメータを有効にすると、 getwd() の呼び出し時間を減らすためのあるキャッシュアルゴリズムが有効になる。特に wide smbconfoptions パラメータが no に設定された場合は、パフォーマンスに対して相当な効果がある。

既定値: getwd cache = yes

guest account (G)

このパラメータは、 guest ok (以下を参照のこと) が設定されたサービスにアクセスする際に使用されるユーザ名である。 ゲストサービスに接続しているクライアントすべてに対して、 ここで設定したユーザの権限が適用される。 このユーザはパスワードファイルに存在している必要があるが、ログイン可能となっている必要はない。 このパラメータとして、「ftp」ユーザを利用するのもよいであろう。

システムによっては、アカウント「nobody」では印刷することができない。 この場合は別のアカウントを使用すること。 ゲストユーザでログイン(su -コマンドなどを使用する)して、 lpr(1)lp(1) などの、 システムにある印刷コマンドを実行して印刷を行ってみることで、 これを確認しておくべきであろう。

このパラメータは % マクロを受け付けない。 システムの大半の箇所では、正常動作する上でこの値が静的に設定されていることが必要とされるためである。

既定値: guest account = nobody # default can be changed at compile-time

例: guest account = ftp

public

このパラメータは右記のパラメータの別名である:guest ok.

guest ok (S)

このパラメータが yes のサービスに付いては、 サービスへの接続の際にパスワードが要求されない。 この場合、guest account の権限で操作が行われる。

このパラメータは restrict anonymous = 2 のメリットを無効にする。

このオプションに関する詳細については、 security セクションを参照のこと。

既定値: guest ok = no

only guest

このパラメータは右記のパラメータの別名である:guest only.

guest only (S)

このパラメータが yes のサービスについては、 ゲスト接続のみが許可される。 このパラメータは、guest ok が有効になっていないサービスでは無効である。

このオプションに関する詳細については、security セクションを参照のこと。

既定値: guest only = no

hide dot files (S)

この真偽値パラメータにより、 ドットで始まるファイル名のファイルを隠しファイルとして扱うかどうかが制御される。

既定値: hide dot files = yes

hide files (S)

これは、見せたくないがアクセスは許可したいファイルやディレクトリのリストを指定する。 DOSの「隠し」属性が該当するファイルやディレクトリに付加される。

リストの各エントリは、 スペースをエントリ中に含められるようにするため、「/」で区切る必要がある。 「*」と「?」は、DOSのワイルドカードと同様にして、 複数のファイルやディレクトリを指定するために利用することができる。

各エントリはUNIXのパス形式で指定すること。DOSのパス形式で指定したり、 UNIXでディレクトリを意味する「/」を含んだりはできない。

この設定には、 case sensitive オプションの設定が影響することに注意。

このパラメータを設定すると、 全てのファイルやディレクトリに対して該当するかどうかの確認を行う必要が発生するため、 Samba のパフォーマンスに影響がでる。

以下の設定例は、Thursby から入手可能な Macintosh 上の SMB クライアント (DAVE) が内部的な用途に作成するファイルの指定に加え、 ドットで始まるファイルを隠しファイルとして指定したものである。

このパラメータの設定例を以下に示す。

hide files = /.*/DesktopFolderDB/TrashFor%m/resource.frk/

既定値: hide files = # どのファイルも隠されない

hide special files (S)

このパラメータにより、クライアントからソケット、デバイス、FIFOなどのファイルがディレクトリ一覧で表示されることを抑止できる。

既定値: hide special files = no

hide unreadable (S)

このパラメータにより、読みとりができないファイルの存在をクライアントから隠蔽できる。 このパラメータのデフォルトは off になっている。

既定値: hide unreadable = no

hide unwriteable files (S)

このパラメータにより、書き込みができないファイルの存在をクライアントから隠蔽できる。 このパラメータのデフォルトは off になっている。 書き込みができないディレクトリについては通常通り表示されることに注意。

既定値: hide unwriteable files = no

homedir map (G)

このパラメータは、 nis homediryessmbd(8) が Windows 95/98 の logon server として機能している場合に、 ユーザのホームディレクトリがあるサーバがどこかの情報をもつ NIS (YP)のマップを指定する。 現在のところ、Sun の auto.home マップ形式のみが認識される。 マップの形式は以下のとおり:

username server:/some/file/system

プログラムは、最初の「:」の前までをサーバ名として解釈する。 これ以外のマップの形式や、Amd (別の automounter)のマップにも対応した優れた解析ロジックもおそらく存在するはずである。

Note

このオプションを利用する場合は、 システムがNISクライアントとして稼働している必要がある。

既定値: homedir map =

例: homedir map = amd.homedir

host msdfs (G)

yes の場合、 Samba は DFS サーバとして機能し、 DFS を利用可能なクライアントは、サーバ上で提供された DFS ツリーを参照することが可能となる。

共有単位のパラメータである msdfs root も参照のこと。 Samba で DFS ツリーを構成する場合の詳細な情報については、 Samba3-HOWTO の MSDFS の章を参照のこと。

既定値: host msdfs = yes

hostname lookups (G)

Samba が(負荷のかかる)ホスト名検索を行なうか、 IP アドレスを使用するかを指定する。現在ホスト名検索を使用している箇所としては、 hosts deny および hosts allow の確認箇所などが挙げられる。

既定値: hostname lookups = no

例: hostname lookups = yes

allow hosts

このパラメータは右記のパラメータの別名である:hosts allow.

hosts allow (S)

このパラメータの同義語として allow hosts がある。

このパラメータには、サービスに対するアクセスを許可するホストのリストを、 コンマ, スペース, タブで区切って指定する。

[global] セクションで指定された場合、 個々のサービスで異なった設定が行われている場合も含めて、 その設定が全てのサービスに対して適用される。

ホストの指定は、IPアドレスでもホスト名でも行うことができる。 例えば、あるClass C サブネット上のホストのみにアクセスを限定したい場合は、 allow hosts = 150.203.5.とすればよい。 指定に利用できる記法の全ては、 hosts_access(5) のマニュアルページ中に記載されている。 このマニュアルページはシステムに存在しないかも知れないので、 ここで簡単に説明を行っておく。

なお、localhost のアドレスである 127.0.0.1 からのアクセスは、 hosts deny パラメータで明示的に禁止されない限り、常にアクセスを許可される。

ホストの指定に、network/netmask 形式を用いたり、 システムがネットグループをサポートしている場合はネットグループ名を用いたりすることも可能である。 EXCEPT を用いることで、ワイルドカードによるホストの指定に対する例外を設けることも可能である。 以下の例が手がかりになるだろう:

Example 1: 150.203.*.* 内の全てのIPアドレスを許可する; ただし、例外のアドレスが1つある

hosts allow = 150.203. EXCEPT 150.203.6.66

Example 2: 指定した network/netmask の範囲内のホストからのアクセスを許可する

hosts allow = 150.203.15.0/255.255.255.0

Example 3: 個別に指定したホストからのアクセスを許可する

hosts allow = lapland, arvidsjaur

Example 4: NISネットグループの「foonet」に含まれるホストからのアクセスを原則として許可するが、あるホストからのアクセスについては拒否する。

hosts allow = @foonet

hosts deny = pirate

Note

実際のアクセスには、ユーザレベルで適切なパスワード指定する必要があることに注意。

ホストレベルのアクセス制御が期待通りになっているかどうかの確認手段については testparm(1) を参照のこと。

既定値: hosts allow = # なし (全てのホストがアクセス許可される)

例: hosts allow = 150.203.5. myhost.mynet.edu.au

deny hosts

このパラメータは右記のパラメータの別名である:hosts deny.

hosts deny (S)

hosts allow の反対の意味を持ち、 このパラメータで指定されたホストは、サービス内で明示的にアクセスが許可されない限り、 サービスへのアクセスを拒否される。 両者の設定が矛盾した場合は、allow 側の設定が優先される。

デフォルトでアクセスを拒否したい場合は、 ALL (もしくはネットマスク 0.0.0.0/0) の指定を行ない、 hosts allow = hosts allow パラメータにより、 アクセスを許可したいホストを明示的に指定すること。

既定値: hosts deny = # なし (アクセスを拒否されるホストはない)

例: hosts deny = 150.203.4. badhost.mynet.edu.au

idmap alloc backend (G)

idmap alloc backend は Winbindが WindowsのSIDに対してUnixのuid/gidを 割り当てるためのプラグインインターフェースを提供する。 このオプションは idmap domains パラメータと ID割り当て機能を提供する idmap モジュールの名前を結びつけるために 利用される。 それぞれのidmapプラグインが実装しているID割り当て機能の特徴については それぞれのmanページを参照のこと。最も共通のプラグインは、 tdb (idmap_tdb(8)) と ldap (idmap_ldap(8)) である。

idmap alloc config オプションも参照のこと。

既定値なし

例: idmap alloc backend = tdb

idmap alloc config (G)

idmap alloc config のプレフィックスは、 idmap alloc backend パラメーターで設定された バックエンドに対するパラメーターの設定方法を提供する。 それぞれの idmap プラグインに対する個別の設定方法の詳細については man ページを参照すること。

既定値なし

idmap backend (G)

idmap backend は Winbindが SID/uid/gid のマッピングテーブルを 格納するための様々なバックエンドを利用するためのプラグイン インターフェースを提供する。 このオプションは、より新しくて柔軟な idmap domains パラメーターと同時に 利用することはできない。 "idmap backend" と "idmap domains" の主な違いは 前者が全てのドメインに対して単一のバックエンドのみ利用可能であるのに 対して、後者はドメインごとに個別にバックエンドを設定可能であると いうことである。

SID/uid/gid のバックエンドの実装として tdb (idmap_tdb(8))、 ldap (idmap_ldap(8))、 rid (idmap_rid(8))、 ad (idmap_tdb(8))が提供されている。

既定値: idmap backend = tdb

idmap cache time (G)

このパラメーターにはWinbindのidmapインターフェースが SID/uid/gidの問い合わせに成功した結果をキャッシュする秒数を設定する。

既定値: idmap cache time = 900

idmap config (G)

idmap config のプレフィックスは、Sambaのパラメーターのオプション設定 機能を利用して、idmap domains オプションで定義されたそれぞれのドメインを管理する方法を提供する。 idmap config プレフィックスに続けて、ドメイン名、コロン、そして 選択したバックエンド用の設定を指定しなければならない。 全てのドメインで指定可能な3つのオプションがある。

backend = backend_name

このドメインでSID/uid/gidのバックエンドとして利用する idmapプラグインの名前を指定する。

default = [yes|no]

ユーザー、グループの探索で、(アカウント SIDや、 ドメインSIDの比較で一致した)指定されたドメインに 該当者が存在しない場合のデフォルトの ドメイン/バックエンドとして利用される。

readonly = [yes|no]

ドメイン内のあらゆるユーザーやグループに対して 試みられる(idmap alloc backend による)uidやgidの割り当てを試みない read onlyのドメインとして扱う。

次の例はCORPドメインがidmap_ad(8) バックエンド で、他の全てのドメインがidmap_tdb(8) バックエンドとしてどのように 設定されるかを示している。 TRUSTEDDOMAINSの文字列は、"idmap config" の設定として 参照するための任意のキーであり、実際のドメイン名を表しているわけでは ない。この設定は、明示的に指定されていない他の全てのドメインを包括する ドメインを意味している。

	idmap domains = CORP TRUSTEDDOMAINS

	idmap config CORP:backend  = ad
	idmap config CORP:readonly = yes

	idmap config TRUSTEDDOMAINS:backend = tdb
	idmap config TRUSTEDDOMAINS:default = yes
	idmap config TRUSTEDDOMAINS:range   = 1000 - 9999
	

既定値なし

idmap domains (G)

idmap domains オプションは、WinbindのSID/uid/gidのテーブルを 管理するためにそれぞれ別々の設定がなされたバックエンドを持つ Windowsドメインのリストを定義する。 このパラメーターは、以前の idmap backend オプションと同時に利用することはできない。

値は、Winbindのプライマリドメイン、および信頼関係にあるドメインの ショートドメイン名から構成される。リストに指定されていない ドメインのための包括的なドメイン名として、任意の文字列のドメインを 指定することも可能である。

それぞれのドメインの SID/uid/gid バックエンドを管理するための 詳細についてはidmap configを参照のこと。

既定値なし

例: idmap domains = default AD CORP

winbind gid

このパラメータは右記のパラメータの別名である:idmap gid.

idmap gid (G)

idmap gid パラメータは UNIX グループを NT グループの SID に マッピングする際に使用するグループ id の範囲を指定する。 予期しない競合が発生しないようにするため、この GID の範囲に ローカルな グループや NIS グループが存在しないようにすること

idmap backendidmap domainsidmap configも参照のこと。

既定値: idmap gid =

例: idmap gid = 10000-20000

idmap negative cache time (G)

このパラメーターは Winbindのidmapインターフェースが SID/uid/gidの問い合わせに失敗した結果をキャッシュしておく秒数を 指定する。

既定値: idmap negative cache time = 120

winbind uid

このパラメータは右記のパラメータの別名である:idmap uid.

idmap uid (G)

idmap uid パラメータは UNIX ユーザを NT ユーザの SID に マッピングする際に割り当てられるユーザ id の範囲を指定する。 予期しない競合が発生しないようにするため、この GID の範囲に ローカルな ユーザや NIS ユーザが存在しないようにすること

idmap backendidmap domainsidmap configオプションも参照のこと。

既定値: idmap uid =

例: idmap uid = 10000-20000

include (G)

このパラメータを使うと、ある設定ファイル中に別の設定ファイルを挿入できる。 挿入されるファイルは、挿入された場所に記述されたかのように、 そのままの形で挿入される。

このパラメータには、%u%P%Sパラメータを除き、標準の変数置換が適用される。

include = registry というパラメータには特殊な意味が ある。これはカレントディレクトリから registry という 名前のファイルをインクルードするのではなく、 レジストリーからグローバル設定を読み込む。詳細はレジストリーベースの設定 に関する章を参照されたい。注意:このオプションはレジストリー共有を自動的に 有効にする。

既定値: include =

例: include = /usr/local/samba/lib/admin_smb.conf

inherit acls (S)

このパラメータは、 親ディレクトリにデフォルト ACL が設定されており、 サブディレクトリの作成時に、その ACL の設定を引き継がせたい場合に用いられる。 デフォルトでは ディレクトリ作成時に設定されるモードが用いられる。 このオプションを有効にすると、モードが 0777 となり、 ディレクトリのデフォルト ACL を確実に継承できるようになる。

既定値: inherit acls = no

inherit owner (S)

新規作成したファイルやディレクトリの所有者としては、 通常接続しているユーザの実行 UID の値が用いられる。 このパラメータにより、Samba の管理者は、 新規作成したファイルやディレクトリの所有者を 親ディレクトリの所有者と同一にすることが可能となる。

この動作が有用な状況としては、 ユーザがファイルの作成や修正はできるが、削除はできないようにした drop box や、 あるユーザの移動プロファイルのディレクトリ内に新規作成されたファイルの所有者が そのユーザとなるようにしたい場合などが挙げられる。

既定値: inherit owner = no

inherit permissions (S)

通常、新規作成したファイルやディレクトリのパーミッションは、 create maskdirectory maskforce create modeforce directory mode パラメータによって決定されるが、 真偽値パラメータである inherit permissions は、それらに優先される。

新しいディレクトリはsetgid のようなビットも含め、 親ディレクトリのパーミッションを引き継ぐようになる。

新しく作成されたファイルは、read/write ビットの設定を親ディレクトリから引き継ぐようになる。 execute ビットについては、従来どおり map archivemap hiddenmap system などにより制御される。

setuid ビットが引き継がれることは、決して ない(コード上で明示的に禁止している)。

このパラメータは、数千人レベルの多くのユーザが存在する大規模なシステムで、 単一の [homes] 共有を各ユーザが柔軟に利用できるようにさせる際に、 特に有用であろう。

既定値: inherit permissions = no

interfaces (G)

このオプションにより、Sambaがブラウジング、名前の登録その他のNBTの通信に利用するネットワークインタフェースのリストを設定することが可能となる。 デフォルトの場合、Sambaはカーネルに対して有効なインタフェースのリストを問い合わせ、 127.0.0.1以外のブロードキャスト可能なインタフェースをすべて利用する。

このオプションはインタフェースを示す文字列のリストとなる。 各文字列は以下の形式のいずれで指定してもよい。

  • ネットワークインタフェース名(eth0など)。 シェルのようなワイルドカード指定も可能である。 例えばeth*は「eth」から始まるすべてのインタフェースを指定したことになる。

  • IPアドレス。 この場合、ネットマスクの値は、カーネルから取得されたインタフェースのリストにより設定される。

  • IP/mask のペア。

  • ブロードキャスト/mask のペア。

「mask」パラメータはビット長(例えば24はクラスCネットワーク)で指定しても、 ドット区切り10進数表記で指定してもよい。

上記の「IP」パラメータは、ドット区切り10進法で指定しても、 OSの標準的なホスト名解決機構で解決可能なホスト名で指定してもよい。

デフォルトで、Samba はループバックインタフェース (IPアドレス 127.0.0.1) を除くブロードキャスト可能なすべての有効なインタフェースを使用する。

以下の設定では、eth0 デバイスと 192.168.2.10 および 192.168.3.10 の IP アドレスに対応する 3 つのネットワークインタフェースが指定されている。 後者のインタフェース 2 つに対するネットマスクは 255.255.255.0 に設定されている。

既定値: interfaces =

例: interfaces = eth0 192.168.2.10/24 192.168.3.10/255.255.255.0

invalid users (S)

これは、サービスに対するログインを許可しないユーザのリストを指定する。 このパラメータは、不適切な設定により発生しうるセキュリティ上の問題を完全に抑止する、 パラノイド的設定である。

「@」ではじまる名前は(システムがNISをサポートしている場合)、 まずNISネットグループとして解釈され、NISネットグループデータベースに名前が存在しない 時は、UNIXのグループとして解釈される。

「+」で始まる名前は、NSS getgrnam() インタフェース経由でUNIXのグループ名として のみ解釈される。「 & 」で始まる名前は、NISネットグループの名前としてのみ解釈される (この場合システムでNISが稼働している必要がある)。 名前の前に付けられた「+」および「 & 」文字は、検索の順番を示す意味で使うこともできる。 例えば、+&groupは、 UNIXグループを検索してから、NISネットグループを検索するという意味になり、 &+groupは、 NIS ネットグループを検索してから UNIXグループを検索するという意味になる(これは「@」と同等になる)。

%Sは、 現在のサービス名に置換される。これは [homes] セクションで有効である。

既定値: invalid users = # invalid users は空である

例: invalid users = root fred admin @wheel

iprint server (G)

このパラメータは、printingiprint に設定されている場合のみ有効である。

設定されている場合、CUPS の client.conf で指定された ServerName オプションの値がこのパラメータによって上書きされる。 複数の仮想 Samba サーバが起動している環境で各々が異なる CUPS デーモンに接続している環境では、このパラメータが必要となる。

既定値: iprint server = ""

例: iprint server = MYCUPSSERVER

keepalive (G)

このパラメータの値(整数値)により、 keepalive パケットが送出される秒単位の間隔が設定される。このパラメータの値が0の場合、 keepalive パケットは送出されない。 keepalive パケットを送出することにより、サーバはクライアントマシンが存在していて応答があることを確認することが可能になる。

ソケットにデフォルトで SO_KEEPALIVE 属性が設定されている場合( socket options を参照のこと)、通常 keepalive は不要である。基本的に、このオプションは問題が発生している場合にのみ使用すべきである。

既定値: keepalive = 300

例: keepalive = 600

kernel change notify (S)

このパラメータは、Samba がカーネルに対してディレクトリの変更 通知を要求するか指定でき、この機能を使用すれば、サーバ上にある データに変更があった場合に SMB クライアントがその結果を 反映できるようになる。

このパラメータは使用しているカーネルが inotify インターフェース を使用してユーザプログラムに対しての変更の通知をサポートしている 場合にのみ使用される。

既定値: kernel change notify = yes

kernel oplocks (G)

カーネルベースの oplocks をサポートしているUNIX(現在はIRIXとLinux 2.4カーネルのみ)の場合、 このパラメータにより oplock の利用を制御できる。

カーネル oplocks のサポートにより、 smbd(8) が oplock を行ったファイルに対して、 ローカルな UNIX プロセスや NFS 経由でのアクセスがあった際に、 Sambaが oplocks を破棄することが可能となる。 これにより、 SMB/CIFS と NFS やローカルファイルアクセスとの間の完全な一貫性が確保される (これは非常に素晴らしいことである :-)。

このパラメータのデフォルト値は、 on であるが、 カーネルがこの機能をサポートしていないシステムでは、自動的に無効にされる。 このパラメータを変更する必要はないであろう。

既定値: kernel oplocks = yes

lanman auth (G)

このパラメータは、smbd(8) が LANMAN パスワードハッシュを使用した認証を行なうか否かを制御する。 無効にした場合、 NT パスワードハッシュを利用するクライアント (Windows NT/2000クライアント、smbclientなど。しかし Windows 95/98 や MS-DOS クライアントは含まない)のみがSambaホストに接続できる。

LANMAN 暗号化レスポンスは簡単に解読することが可能である。 これは大文字と小文字を区別しないことや、使用しているアルゴリズムなどに起因する。 Windows 95/98 や MS-DOS クライアントが存在しない場合は、このオプションを無効にした方ががよいだろう。

encypt passwords オプションとは異なり、このパラメータはクライアントの挙動を制御するものではなく、 LANMAN レスポンスは以前としてネットワーク上を送信される。 Samba のクライアント (smbclient など) で LANMAN レスポンスを無効にするには client lanman auth を参照のこと。

このパラメータと ntlm auth の両方を無効にした場合、 NTLMv2 によるログインのみが可能となる。 クライアントのすべてが NTLMv2 をサポートしているわけではなく、ほとんどのクライアントでは NTLMv2 を使用するために明示的な設定を行なう必要がある。

既定値: lanman auth = no

large readwrite (G)

このパラメータは、Windows 2000で導入された、 さまざまなSMBリクエストにおける新しい64Kのストリーム読みとりおよび書き込みを smbd(8) がサポートするかどうかを制御する。 Windows 2000クライアントのリダイレクタにはバグがあるため、 このパラメータを利用するには、SambaがIRIX、Solaris、Linux 2.4カーネルのような64ビットのOSで動作している必要がある。 Windows 2000クライアントにおいては、10% のパフォーマンス向上が見込まれる。 デフォルト値は on であるが、他の Samba コードほどにはテストが充分には行われていない。

既定値: large readwrite = yes

ldap admin dn (G)

ldap admin dn は、 Samba がユーザのアカウント情報を取得するために ldap サーバに接続する際に 用いられる、Distinguished Name (DN) を指定する。 ldap admin dn は、 private/secrets.tdb ファイルに 格納された admin dn のパスワードとともに用いられる。 これがどのように連携するかについての詳細な情報は、 smbpasswd(8) のマニュアルページを参照のこと。

ldap admin dn には完全な DN 名を指定する必要がある。 ldap suffix の値が ldap admin dn に付加されることはない。

既定値なし

ldap connection timeout (G)

このパラメータは、LDAPサーバに対して最初のコネクションを確立する間に保持するための LDAPライブラリ呼び出しの秒単位のタイムアウトを指定する。これは実際、フェールオーバ の手順においてとても便利である。もしも、1つまたはそれ以上のLDAPサーバが接続不能に なった時、TCPのタイムアウトが満了になるのを待つ必要が無くなる。この機能は、LDAP ライブラリによってサポートされなければならない。

このパラメータは、存在するコネクションを使ってのLDAPサーバ上の操作に影響する ldap timeoutとは異なり、最初の接続を確立しない。

既定値: ldap connection timeout = 2

ldap debug level (G)

このパラメータは LDAP ライブラリコールのデバッグレベルをコントロールする。 OpenLDAP の場合、これはサーバで解釈されるビットフィールドと同じものであり、 slapd.conf(5) のマニュアルにその解説がある。よく使われる有用な値として、 1 がある。これは関数コールをトレースする。

LDAP ライブラリからのデバッグ出力は、Samba のログ出力の中で頭に [LDAP] がついたものである。LDAP がログ出力をするレベルは ldap debug threshold パラメータでコントロール できる。

既定値: ldap debug level = 0

例: ldap debug level = 1

ldap debug threshold (G)

このパラメータは、Samba のデバッグレベルの中で、LDAP ライブラリの デバッグ出力を Samba のログに出力するためのレベルをコントロールする。 詳細は ldap debug level を参照のこと。

既定値: ldap debug threshold = 10

例: ldap debug threshold = 5

ldap delete dn (G)

このパラメータは ldapsam の削除の操作時に、エントリを完全に 削除するか、Samba でしか使用されない属性だけを消すかの制御を行なう。

既定値: ldap delete dn = no

ldap group suffix (G)

このパラメータは、グループが LDAP ディレクトリに加えられるときの サフィックスを指定する。もしこのパラメータが設定されていない場合、 ldap suffix の値が代わりに使用される。 サフィックスの文字列には、ldap suffix の文字列が付加されるため、相対 DN で指定を行なうこと。

既定値: ldap group suffix =

例: ldap group suffix = ou=Groups

ldap idmap suffix (G)

このパラメータは idmap mapping の情報の保存先のサフィックスを 指定する。このパラメータが設定されていない場合、 ldap suffix の値が代わりに使用される。 サフィックスの文字列には、ldap suffix の文字列が付加されるため、相対 DN で指定を行なうこと。

既定値: ldap idmap suffix =

例: ldap idmap suffix = ou=Idmap

ldap machine suffix (G)

このパラメータはマシンアカウントが LDAP ツリーのどこに 追加されるかを指定する。もしこのパラメータが設定されていない場合、 ldap suffix の値が代わりに使用される。 サフィックスの文字列には、ldap suffix の文字列が付加されるため、相対 DN で指定を行なうこと。

既定値: ldap machine suffix =

例: ldap machine suffix = ou=Computers

ldap passwd sync (G)

このオプションは、Samba によるパスワード変更時に、Samba が通常のアカウント (ワークステーション、サーバやドメインの信頼関係は含まない) の NT ハッシュや LM ハッシュと、LDAP のパスワード の同期をおこなうかを定義する。

ldap passwd sync には、 以下の 3 つのうちの 1 つを設定することができる:

  • Yes = LDAP、NT、LM パスワードの更新を試み、pwdLastSet time を変更する。

  • No = NT、LM パスワードと pwdLastSet time を更新する。

  • Only = LDAP パスワードのみを変更し、あとの処理は LDAP サーバに 委任する。

既定値: ldap passwd sync = no

ldap replication sleep (G)

Samba が読みとり専用の LDAP レプリカに対して、書き込みの要求を行なった際には、読み書き可能なマスタサーバと通信するようにリダイレクトを行なう。 その後マスタサーバは、変更を最初に通信した「ローカル」サーバに対して複製を行なうが、特に遅い回線越しの場合、これには数秒の時間を要する。 特にドメインへの参加といったクライアント側の処理については、「成功」した処理が LDAP のデータに即座に反映されないことで、 混乱する可能性がある。

このオプションにより、LDAP サーバに変更が反映されるのを待つために Samba が短い時間待機するようになる。 遅延の大きいネットワークの場合、LDAP の複製に要する時間をネットワークモニタで取得の上、それに応じて値を増減すればよいだろう。 データの複製が完了したかどうかについてのチェックが行なわれるわけではない点に注意すること。

この値はミリ秒単位で指定する。最大値は 5000 (5秒)である。

既定値: ldap replication sleep = 1000

ldapsam:editposix (G)

Editposix は ldapsam:trusted を利用してドメインコントローラーの管理をより 簡単にするためのオプションである。これを使えば posix ユーザーやグループの 追加や保守のためのカスタムスクリプトを設定しなくてもすむ。その代わりこの オプションでは、LDAP ツリー上のユーザやグループのエントリーを直接生成、 削除、編集できる。なお、このオプションを使うにあたっては、ユーザ/グループ の生成をする際に新しい uid/gid を割り当てるための winbindd が動いている 必要がある。その割り当て範囲はあらかじめ設定されていなければならない。

このオプションを使うためには、基本的な LDAP ツリーが提供され、また LDAP サフィックスが適切に#