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
このセクション中のパラメータは、サーバ全体に対して、 もしくは各セクションで項目が定義していないときの既定値として 適用される。詳細な情報はパラメータ(PARAMETERS)の節を参照のこと。
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] 共有を不可視にしても、自動的に作成されるホームディレクトリを表示させるようにするための仕様である。
このセクションは、プリンタ用の [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 ファイル中の各レコードの
最初のエントリに続く各要素をさす。
各レコードは改行コードで区切られ、各要素は (複数個存在する場合)
縦棒 (|
) で区切られる。
lpstat コマンドによりシステムで定義されている
プリンタの一覧を取得可能な SYSV 系のシステムでは、
printcap name = lpstat
とすることで、
プリンタの一覧を取得することが可能である。
詳細は、printcap name
オプションを参照のこと。
Samba 3.0.23 より、root 以外のユーザが共有の追加、修正、削除を行なうことを可能とする機能が追加された。
この機能を ユーザ定義共有(usershares) と呼び、
smb.conf の セクションで定義される一連のパラメータによって制御される。
関連するパラメータを以下に示す :
ユーザ定義共有でゲストアクセスを許可するかどうかを制御する。
作成を許可するユーザ定義共有の最大数を制御する。
有効にすると、ユーザが所有しているディレクトリのみが共有可能となる。
ユーザ定義共有を作成可能なディレクトリを指定する。 実際にユーザ定義共有を作成可能かどうかは、ファイルシステム上のディレクトリのパーミッションに依存する。
共有を許可するディレクトリの絶対パス名をコンマで区切って列挙する。 ここで指定されたパス名から始まるディレクトリのみが共有を許可される。
共有を拒否するディレクトリの絶対パス名をコンマで区切って列挙する。 ここで指定されたパス名から始まるディレクトリは共有を拒否される。
新しいユーザ定義共有を作成する際のテンプレートとなる既存の共有を指定する。 ユーザ定義共有の定義時に指定されなかったすべての共有に関するパラメータは、この共有のものが用いられる。
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 グループのメンバは、以下のコマンドでユーザ定義共有を作成することが可能となる。
これにより、ユーザ定義共有を作成もしくは修正(上書き)する。
ユーザ定義共有を削除する。
ユーザ定義共有を一覧する。
ユーザ定義共有の情報を表示する。
パラメータはセクションの属性を定義するものである。
幾つかのパラメータ (security など) は、 [global] セクションで指定する。また幾つかのパラメータ (create mask など) は、すべてのセクションで 利用可能である。それ以外のパラメータは、通常のセクションでのみ 利用できる。以下の説明では、[homes] と [printers] セクションを "通常の" セクションとして扱う。(G) がついたパラメータは、 [global] セクションでのみ指定できる。(S) がついたパラメータは、個々のサービスを表すセクションで指定できる。 ただし、(S) がついたパラメータは、[global] セクション中で指定することも可能である。この場合、それらはすべての サービスに対するデフォルト値として機能する。
パラメータはアルファベット順に説明されている。 最良の順序とはいえないが、少なくとも目的のパラメータを見つけることは できるだろう。同義語がある場合は、主として用いるべき表記の部分で 説明が行なわれ、他はその表記への参照になっている。
設定ファイルに記述可能な文字列の多くには、変数による置換を利用できる。 たとえば、“path = /tmp/%u” は、john というユーザ名でユーザが 接続すると、“path = /tmp/john” として解釈される。
これら置換の詳細については、各々のパラメータの説明にて 解説するが、どのパラメータに対しても適用される共通の変数置換もいくつか 存在する。それらを以下に記載する:
セッションのユーザ名 (クライアントが接続時に 送信したものであるが、実際に接続したユーザ名と同じであるとは 限らない)。
%U のプライマリグループ。
Samba が動作しているマシンの インターネットホスト名。
クライアントマシンの NetBIOS 名 (とても便利)。
Samba がポート 445 で待機している場合、クライアントがこの情報を送信しないため、この変数は利用できない。
Samba がドメインコントローラであるドメインで include パラメータにおいてこの変数を用いている場合などは、
[global] セクションで smb ports = 139
の設定を行なうこと。
これにより Samba はポート 445 で待機しなくなり、Samba 2.X で実現していた include 機能が利用できる。
サーバの NetBIOS 名。これを用いることで、 クライアントから呼ばれた名前に応じて設定を変更することが 可能となる。これによりサーバは “二つの顔” を持つことができる。
クライアントマシンのインターネットホスト名。
プロトコルのネゴシエーションを経て選択された プロトコルレベル。これは CORE、COREPLUS、LANMAN1、LANMAN2、NT1 のいずれかの値をとる。
サーバプロセスのプロセス ID。
リモートマシンのアーキテクチャ。
現在認識できるのは
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 Server 2003 (Win2K3
) である。
それ以外のものは “UNKNOWN” となる。
クライアントマシンの IP アドレス。
クライアントが接続してきたサーバの IP アドレス。
現在の日付と時間。
現ユーザが所属するドメインかワークグループ名。
Winbind のセパレータ
envvar
)環境変数envvar
の値。
以下の置換マクロは (すでに接続が確立されている場合に) いくつかの 設定オプションに対して有効なものである:
現在のサービス名 (存在する場合)。
現在のサービスのトップディレクトリ (存在する場合)。
現在のサービスのユーザ名 (存在する場合)。
%u のプライマリグループ。
%u で指定されたユーザのホームディレクトリ。
NIS のホームディレクトリサーバの名前。 これは NIS の auto.map エントリから取得される。Samba が --with-automount オプションをつけて コンパイルされていない場合、このオプションは %L と同じになる。
NIS auto.map エントリから取得された サーバの
ホームディレクトリのパス。NIS auto.map エントリは
%N:%p
のように分割されている。
これらの置換操作とその他の smb.conf
のパラメータを組み合わせると、非常に凝った動作を設定できる。
Samba は、DOS や Windows クライアントが 8.3 形式に準拠しない 名前のファイルを扱うことができるように “名前の短縮” 機能を提供している。この機能により、8.3 形式のファイル名についても 文字の case (大文字、小文字) を調整可能である。
短縮時の動作を制御するパラメータが幾つか存在しており、 それらは個々に解説を行なわず、ここでまとめて説明を行なう。 デフォルト値は testparm コマンドの出力を参照のこと。
以下のオプションは、すべて共有毎に設定できる (もちろん全体に対しても設定できる)。
オプションは以下の通りである:
ファイル名の case を識別するかどうかを制御する。 識別を行なわない場合、Samba は指定された名前に合致する ファイル名の有無を検索することが必要になる。デフォルトは auto であり、ファイル名の case を識別するクライアント(現在のところ Linux CIFSVFS や Samba 3.0.5 以降の smbclient) に対しては、case を識別する(UNIX の case を識別する挙動に準拠する) ファイルシステム上の Samba サーバにアクセスしているものとして通知する。 Windows および DOS システムでは case を識別するファイル名はサポートされておらず、このパラメータを auto に設定した場合、no の設定で動作する。 デフォルトは auto である。
新しく作成されるファイル(現在ファイルシステム上に存在していないファイル)のファイル名のデフォルトの case を制御する。 デフォルトは lower である。 重要: case sensitive = yes、 preserve case = No、 short preserve case = No の場合、このオプションにより、新しく作られるファイル名だけではなく、クライアントから渡される すべての ファイル名の case が変更されることに注意。 非常に多くのファイルを格納するディレクトリの最適化作業の一貫として、この設定変更が必要となる。
新しく作成されるファイル(現在ファイルシステム上に存在していないファイル)のファイル名について、クライアントから
渡された case で作成するか、デフォルト
の case
で作成するかを制御する。
デフォルトは yesである。
すべて大文字で適切な長さの 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 は省かれる。
クライアントからユーザ名とパスワードが
提供されており、それが UNIX システムのパスワード機構によって
認証された場合、そのユーザ名を使った接続が行なわれる。この
ステップは \\server\service%
形式でユーザ名が提供された場合にも行なわれることに注意。
username
クライアントからシステムに登録されている ユーザ名が提供された場合、そのユーザ名に対する適切な パスワードが提供されれば、接続が許可される。
クライアントの NetBIOS 名および以前に使われた ユーザ名について提供されたパスワードとの確認が行なわれ、 合致すれば、対応するユーザ名を使った接続が許可される。
クライアントが既にユーザ名とパスワードを 提供してサーバに認証されており、その際の認証トークンが 提示された場合、そのユーザ名が使われる。
user =
フィールドが
smb.conf
ファイルで
該当サービスに対して設定されており、クライアントから提供された
パスワードが (UNIX システムのパスワード認証により)
user =
行に記述されたユーザ名のいずれかのものと
合致した場合、接続は、user =
行で設定された
ユーザ名で行なわれる。user =
リスト中のユーザ名の
中に @
ではじまるものがあった場合、それはその名前の
グループに所属するユーザ名のリストに展開される。
サービスがゲストサービスの場合、
提供されたパスワードがなんであっても、そのサービスの
guest account =
で指定されたユーザ名で接続が
行なわれる。
このパラメータは、 smbd(8) が呼び出すことで、 shutdown script によって実行されたシャットダウン処理を停止させるスクリプトのフルパス名である。
接続しているユーザが SeRemoteShutdownPrivilege
権限を保持している場合、このコマンドはユーザ権限で呼び出される。
デフォルト値: abort shutdown script
=
設定例: abort shutdown script
= /sbin/shutdown -c
この真偽値パラメータは、 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
このパラメータはどの OS の ACL の挙動と互換性をとるかを指定する。 設定可能な値は、Windows NT 4.0 互換の winnt か、 Windows 2000 以上と互換の win2k もしくは auto である。 auto に設定した場合、パラメータの値はクライアントのバージョンによって変更される。 このパラメータをデフォルトから変更する必要はないだろう。
デフォルト値: acl compatibility
= Auto
設定例: acl compatibility
= win2k
POSIX ファイルシステムでは、ファイルまたはディレクトリの所有者とスーパーユーザのみがファイルのパーミッションや ACL を修正できる。 このパラメータを有効にすると、Samba はこの制約を無視して、 ファイルやディレクトリの プライマリグループ所有者 が、 ファイルのパーミッションや ACL を修正することを可能とする。
Windows サーバでは、グループがファイルやディレクトリの所有者となることができるため、 そのグループに所属する誰もがパーミッションを修正することができる。 これにより、ディレクトリのグループ所有者が、ファイルシステムのある地点以下のセキュリティ管理を委任することが可能となり、 その配下に作成されるファイルやディレクトリについても、そのグループが所有者となる。 ACL を変更する権限を複数名が保持しているため、管理性が向上する。
このパラメータにより、公開されたディレクトリ階層内で Samba が Windows と類似した制御の制御を行なうことを可能とする。 これは、UNIX グループのメンバ全員がグループ所有者となっているファイルやディレクトリのパーミッション制御を行なうことが可能となることを意味する。
このパラメータは、inherit owner パラメータが有効で、 ディレクトリに UNIX の setgid ビット が設定された共有で用いるのが最適であり、 共有内に作成される新しいファイルやディレクトリに、 親ディレクトリのグループ所有者を継承させることが可能となる。
このパラメータは、Samba 3.0.23 において、廃止予定の(deprecated)パラメータとなった。
現在は dos filemode
パラメータで、同じ挙動が実装されている。
デフォルト値: acl group control
= no
この真偽値パラメータは、 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
このパラメータは、新しいグループの作成が要求された際に、 smbd(8) によって ROOT 権限で 実行されるスクリプトのフルパス名である。
%g
はグループ名に展開される。
スクリプトは Windows NT のドメイン管理ツールを使用して設定を行なう際にのみ有効である。
このスクリプトでは、UNIX側のグループ名の制約に捕らわれず、任意の名前のグループを作成することができる。
ただし、その場合スクリプトは標準出力に作成されたグループの gid の数値を表示する必要がある。
デフォルト値なし
このパラメータは、管理者のユーザ名とパスワードを指定する方式によってマシンがドメインに追加された際に、 smbd(8) によって実行されるスクリプトのフルパス名である。
このオプションは、 smbpasswd のように SAM バックエンドの RID の計算方式が UNIX の UID に関連づけられている場合にのみ必要とされる。 このオプションは Samba 3.0 でのみ利用可能である。
デフォルト値: add machine script
=
設定例: add machine script
= /usr/sbin/adduser -n -g machines -c Machine -d /var/lib/nobody -s /bin/false %u
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
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 エラーを返却する。
「add printer command」は Samba が新しいプリンタが接続するポートとして設定した文字列からなる1行を返却する。 返却されない場合、Samba は印刷共有の再読み込みを行なわない。
デフォルト値: add printer command
=
設定例: add printer command
= /usr/bin/addprinter
Samba 2.2.0 では、
Windows NT 4.0 のサーバーマネージャーを用いて動的に共有を追加したり削除したりする機能が追加された。
add share command
は、
新しいサービスの設定を smb.conf
に追加する外部のプログラム、もしくはスクリプトを設定するためのパラメータである。
add share command
を実行するため、管理者は smbd に対して
root アカウント(uid = 0)を利用して接続する必要がある。
(訳注: SeDiskOperatorPrivilege 権限のあるアカウントでも可能)
コマンド実行時に、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
このパラメータは、以下に記述する特別な条件下において、 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
このパラメータは、 Windows NT のドメイン管理ツールによってユーザにグループが追加された際に実行されるスクリプトのフルパス名である。
これは smbd(8) によって ROOT 権限で 呼び出される。
%g
はグループ名に置換され、
%u
はユーザ名に置換される。
adduser コマンドは、すべてのシステムにおいて、 以下の例で用いた構文をサポートしているわけではないことに注意。
デフォルト値: add user to group script
=
設定例: add user to group script
= /usr/sbin/adduser %u %g
このパラメータは、共有上で管理者権限が与えられるユーザのリストである。 指定されたユーザは、すべてのファイル操作をスーパーユーザ (root) として実行できる。
このリストに登録されているユーザは、 ファイルのパーミッションに関係なくあらゆる操作を行うことができてしまうため、 このオプションは十分に注意して使用すべきである。
このパラメータは、 Samba 3.0 における security = share 環境では動作しない。 これは仕様である。
デフォルト値: admin users
=
設定例: admin users
= jason
このパラメータは、共有に対して AFS 特有の機能を有効にするかどうかを指定する。
もし有効な場合、path
パラメータでエクスポートされているディレクトリをローカルの AFS インポートとして扱う。
特殊な AFS の機能というのは、もし configure 時に
--with-fake-kaserver オプションを有効にした場合に、
AFS トークンを作成しようとする機能などが含まれる。
デフォルト値: afs share
= no
ダミーの kaserver の AFS 機能を使用している場合、 作成するトークンのユーザ名を指定したい場合もあるだろう。 たとえば、AFS Protection Database に複数のドメインのユーザが混在している場合などが挙げられる。 一つの解決策は、winbind と同じように + をセパレータとして DOMAIN+User と指定することである。
マップされたユーザ名はログインするためのセル名を含んでいる必要がある。 そのため、このパラメータが指定されていない場合、トークンは使用されない。
(訳注: AFSに関する知識不足のため、訳の正確性については担保できない)
デフォルト値: afs username map
=
設定例: afs username map
= %u@afs.samba.org
このパラメータにより、 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
このパラメータにより、管理者が Windows クライアントから見たアロケーションサイズを切り上げることが可能となる。 デフォルトのサイズである 1MB にすることで、通常 Windows クライアントのパフォーマンスは向上する。 ただし、Visual Studio のように、 アロケーションサイズを切り上げることで問題が発生するアプリケーションもある。 Visual Studio のコンパイラーが内部エラーでクラッシュしてしまうような場合は、 該当の共有でこのパラメータを 0 に設定すること。
このパラメータには、切り上げるサイズをバイト単位の整数値で指定する。
デフォルト値: allocation roundup size
= 1048576
設定例: allocation roundup size
= 0
# (to disable roundups)
このパラメータは、security パラメータが server
、
domain
もしくは ads
に設定されている時のみ有効である。
no に設定されている場合、 smbd が動作しているドメインもしくはワークグループ外からのリソースへの接続要求は、失敗する。
これは、たとえそのドメインが認証を行なうサーバによって信頼されている場合であっても同様である。
このオプションは、 Samba サーバが所属するドメインのユーザのみにリソースを提供させたい場合に便利である。 一例として DOMA と DOMB という 2 つのドメインがあって、 DOMA は Samba サーバを含み、DOMB を信頼している場合を想定する。 通常の条件では、DOMB中にアカウントを持つユーザは、 Samba サーバに同じ名前の UNIX アカウントがあれば、 DOMA にアカウントがなくてもリソースにアクセスできるため、 セキュリティ境界の区分けが困難である。
デフォルト値: allow trusted domains
= yes
このパラメータは、 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
このパラメータは、 nmbd が自身をサーバとしてアナウンスする際に指定するメジャーおよびマイナーバージョン番号を指定する。 デフォルトは 4.9 である。 Samba サーバをより下位のサーバとして設定する特別な必要性がない限り、このパラメータは変更しないこと。
デフォルト値: announce version
= 4.9
設定例: announce version
= 2.0
このパラメータにより、管理者は smbd がユーザ認証を行なう際に使用する認証機構を選択することが可能となる。 このパラメータのデフォルトは、security パラメータに基づいて適切な値が設定される。 このオプションは開発者向けであり、 特殊な状況でのみ使用するものと考えるべきである。 実際の運用では多くの場合 (必ずというわけではない)、デフォルト設定のままにしておくべきである。
ユーザが認証されるまで、 リスト中の各エントリによって順番にユーザ認証が行なわれる。 従って、実際に認証が成功となる認証機構は1つだけである。
設定可能な値としては、guest
(匿名アクセス)、
sam
(NetBIOS名あるいはドメイン名に基づくローカルのアカウントリストの検索)、
winbind
(winbinddによるリモートユーザーの認証要求の中継)、
ntdomain
(winbindd 導入以前のリモートドメインユーザーの認証方法。
現在は winbindd を使用する方が望ましいので使用すべきではない)、
trustdomain
(信頼できるユーザーの、smbd からリモート DC への直接アクセスによる認証。
現在は winbindd を使用する方が望ましいので使用すべきではない) がある。
デフォルト値: auth methods
=
設定例: auth methods
= guest sam winbind
このパラメータにより、サービスを「無効」とすることが可能である。
available = no
の場合、
サービスに対する接続はすべて失敗する。これらの失敗は記録される。
デフォルト値: available
= yes
このグローバルパラメータにより、 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)ページは、 smbd と nmbd が実行されているかを確認するために、 127.0.0.1 から接続を行なおうとする。 そのため、127.0.0.1を追加していない場合、 smbd と nmbd は実際には動作している場合でも、 常に「not running」と表示される。更に、 swat から smbd と nmbd の開始/停止/再起動を行なうこともできなくなる。
デフォルト値: bind interfaces only
= no
このパラメータは、クライアントからオープン中のファイルの一部範囲に対して、 バイト範囲のロック(byte range lock)が要求された際に、タイムアウトが発生した場合の smbd(8) の動作を制御する。
このパラメータが設定されている場合にロック範囲の要求が即座に処理できない場合、 Samba は内部的にロック要求をキューイングして、タイムアウトが来るまで定期的にロックを取得する動作を行なう。
このパラメータが no
の場合、
Samba は以前のバージョンの Samba (訳注: Samba 1.9.x 以前)と同様に振舞い、
ロック範囲が取得できない場合にただちにロック要求を失敗させる。
デフォルト値: blocking locks
= yes
このパラメータにより、ディスクの空き領域を報告する際の smbd(8) の動作が制御される。 デフォルトでは、ディスクのブロックサイズを 1024 バイトとして報告が行なわれる。
このパラメータを変更した場合、クライアントからの書き込みに影響がでることが予想されるが、確認されていない。このパラメータは、熟練した管理者が(通常より大きい値に)変更を行なうことで、再コンパイルを行なうことなく、クライアントからの書き込みパフォーマンスへの影響をテストすることを可能とするために追加された。これは実験的なオプションのため、将来のリリースでは削除されるかも知れない。
このオプションを変更しても、報告されるディスクの空き容量自体は変わらない。クライアントに報告されるディスクのブロックサイズが変更されるだけである。
デフォルト値: block size
= 1024
設定例: block size
= 4096
このパラメータは、browseableの別名である。
このパラメータは、net view コマンドやブラウズリスト中に現れる利用可能な共有の一覧にこの共有を表示させるかどうかを制御する。
デフォルト値: browseable
= yes
このパラメータは、クライアントからの NetServerEnum
コールに対して、 smbd(8) がブラウズリストを提供するかどうかを制御する。
通常 true
に設定されている。
これを変更する必要はまずないであろう。
デフォルト値: browse list
= yes
このパラメータは、case sensitiveの別名である。
name mangling セクションでの説明を参照のこと。
デフォルト値: case sensitive
= no
この 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 分毎にする。
Samba 2.2.0 では、Windows NT 4.0 のサーバマネージャから動的な共有の追加や削除を行なう機能が実現されている。
change share command
は
smb.conf
に存在しているサービスの定義を修正するための外部のプログラムやスクリプトを指定するために用いられる。
change share command
を適切に実行するためには、
管理者は root アカウント(uid == 0) で
smbd に接続しておく必要がある。(訳注: SeDiskOperatorPrivilege 権限のあるアカウントでも可能)
スクリプト実行時には smbd が以下の5つのパラメータを設定して自動的に
change share command
を実行する。
configFile
-
グローバルな smb.conf
ファイルの位置
shareName
-
新しい共有名
pathName
- ディスク上に
「存在している」ディレクトリのパス名
comment
-
新しい共有に設定するコメント文字列
max
connections
共有への最大同時接続数。
このパラメータは、既に存在するファイル共有の設定を修正するためにのみ用いられる。 印刷共有の設定を修正する場合、Samba ホストをブラウズすると表示される「Printers...」フォルダから行なうこと。
デフォルト値: change share command
=
設定例: change share command
= /usr/local/bin/addshare
パスワードの複雑性を検証するためのプログラム名を指定する。 パスワードはプログラムの標準入力に送られる。
プログラムは、パスワードが良好であった場合に 0 を、それ以外の場合は他の値を返却しなければならない。 パスワードが脆弱であると判断された(プログラムが 0 を返却しなかった)場合、 ユーザには、パスワード変更の失敗が通知される。
example ディレクトリに、crackcheck というサンプルのプログラムがある。 これは cracklib を用いてパスワードのチェックを行なっている。
デフォルト値: check password script
= Disabled
設定例: check password script
= check password script = /usr/local/sbin/crackcheck
このパラメータは、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
= yes
このパラメータにより、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
= yes
このパラメータはクライアントが netlogon セキュアチャネルの使用を有効にするか、もしくは要求するかを制御する。 client schannel = no はセキュアチャネルを有効にしない。 client schannel = auto はセキュアチャネルを有効にするが、強制はしない。 client schannel = yes はサーバが netlogon セキュアチャネルを理解できない場合、アクセスを許可しない。
デフォルト値: client schannel
= auto
設定例: client schannel
= yes
このパラメータは、クライアントがサーバと通信する際に SMB 署名を有効にするか、もしくは強制するかを設定する。 設定可能な値は、auto、mandatory、disabled である。
auto に設定した場合、SMB 署名が有効になるが、強制はしない。 mandatory に設定すると、SMB 署名が必須となる。disable に設定すると、SMB 署名は有効にならない。
デフォルト値: client signing
= auto
この値により、Samba クライアントが認証の際に Simple and Protected NEGOciation (RFC2478 で規定) をサポートしたサーバ (Windows XP 、 Windows 2000 、Samba 3.0 を含む) に対して SPNEGO の使用を試みるかどうかが制御される。 SPNEGO は Kerberos 認証の際に有効となる。
デフォルト値: client use spnego
= yes
これは、クライアントから「ネットワークコンピュータ」や net view コマンド経由でサーバ上で利用可能な共有を一覧する際に、共有名の横に表示される文字列である。
コンピュータ名の横に表示される文字列を設定したい場合は、server string パラメータを参照のこと。
デフォルト値: comment
=
# コメント文字列なし
設定例: comment
= Fred's Files
このオプションを指定することで、デフォルトの設定ファイル
(通常smb.conf
)の代わりのファイルを利用して、
設定を上書きすることが可能になる。このオプション自身が
config file 中に記述されるため、これには「鶏と卵」問題がある。
そのため、このパラメータによって設定ファイルが変更されると、 新しい設定ファイルの内容が先頭からロードされる。
このオプションには、通常の変数置換が適用されるので、 うまく使えばとても便利であろう。
指定された設定ファイルが存在しない場合は読み込まれない (これにより、特定クライアントに対して、 特別な設定ファイルを指定するということが可能となる)。
デフォルト値なし
設定例: config file
= /usr/local/samba/lib/smb.conf.%m
このパラメータにより、サービスエントリの「複製」 が可能となる。指定されたサービスの設定が単純に現在のサービスへと複製される。 現在のセクションに設定されているパラメータは、 複製元のセクションの設定を上書きする。
この機能を使うと、「ひな型(template)」となるサービスを作成した上で、 同様の設定のサービスを単純に作成するということが可能となる。 複製元のサービスは、 設定ファイル内で複製先のサービスより前に記述する必要があることに注意。
デフォルト値: copy
=
設定例: copy
= otherservice
このパラメータは、create maskの別名である。
ファイル作成時に付与されるパーミッションは、 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
このパラメータは、クライアントサイドのキャッシングポリシーを規定し、 オフラインキャッシュ機能を持つクライアントが、 共有上のファイルをどのようにキャッシュするかを規定する。 有効な値は、manual, documents, programs, disable である。
これらの値は、Windows のサーバ側の設定に対応している。
例えば、移動プロファイルが格納されている共有では、 csc policy = disable とすることで、 オフラインキャッシュを無効にできる。
デフォルト値: csc policy
= manual
設定例: csc policy
= programs
このパラメータは printing が
cups
に設定されている場合のみ有効である。
この値は、 CUPS ライブラリに直接渡されるオプションを記述した任意の形式の文字列である。
CUPS で有効な一般の印刷オプション ( CUPS の「Spftware Users' Manual」に記載されているもの ) はすべて設定できる。 また、設定対象のキューで有効な ( 「lpoptions -d printername -l」で表示される ) 任意のプリンタ固有のオプションも設定できる。
Windows クライアントが Samba を経由して印刷を行なう際に CUPS サーバの error_log
ファイルに
「Unsupported format 'application/octet-stream'」といったメッセージが含まれている場合、
このパラメータを raw
に設定するとよい。
現在では /etc/cups/mime.{convs,types}
において、
システム全体で raw 印刷を有効にする必要はない。
デフォルト値: cups options
= ""
設定例: cups options
= "raw,media=a4,job-sheets=secret,secret"
このパラメータは printing が
cups
に設定されている場合のみ有効である。
このパラメータが設定されると、CUPS の client.conf
で設定された ServerName オプションの値が置き換えられる。
これは、仮想 Samba サーバ毎に異なる CUPS デーモンに接続する際に必要である。
なお、サーバ名に引続きコロンの後ろにポート番号を記述することで、ポー ト番号を指定することも可能である。 ポートの指定が行なわれ名張った場合、IPP のデフォルトポート (631) が用いられる。
デフォルト値: cups server
= ""
設定例: cups server
= mycupsserver
設定例: cups server
= mycupsserver:1631
このパラメータの値(10進の整数)は、接続が利用されなくなったとみなされて切断が行なわれるまでの経過時間(分)を表す。 deadtime はオープンされているファイルが存在しない時のみ有効である。
このパラメータは、多数の利用されていない接続によって、サーバ上のリソースが枯渇するのを防ぐのに有効である。
多くのクライアントは、このパラメータをユーザに意識させないように、接続が切断されていた際に、自動で再接続を行なう機能を持っている。
ほとんどのシステムにおいて、このパラメータを利用して、数分でタイムアウトが発生するようにすることを推奨する。
deadtime が 0 の場合、タイムアウトによる自動的な切断は行なわれない。
デフォルト値: deadtime
= 0
設定例: deadtime
= 15
ログメッセージに秒単位以上のタイムスタンプが必要な場合、 この真偽値のパラメータを有効にすることにより、 マイクロ秒単位のタイムスタンプがメッセージに付加される。
このパラメータを有効にする際は、 debug timestamp が有効になっている必要があることに注意。
デフォルト値: debug hires timestamp
= no
fork されて生成された smbd(8) プロセスが同一のログファイルを共用している場合、 どのプロセスがメッセージを出力しているかを識別することは非常に難しい。 この真偽値パラメータを有効にすることで、ログファイル中のタイムスタンプメッセージのヘッダにプロセスIDが付加されるようになる。
このパラメータを有効にする際は、 debug timestamp が有効になっている必要があることに注意。
デフォルト値: debug pid
= no
このパラメータは、debug timestampの別名である。
Samba のデバッグログのメッセージには、 デフォルトでタイムスタンプが付加されるが、 高い、debug level を設定している場合、 このタイムスタンプが目障りに感じることもあるだろう。 この真偽値パラメータにより、タイムスタンプの付加を抑止することができる。
デフォルト値: debug timestamp
= yes
Samba は root 権限で動作する時もあれば、 接続したユーザの権限で動作する時もある。 このパラメータを有効にすると、現在の euid、egid、uid、gid をログファイル中のタイムスタンプメッセージに付加する。
このパラメータを有効にする際は、 debug timestamp が有効になっている必要があることに注意。
デフォルト値: debug uid
= no
name mangling セクションを参照のこと。 short preserve case パラメータにも注意。
デフォルト値: default case
= lower
このパラメータは、printable サービスにのみ適用される。 smbd が、Windows NT/2000/XP クライアントに対してプリンタドライバを提供する際に、 Samba サーバ上の各プリンタでは、用紙サイズ、 orientation, duplex, 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
= no
このパラメータは、default serviceの別名である。
このパラメータは、 要求されたサービスが存在しなかった場合に接続されるサービス名を指定する。 パラメータの値に、大括弧('[' と ']')は不要であることに注意(設定例を参照のこと)。
このパラメータにデフォルト値はない。 このパラメータが設定されていない場合、 存在しない共有に対する接続は失敗する。
default service は guest ok と read-only パラメータを有効にしたサービスにするのが一般的である。
外面的なサービス名はクライアントから要求されたサービス名に変換される。
これは、%S
のようなマクロをワイルドカードサービスに適用する際に、非常に有用である。
default service のサービス名に現れる「_」文字は、「/」にマッピングされる。 これにより、いろいろと面白いことができるだろう。
デフォルト値: default service
=
設定例: default service
= pub
Windows ではファイルのオープン時に他のプロセスとの共有方法を指定することができる。 あるプロセスがファイルを開こうとした時に指定した共有方法が 別のプロセスによって指定された共有方法と共存できないようなものであった際に 共有違反が発生する。 このパラメータにより、smbd は Windows サーバのように動作するようになり、 「共有違反」のエラーメッセージを 1 秒待ってから返却するようになり、 クライアントはこの間に共有違反を起こしたファイルをクローズすることが可能となる。
UNIX のデフォルトでは、こうした挙動は行なわれない。
このパラメータは Samba の挙動をより Windows に近づけるためのものであり、 無効にする必然性はないであろう。
デフォルト値: defer sharing violations
= True
このパラメータは、グループの削除が要求された際に、 smbd(8) によって ROOT 権限で 実行されるスクリプトのフルパス名である。
%g
はグループ名に置換される。
スクリプトは Windows NT のドメイン管理ツールを使用して設定を行なう際にのみ有効である。
デフォルト値: delete group script
=
Samba 2.2における Windows NT/2000 クライアントに対応した MS-RPC ベースの印刷サポートの実装にともない、 DeletePrinter() RPC呼び出しを発行することにより、 実行中にプリンタを削除することが可能になった。
Samba ホスト上では、
実際の印刷システム上から物理的にプリンタが削除される。
deleteprinter command パラメータには、
プリンタを印刷システムとsmb.conf
から削除するために
必要な操作を実行するためのスクリプトを設定する。
deleteprinter command は
「プリンタ名」
のみをパラメータに設定されて自動的に呼び出される。
deleteprinter command が実行されると、
smbd は削除対象のプリンタを無効にするために、
smb.conf
を読み直す。
共有名が依然として有効な場合、smbd はクライアントに
ACCESS_DENIED エラーを返却する。
デフォルト値: deleteprinter command
=
設定例: deleteprinter command
= /usr/bin/removeprinter
このパラメータにより、読み取り専用のファイルの削除が可能になる。 これは DOS の仕様ではないが、UNIX では可能な処理である。
このオプションは、rcs のようなアプリケーションを動作させるのに有用で、 UNIX ファイルの所有者に関する仕様がファイルのパーミッション変更を妨げたり、 DOS の仕様が読み取り専用ファイルの削除を妨げたりする問題を回避する。
デフォルト値: delete readonly
= no
Samba 2.2.0 では、Windows NT 4.0 のサーバマネージャから動的な共有の追加や削除を行なう機能が実現されている。
delete share command
は
smb.conf
に存在しているサービスの定義を削除するための外部のプログラムやスクリプトを指定するために用いられる。
delete share command
を適切に実行するためには、
管理者は root アカウント(uid == 0) で
smbd に接続しておく必要がある。(訳注: SeDiskOperatorPrivilege 権限のあるアカウントでも可能)
スクリプト実行時には smbd が以下の2つのパラメータを設定して自動的に
delete share command
を実行する。
configFile
- グローバルな smb.conf
ファイルの位置
shareName
- 存在しているサービス名
このパラメータはファイル共有を削除する際にのみ利用される。 印刷共有の削除については、 deleteprinter command を参照のこと。
デフォルト値: delete share command
=
設定例: delete share command
= /usr/local/bin/delshare
このパラメータは、 Windows NT のドメイン管理ツールによってユーザがグループから削除された際に実行されるスクリプトのフルパス名である。
これは smbd(8) によって ROOT 権限で 呼び出される。
%g
はグループ名に置換され、
%u
はユーザ名に置換される。
デフォルト値: delete user from group script
=
設定例: delete user from group script
= /usr/sbin/deluser %u %g
このパラメータは、リモート RPC (NT) ツールによってユーザの管理が行なわれた際に、 smbd(8) によって実行されるスクリプトのフルパス名である。
このスクリプトは、「ドメインユーザマネージャ」や rpcclient により、リモートのクライアントがサーバからユーザを削除した際に呼び出される。
このスクリプトは指定されたユーザ名の UNIX ユーザを削除するものでなければならない。
デフォルト値: delete user script
=
設定例: delete user script
= /usr/local/samba/bin/del_user %u
このオプションは、アクセスが禁止(veto)されたディレクトリ
(veto files
オプションを参照のこと)を含むディレクトリを削除しようとする際に影響する。
このオプションが no
(デフォルト) の場合、
アクセスが禁止されたディレクトリ内にアクセスを禁止されていないファイルやディレクトリが含まれていても、
ディレクトリ内の削除は失敗する。これは通常期待されている動作であろう。
このオプションを yes
に設定すると、
Samba はアクセスが禁止されたディレクトリ内でも
再帰的にすべてのファイルやディレクトリを削除しようとする。
NetAtalk のようなファイルサーバを併用する際は、
通常 DOS/Windows ユーザからの参照するのを禁止しているディレクトリ内にメタファイル
(たとえば .AppleDouble
など)を作成するため、このオプションが有用である。
delete veto files = yes を指定することで、 これらのディレクトリは、親ディレクトリが削除された際に、自動的に削除される (ただし、ユーザはディレクトリを削除するパーミッションを持っている必要がある)。
デフォルト値: delete veto files
= no
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
パラメータは、
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 $2" "$4}'
もしくは、以下のようなものも考えられる(Sys V ベースのシステムの場合):
#!/bin/sh /usr/bin/df -k $1 | tail -1 | awk '{print $3" "$5}'
システムによっては、コマンド名をフルパスで記述する必要がある場合があるので注意。
デフォルトは内部ルーチンにより、ディスクの総容量と空き容量が計算される。
デフォルト値なし
設定例: dfree command
= /usr/local/samba/bin/dfree
このパラメータは、directory maskの別名である。
このパラメータは、パーミッションを示す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
このパラメータは、 Windows NT クライアント上のセキュリティダイアログボックスを使って、 UNIX ディレクトリのパーミッションを操作する時に、 設定可能な UNIX 側のパーミッションを指定する。
このパラメータは、変更されるパーミッションビットに対して、 マスクとして適用され (AND 操作が適用され)るため、 このマスクにないビットは変更操作から保護される。 このパラメータを、AND ではなく OR 操作を実行するパラメータである force directory security mode と混同しないように。 基本的に、マスク中で 0 と指定されたビットは、ユーザが変更できないビットと見なされる。
このパラメータが明示的に指定されなかった場合は、 0777 に設定される。これにより、ディレクトリに対する全ての user/group/world パーミッションが変更可能となる。
注意 : 他の方法を使って Samba
サーバにアクセスすることが可能なユーザは、この制限を簡単に回避できてしまう。
そのため、このパラメータの主な用途はスタンドアロンで動作する「アプライアンス」システムになるだろう。
通常のシステムの管理者のほとんどは、
このパラメータをデフォルトの 0777
のままにしておきたいと考えるだろう。
デフォルト値: directory security mask
= 0777
設定例: directory security mask
= 0700
このパラメータを有効にすると、 Samba の NetBIOS サポート機能が無効になる。 Windows 2000 および Windows XP を除くすべてのバージョンの Windows では、NetBIOS のみを使用できる。
NetBIOS サポートを無効にすると、 NetBIOS のみをサポートするクライアントからは Samba サーバにアクセスできなくなることに注意。
デフォルト値: disable netbios
= no
このパラメータを有効にすることで、 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
Samba がメッセージを標準出力や標準エラー出力に出力したり、 SWAT で表示したりする際に用いる文字コードセットを指定する。(訳注: SWAT で表示する際に用いられるコードは Samba 3.0.8 以降このパラメータに影響されない) 通常は、 unix charset と同じに設定すべきである。 (訳注: 現在、デフォルト値は LOCALE であり、これはロケールに依存した文字コードセットが用いられることを意味する。通常この値を変更する必要はないだろう)
デフォルト値: display charset
= ASCII
設定例: display charset
= UTF8
このパラメータにより、Samba がオフラインのファイルの判定に DMAPI を用いるかどうかが制御される。 これは、通常ファイルを自動的にテープに移動していくような階層型ストレージとの連携の際に用いられる。
Samba はファイルの状態を DMAPI アプリケーションが登録したイベントを確認することで推測することに注意。 この方法は、多くの階層型ストレージシステムで機能するが、一部機能しないシステムもあるかも知れない。この場合、 Samba はファイルがオフラインであるという誤った報告を行なうことになる。
このパラメータは、コンパイル時に DMAPI の実装サポートを確認できた場合にのみ有効となる。 また、実行時にシステムで DMAPI が使用可能であることが確認できた場合にのみ使用される。
デフォルト値: dmapi support
= no
WINS サーバとして機能している nmbd(8) が WINS サーバとして機能している場合、ある NetBIOS 名が登録されていなかった時に、その NetBIOS 名を DNS 名として扱い、名前の問い合わせを行ったクライアントに代わってその名前を DNS サーバに対して問い合わせるように設定する。
NetBIOS 名の最大長は 15 文字であるため、 問い合わせる DNS 名(もしくはDNSの別名)も、最大15文字に制限される。
nmbd が DNS への名前解決を行う際には、問い合わせにより他の処理が停止させないために、自分自身を複製したプロセスを生成する。
デフォルト値: dns proxy
= yes
このパラメータが yes
に設定されると、
Samba サーバは、自身が所属する workgroup
に所属する Windows 95/98 に対するドメインログオン機能を提供するようになる。
さらに、Samba サーバは、
Windows NT 4.0 形式のドメインコントローラとしても機能するようになる。
この機能の設定に関する詳細な記述は、
Samba-PDC-HOWTO の「Domain Control」章を参照のこと。
デフォルト値: domain logons
= no
このオプションにより、 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
システムに存在するディレクトリには、
クライアントに参照させたくないものや、
無限に深い(再帰的)なものが存在する(たとえば Linux での /proc
)。
このパラメータは常に空のように見せかけるサーバ側のディレクトリをコンマで区切って指定する。
Samba が要求する「dont descend」の書式は一定ではない。
たとえば /proc
ではなく ./proc
でなければならないかもしれない。
実験してみるのが最良の方法である。 :-)
デフォルト値: dont descend
=
設定例: dont descend
= /proc,/dev
DOS SMB クライアントは、サーバ側でも自身と同じ文字コードセットを使用していると想定する。 このオプションにより、 Samba が DOS クライアントと通信する際に用いられる文字コードセットを指定する。
デフォルトは Samba にインストールされた文字コードセットによって異なる。 Samba は、文字コードセット 850 の使用を試みるが、使用できない場合は ASCII を使用する。 testparm(1) コマンドを実行することで、システム上のデフォルト値を確認することが可能である。
デフォルト値なし
Samba のデフォルトの動作では、 ファイルやディレクトリの所有者のみがアクセス権を変更できるという、UNIX的な仕様になっている。 しかし、この仕様が DOS/Windows のユーザを混乱させてしまうことも多い。 このパラメータを有効にすることによって、 (何らかの手段によって)ファイルに書き込み権のあるユーザは、パーミッション(ACLを含む)の変更もできるようになる。 ファイルの所有グループに所属しているユーザは、 グループに対して読み込み権限しか与えられていない場合は パーミッションの変更を行なうことができないことに注意。 ファイルやディレクトリの所有者を変更することも可能である。
デフォルト値: dos filemode
= no
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 や 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
この真偽値パラメータにより、 smbd(8) は、クライアントが共有内に OS/2 形式の拡張属性を格納することを可能とする。 このパラメータを有効にするためには、下位のファイルシステムが (Linux の場合 XFS や EXT3 に対するパッチとして提供されているような) 拡張属性をサポートしていることが必要である。 Linux の場合、拡張属性を有効にするには、カーネルが拡張属性を有効にしてコンパイルされていることに加え、 ファイルシステムのマウントオプションとして user_xattr を指定してマウントする必要がある。
デフォルト値: ea support
= no
「Advanced Server for Unix (ASU)」というプロダクトを実行しているホストでは、 IPC コネクションのみをサポートするビルトインの [ADMIN$] 共有が作成されるなど、 ASU 特有の動作が幾つか存在する。長年、これは smbd のデフォルトの動作でもあった。 ところが、Print Migrator tool というマイクロソフトのアプリケーションでは、 リモートのサーバで [ADMIN$] というファイル共有がサポートされている必要がある。 このパラメータを無効にすることで、smb.conf に [ADMIN$] というファイル共有を作成することが可能になる。
デフォルト値: enable asu support
= no
このパラメータは、smbd が net rpc rights もしくは Windows 側のユーザ、グループ管理ツールにより、特定の SID に対して指定のユーザー権利を付与する機能を制御する。 このパラメータはデフォルトで有効となっているが、Domain Admins グループのメンバがユーザーやグループにユーザー権利を割り当てることで、 root 権限で実行される smbd の処理が該当ユーザとして接続した状態で実行されることを防止するために無効にすることも可能である。
ユーザー権利を使用することで、例えば smbd が動作するサーバの root 権限を与えずに、 Samba ドメインに参加する権利を付与することが可能である。
より詳細な説明については、Samba HOWTO 中の記載を参照のこと。
デフォルト値: enable privileges
= yes
この真偽値パラメータにより、 クライアントとのネゴシエーションに暗号化パスワードを利用するかどうかが決定される。 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
このオプションにより、 Samba に実装されている複数サブネット間でのブラウザのアナウンスメントに関する拡張が有効になる。 ただし、この拡張は、Microsoft の実装の標準とは異なる。
ブラウザのアナウンスメントに関する一つ目の拡張点は、 Samba のWINSサーバに登録されているすべてのドメインマスタブラウザを問い合わせる定期的なワイルドカードクエリと、 返答に含まれる各DMBと行なわれるブラウズリストの同期処理のサポートである。 二つ目の拡張点は、DMBとして識別されているマシンとの間で 定常的に行なわれるランダムなブラウズリストの同期処理のサポートである。 (訳注: これは 120151 などで記載されている、WINS クライアントとなっている Windows NT 3.5 以上の DMB が定期的に WINS サーバに接続し、WINSサーバが保有する「ドメイン名<1B>」のリストを自身のブラウズリストに追加していく処理のサポートだと思われる)
中身が空のワークグループがブラウズリストから消えないというトラブルが発生した場合は、 このオプションを無効にしたい場合もあるだろう。 ブラウザのプロトコルの仕様上、 この拡張により空のワークグループが永久に残ってしまうという悩ましい問題が起こることがある。
通常は、サブネット越えのブラウザのアナウンスメントの信頼性向上のため、 このオプションは、有効のままにしておくべきである。
デフォルト値: enhanced browsing
= yes
ここでいう「ポート(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
このパラメータは、
Samba がマイクロソフトの「イベントビューア」ユーティリティ経由での表示を可能とするログファイル名の一覧を定義する。
一覧に含まれるログに対しては、ディスク上の
$(lockdir)/eventlog
内に、
対応する TDB ファイルが割り当てられる。
管理者は、外部のプロセスを用いて
/var/log/messages
のような一般の UNIX ログファイルを解析し、
イベントログの TDB ファイルにエントリを書き込む必要がある。
イベントログのエントリを書き込む方法については、eventlogadm(8) ユーティリティを参照のこと。
デフォルト値: eventlog list
=
設定例: eventlog list
= Security Application Syslog Apache
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
oplock は、SMB クライアントがファイル操作の結果をローカルにキャッシュするための許可をサーバから取得するための機能である。 サーバが oplock (opportunistic lock = 便宜的ロック) を許可すると、 クライアントは自分だけがそのファイルにアクセスしていると認識して、 積極的にファイルの内容をキャッシュする。oplock のタイプによっては、 クライアントがファイルのオープン/クローズの操作をキャッシュすることもありうる。 これにより、多大な性能向上が期待できる。
fake oplocks = yes の設定を行なうと、smbd(8) は、 実際にそのファイルを利用しているクライアント数に関わらず、 常に oplock を許可する。
一般的には、このパラメータを利用するよりも、 実際の oplocks を利用する方がよい。
CDROM 等の物理的に読みとり専用のメディアの場合など、 読みとり専用か、同時に 1 台のクライアントからだけしか アクセスされないとわかっている共有でこのオプションを有効にすると、 多くの操作で大きな性能改善が見られるだろう。複数のクライアントから 同時にファイルの読み書きアクセスする可能性がある共有でこのオプションを有効にすると、 ファイルの内容が破壊される場合が起こりうる。 このオプションは慎重に使用して欲しい!
デフォルト値: fake oplocks
= no
このパラメータにより、Samba がディレクトリ内の変更を FAM デーモンに問い合わせ、SMB クライアントがサーバ上のデータに変更があった際に、 更新を行なうことが可能になるようにするかが制御される。
このパラメータは、FAM デーモンによるユーザプログラムへの変更通知機能がサポートされている場合のみ使用される。
FAM デーモンが実行されていない場合、このパラメータは自動的に無効となる。
kernel change notify
パラメータが有効な場合、そちらが優先される。
デフォルト値: fam change notify
= yes
このパラメータにより、Samba の管理者は、
smbd(8)
がシンボリックリンクを追跡する処理を共有単位で禁止することが可能になる。
このパラメータを no
に設定した場合、
シンボリックリンクのファイルやディレクトリの追跡する処理が抑制される(ユーザにはエラーが返却される)。
このオプションは、ユーザが自分のホーム・ディレクトリに
/etc/passwd
へのシンボリックリンクを追加するのを防止したりする効果がある。
ただし、わずかながらファイル名の検索が遅くなるだろう。
このオプションはデフォルトで有効になっている (つまり、smbd はシンボリックリンクを追跡する)。
デフォルト値: follow symlinks
= yes
このパラメータは、Samba によって作成されたファイルのパーミッションに
必ず設定される UNIX のパーミッションビットを指定する。
これは、ファイルの作成時やパーミッションの変更時に、
パーミッションビットに対して、このパラメータの値でビット単位の
OR 演算を行なうことで実現される。
このパラメータの値がビット単位の OR 演算に用いられるのは、
create mask
パラメータの適用後である。
下記の例は、作成されるすべてのファイルに対し、 グループ(group)とその他のユーザ(others)の読み込みと実行ビットと、 所有者(user)の読み込み/書き込み/実行ビットが必ず付与されるようにする。
デフォルト値: force create mode
= 000
設定例: force create mode
= 0755
このパラメータは、Samba によって作成されたディレクトリのパーミッションに
必ず設定される UNIX のパーミッションビットを指定する。
これは、ディレクトリの作成時に、
パーミッションビットに対して、このパラメータの値でビット単位の
OR 演算を行なうことで実現される。
このパラメータの既定値は 000 (8 進数表記)である。この場合、作成されるディレクトリに対して特にパーミッションビットは追加されない。
このパラメータの値が適用されるのは、
directory mask
パラメータの適用後である。
下記の例は、作成されるすべてのディレクトリに対し、 グループ(group)とその他のユーザ(others)の読み込みと実行権ビットと、 所有者(user)の読み込み/書き込み/実行ビットが必ず付与されるようにする。
デフォルト値: force directory mode
= 000
設定例: force directory mode
= 0755
このパラメータは、 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
このパラメータは、force groupの別名である。
このパラメータには、 このサービスに接続するすべてのユーザのデフォルトの所属グループと見なされる UNIX のグループ名を指定する。 このパラメータを使うと、サービス上のファイルに対するアクセスの際のパーミッションチェックには、 ここで指定したグループを用いることができるため、ファイル共有を行う際に便利である。 この設定を行うことで、 このサービス内において提供するファイルやディレクトリに対して指定されたグループ名にパーミッションを割り当てることにより、 Samba の管理者がこれらのファイルの共有を許可/不許可にすることができるようになる。
Samba 2.0.5 以降では、このパラメータの機能が拡張されている。
'+' 文字からはじまるグループ名が設定されていた場合、
現在共有にアクセスしているユーザが設定されたグループのメンバーだった場合のみ、
そのグループをユーザのデフォルトのプライマリグループに設定する。
この動作により、該当のグループに予め所属しているユーザのみが、
そのグループを所有者とするファイルを作成する設定を行うことが可能となる。
これにより、所有権の設定をより細かく行なうことが可能となる。
たとえば、force group = +sys
という設定を行った場合、
sys グループに所属しているユーザが Samba の 共有 にアクセスした際にのみ、
デフォルトのプライマリグループが sys に設定される。
その他すべてのユーザは、通常のプライマリグループのままとなる。
force user
パラメータも設定されていた場合、
force group
で指定されたグループより、
force user
で指定されたユーザのプライマリグループの方が優先される。
デフォルト値: force group
=
設定例: force group
= agroup
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
このパラメータは、 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
このパラメータを設定すると、 ファイルの所有者や所有グループとして不明な 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
このパラメータは、サービスに対する接続のすべてで、 デフォルトのユーザとみなされる UNIX ユーザの名前を指定する。 これはファイルを共有する上で便利であるが、誤って使用すると、 セキュリティ上の問題を引き起こす原因となるので、慎重に使用すべきである。
このユーザ名は接続の確立後に適用される。 従って、クライアントが有効なユーザ名とパスワードで接続を行う必要があることには変わりはない。 接続が確立すると、全てのファイル操作は強制的に「force user」で指定されたユーザの権限で実行される。 クライアントが接続を確立した際のユーザ名は無視される。 これは大変便利なことがある。
Samba 2.0.5 以降では、このパラメータによって 設定されたユーザのプライマリグループが、 すべてのファイル操作においてプライマリグループとして利用される。 Samba 2.0.5 以前では、プライマリグループは本来接続を行ったユーザのプライマリグループのまま変わらない(これはバグである)。
デフォルト値: force user
=
設定例: force user
= auser
このパラメータは、
クライアントが共有のファイルシステムを問い合わせた際に、
smbd(8)
が返却する共有のファイルシステム名を指定する。
デフォルトは Windows NT 互換の NTFS
だが、
必要に応じて Samba
や
FAT
といった別の文字列に、変更することができる。
デフォルト値: fstype
= NTFS
設定例: fstype
= Samba
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() の呼び出し時間を減らすためのあるキャッシュアルゴリズムが有効になる。特に
wide smbconfoptions パラメータが no
に設定された場合は、パフォーマンスに対して相当な効果がある。
デフォルト値: getwd cache
= yes
このパラメータは、 guest ok (以下を参照のこと) が設定されたサービスにアクセスする際に使用されるユーザ名である。 ゲストサービスに接続しているクライアントすべてに対して、 ここで設定したユーザの権限が適用される。 このユーザはパスワードファイルに存在している必要があるが、ログイン可能となっている必要はない。 このパラメータとして、「ftp」ユーザを利用するのもよいであろう。
システムによっては、アカウント「nobody」では印刷することができない。 この場合は別のアカウントを使用すること。 ゲストユーザでログイン(su -コマンドなどを使用する)して、 lpr(1) や lp(1) などの、 システムにある印刷コマンドを実行して印刷を行ってみることで、 これを確認しておくべきであろう。
このパラメータは % マクロを受け付けない。 システムの大半の箇所では、正常動作する上でこの値が静的に設定されていることが必要とされるためである。
デフォルト値: guest account
= nobody
# default can be changed at compile-time
設定例: guest account
= ftp
このパラメータは、guest okの別名である。
このパラメータが yes
のサービスに付いては、
サービスへの接続の際にパスワードが要求されない。
この場合、guest account の権限で操作が行われる。
このパラメータは restrict anonymous = 2 のメリットを無効にする。
このオプションに関する詳細については、 security セクションを参照のこと。
デフォルト値: guest ok
= no
このパラメータは、guest onlyの別名である。
このパラメータが yes
のサービスについては、
ゲスト接続のみが許可される。
このパラメータは、guest ok が有効になっていないサービスでは無効である。
このオプションに関する詳細については、security セクションを参照のこと。
デフォルト値: guest only
= no
この真偽値パラメータにより、 ドットで始まるファイル名のファイルを隠しファイルとして扱うかどうかが制御される。
デフォルト値: hide dot files
= yes
これは、見せたくないがアクセスは許可したいファイルやディレクトリのリストを指定する。 DOSの「隠し」属性が該当するファイルやディレクトリに付加される。
リストの各エントリは、 スペースをエントリ中に含められるようにするため、「/」で区切る必要がある。 「*」と「?」は、DOSのワイルドカードと同様にして、 複数のファイルやディレクトリを指定するために利用することができる。
各エントリはUNIXのパス形式で指定すること。DOSのパス形式で指定したり、 UNIXでディレクトリを意味する「/」を含んだりはできない。
この設定には、 case sensitive オプションの設定が影響することに注意。
このパラメータを設定すると、 全てのファイルやディレクトリに対して該当するかどうかの確認を行う必要が発生するため、 Samba のパフォーマンスに影響がでる。
以下の設定例は、Thursby から入手可能な Macintosh 上の SMB クライアント (DAVE) が内部的な用途に作成するファイルの指定に加え、 ドットで始まるファイルを隠しファイルとして指定したものである。
このパラメータの設定例を以下に示す。
hide files = /.*/DesktopFolderDB/TrashFor%m/resource.frk/
デフォルト値: hide files
=
# どのファイルも隠されない
このパラメータにより、クライアントからソケット、デバイス、FIFOなどのファイルがディレクトリ一覧で表示されることを抑止できる。
デフォルト値: hide special files
= no
このパラメータにより、読みとりができないファイルの存在をクライアントから隠蔽できる。 このパラメータのデフォルトは off になっている。
デフォルト値: hide unreadable
= no
このパラメータにより、書き込みができないファイルの存在をクライアントから隠蔽できる。 このパラメータのデフォルトは off になっている。 書き込みができないディレクトリについては通常通り表示されることに注意。
デフォルト値: hide unwriteable files
= no
このパラメータは、
nis homedir が yes
で
smbd(8) が
Windows 95/98 の logon server
として機能している場合に、
ユーザのホームディレクトリがあるサーバがどこかの情報をもつ NIS (YP)のマップを指定する。
現在のところ、Sun の auto.home マップ形式のみが認識される。
マップの形式は以下のとおり:
username server:/some/file/system
プログラムは、最初の「:」の前までをサーバ名として解釈する。 これ以外のマップの形式や、Amd (別の automounter)のマップにも対応した優れた解析ロジックもおそらく存在するはずである。
このオプションを利用する場合は、 システムがNISクライアントとして稼働している必要がある。
デフォルト値: homedir map
=
設定例: homedir map
= amd.homedir
yes
の場合、 Samba は DFS サーバとして機能し、 DFS を利用可能なクライアントは、サーバ上で提供された
DFS ツリーを参照することが可能となる。
共有単位のパラメータである msdfs root も参照のこと。 Samba で DFS ツリーを構成する場合の詳細な情報については、 Samba3-HOWTO の MSDFS の章を参照のこと。
デフォルト値: host msdfs
= yes
Samba が(負荷のかかる)ホスト名検索を行なうか、 IP アドレスを使用するかを指定する。現在ホスト名検索を使用している箇所としては、 hosts deny および hosts allow の確認箇所などが挙げられる。
デフォルト値: hostname lookups
= no
設定例: hostname lookups
= yes
このパラメータは、hosts allowの別名である。
このパラメータの同義語として 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
実際のアクセスには、ユーザレベルで適切なパスワード指定する必要があることに注意。
ホストレベルのアクセス制御が期待通りになっているかどうかの確認手段については testparm(1) を参照のこと。
デフォルト値: hosts allow
=
# なし (全てのホストがアクセス許可される)
設定例: hosts allow
= 150.203.5. myhost.mynet.edu.au
このパラメータは、hosts denyの別名である。
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 backend パラメータの目的は、ローカルの idmap TDB ファイルから、まだ対応づけされていない SID について SID と UID や GID の対応づけを行なうのではなく、 共用の LDAP 機構から取得するようにすることである。 これにより、すべてのドメインメンバおよびドメインコントローラは、同一の UID や GID と SID との対応づけを保持することとなる。 これにより、UNIX や Linux システム間で UID や GID の一貫性が保持されないことにより、 SMB/CIFS 以外のプロトコル (NFS など) を用いて情報の共有を行なう際に発生するリスクを押えることができる。
SID と UID や GID とを対応づけるもう一つの方法は RID プラグインである。 このプラグインは、アカウントの RID に指定された基本値を加算することで UID や GID を生成する。 このプラグインを用いる際は、 “allow trusted domains = No” パラメータの指定が必須であり、 複数ドメイン環境では使用できない。 idmap uid および idmap gid パラメータの設定も必要である。
この他 ad モジュールを用いることで、RFC 2307 互換の LDAP スキーマを有する Active Directory の LDAP サーバから UID や GID の情報を直接取得することが可能である。 ad モジュールは「Services for Unix(SFU)」の 2.X および 3.0 もサポートする。
デフォルト値: idmap backend
=
設定例: idmap backend
= ldap:ldap://ldapslave.example.com
設定例: idmap backend
= rid:"BUILTIN=1000-1999,DOMNAME=2000-100000000"
設定例: idmap backend
= ad
このパラメータは、idmap gidの別名である。
idmap gid パラメータは UNIX グループを NT グループの SID にマッピングする際に使用するグループ id の範囲を指定する。 予期しない競合が発生しないようにするため、この GID の範囲にローカルな グループや NIS グループが存在しないようにすること
正常なグループマッピングを行うためには、idmap gid で指定した範囲が利用可能であることが不可欠である。
デフォルト値: idmap gid
=
設定例: idmap gid
= 10000-20000
このパラメータは、idmap uidの別名である。
idmap uid パラメータは UNIX ユーザを NT ユーザの SID にマッピングする際に割り当てられるユーザ id の範囲を指定する。 予期しない競合が発生しないようにするため、この GID の範囲にローカルな ユーザや NIS ユーザが存在しないようにすること
デフォルト値: idmap uid
=
設定例: idmap uid
= 10000-20000
このパラメータにより、ある設定ファイル中に別の設定ファイルを挿入することが可能となる。 挿入されるファイルは、挿入された場所に記述されたかのように、 そのままの形で挿入される。
このパラメータには、%u
、
%P
、%S
パラメータを除き、標準の変数置換が適用される。
デフォルト値: include
=
設定例: include
= /usr/local/samba/lib/admin_smb.conf
このパラメータは、 親ディレクトリにデフォルト ACL が設定されており、 サブディレクトリの作成時に、その ACL の設定を引き継がせたい場合に用いられる。 デフォルトでは ディレクトリ作成時に設定されるモードが用いられる。 このオプションを有効にすると、モードが 0777 となり、 ディレクトリのデフォルト ACL を確実に継承できるようになる。
デフォルト値: inherit acls
= no
新規作成したファイルやディレクトリの所有者としては、 通常接続しているユーザの実行 UID の値が用いられる。 このパラメータにより、Samba の管理者は、 新規作成したファイルやディレクトリの所有者を 親ディレクトリの所有者と同一にすることが可能となる。
この動作が有用な状況としては、 ユーザがファイルの作成や修正はできるが、削除はできないようにした drop box や、 あるユーザの移動プロファイルのディレクトリ内に新規作成されたファイルの所有者が そのユーザとなるようにしたい場合などが挙げられる。
デフォルト値: inherit owner
= no
通常、新規作成したファイルやディレクトリのパーミッションは、 create mask 、directory mask 、 force create mode 、 force directory mode パラメータによって決定されるが、 真偽値パラメータである inherit permissions は、それらに優先される。
新しいディレクトリはsetgid のようなビットも含め、 親ディレクトリのパーミッションを引き継ぐようになる。
新しく作成されたファイルは、read/write ビットの設定を親ディレクトリから引き継ぐようになる。 execute ビットについては、従来どおり map archive 、 map hidden 、map system などにより制御される。
setuid ビットが引き継がれることは、決して ない(コード上で明示的に禁止している)。
このパラメータは、数千人レベルの多くのユーザが存在する大規模なシステムで、 単一の [homes] 共有を各ユーザが柔軟に利用できるようにさせる際に、 特に有用であろう。
デフォルト値: inherit permissions
= no
このオプションにより、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
これは、サービスに対するログインを許可しないユーザのリストを指定する。 このパラメータは、不適切な設定により発生しうるセキュリティ上の問題を完全に抑止する、 パラノイド的設定である。
「@」ではじまる名前は(システムがNISをサポートしている場合)、 まずNISネットグループとして解釈され、NISネットグループに名前が存在しない時は、 UNIXのグループとして解釈される。
「+」ではじまる名前は、UNIXのグループ名としてのみ解釈される。
「 & 」ではじまる名前は、NISネットグループの名前としてのみ解釈される
(この場合システムでNISが稼働している必要がある)。
名前の前に付けられた「+」および「 & 」文字は、検索の順番を示す意味で使うこともできる。
例えば、+&group
は、
UNIXグループを検索してから、NISネットグループを検索するという意味になり、
&+group
は、
NIS ネットグループを検索してから UNIXグループを検索するという意味になる(これは「@」と同等になる)。
%S
は、
現在のサービス名に置換される。これは [homes] セクションで有効である。
デフォルト値: invalid users
=
# invalid users は空である
設定例: invalid users
= root fred admin @wheel
このパラメータは、printing が iprint
に設定されている場合のみ有効である。
設定されている場合、CUPS の client.conf
で指定された ServerName オプションの値がこのパラメータによって上書きされる。
複数の仮想 Samba サーバが起動している環境で各々が異なる CUPS デーモンに接続している環境では、このパラメータが必要となる。
デフォルト値: iprint server
= ""
設定例: iprint server
= MYCUPSSERVER
このパラメータの値(整数値)により、 keepalive
パケットが送出される秒単位の間隔が設定される。このパラメータの値が0の場合、 keepalive パケットは送出されない。
keepalive パケットを送出することにより、サーバはクライアントマシンが存在していて応答があることを確認することが可能になる。
ソケットにデフォルトで SO_KEEPALIVE 属性が設定されている場合( socket options を参照のこと)、通常 keepalive は不要である。基本的に、このオプションは問題が発生している場合にのみ使用すべきである。
デフォルト値: keepalive
= 300
設定例: keepalive
= 600
このパラメータは、Samba がカーネルに対してディレクトリの変更 通知を要求するか指定でき、この機能を使用すれば、サーバ上にある データに変更があった場合に SMB クライアントがその結果を 反映できるようになる。
このパラメータは使用しているカーネルが F_NOTIFY fcntl を使用してユーザプログラムに対しての変更の通知をサポートしている 場合にのみ使用される。
デフォルト値: kernel change notify
= yes
カーネルベースの oplocks をサポートしているUNIX(現在はIRIXとLinux 2.4カーネルのみ)の場合、 このパラメータにより oplock の利用を制御できる。
カーネル oplocks のサポートにより、
smbd(8) が oplock を行ったファイルに対して、
ローカルな UNIX プロセスや NFS 経由でのアクセスがあった際に、
Sambaが oplocks
を破棄することが可能となる。
これにより、 SMB/CIFS と NFS やローカルファイルアクセスとの間の完全な一貫性が確保される
(これは非常に素晴らしいことである :-)。
このパラメータのデフォルト値は、 on
であるが、
カーネルがこの機能をサポートしていないシステムでは、自動的に無効にされる。
このパラメータを変更する必要はないであろう。
デフォルト値: kernel oplocks
= yes
このパラメータは、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
= yes
このパラメータは、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 は、 Samba
がユーザのアカウント情報を取得するために ldap サーバに接続する際に
用いられる、Distinguished Name (DN) を指定する。
ldap admin dn は、
private/secrets.tdb
ファイルに
格納された admin dn のパスワードとともに用いられる。
これがどのように連携するかについての詳細な情報は、
smbpasswd(8)
のマニュアルページを参照のこと。
ldap admin dn には完全な DN 名を指定する必要がある。 ldap suffix の値が ldap admin dn に付加されることはない。
デフォルト値なし
このパラメータは ldapsam の削除の操作時に、エントリを完全に 削除するか、Samba でしか使用されない属性だけを消すかの制御を行なう。
デフォルト値: ldap delete dn
= no
このパラメータは、グループが LDAP ディレクトリに加えられるときの サフィックスを指定する。もしこのパラメータが設定されていない場合、 ldap suffix の値が代わりに使用される。 サフィックスの文字列には、ldap suffix の文字列が付加されるため、相対 DN で指定を行なうこと。
デフォルト値: ldap group suffix
=
設定例: ldap group suffix
= ou=Groups
このパラメータは idmap mapping の情報の保存先のサフィックスを 指定する。このパラメータが設定されていない場合、 ldap suffix の値が代わりに使用される。 サフィックスの文字列には、ldap suffix の文字列が付加されるため、相対 DN で指定を行なうこと。
デフォルト値: ldap idmap suffix
=
設定例: ldap idmap suffix
= ou=Idmap
このパラメータはマシンアカウントが LDAP ツリーのどこに 追加されるかを指定する。もしこのパラメータが設定されていない場合、 ldap suffix の値が代わりに使用される。 サフィックスの文字列には、ldap suffix の文字列が付加されるため、相対 DN で指定を行なうこと。
デフォルト値: ldap machine suffix
=
設定例: ldap machine suffix
= ou=Computers
このオプションは、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
Samba が読みとり専用の LDAP レプリカに対して、書き込みの要求を行なった際には、読み書き可能なマスタサーバと通信するようにリダイレクトを行なう。 その後マスタサーバは、変更を最初に通信した「ローカル」サーバに対して複製を行なうが、特に遅い回線越しの場合、これには数秒の時間を要する。 特にドメインへの参加といったクライアント側の処理については、「成功」した処理が LDAP のデータに即座に反映されないことで、 混乱する可能性がある。
このオプションにより、LDAP サーバに変更が反映されるのを待つために Samba が短い時間待機するようになる。 遅延の大きいネットワークの場合、LDAP の複製に要する時間をネットワークモニタで取得の上、それに応じて値を増減すればよいだろう。 データの複製が完了したかどうかについてのチェックが行なわれるわけではない点に注意すること。
この値はミリ秒単位で指定する。最大値は 5000 (5秒)である。
デフォルト値: ldap replication sleep
= 1000
デフォルトで、ドメインコントローラとして動作し、認証に LDAP を用いている Samba は、ユーザやグループの情報を取得するために、UNIX の NSS サブシステムを必要とする。 UNIX がユーザ情報を /etc/passwd や /etc/group に格納する機構からすると、これは明らかに非効率である。 ユーザが把握する必要がある重要な項目の一つに、所属グループの一覧がある。 通常の UNIX のユーザ管理機構であれば、/etc/group ファイルの全体を参照するか、LDAP 環境においては NSS 機構を用いて同様のことを行なう。 UNIX には group のメンバを参照するのに最適化された関数が存在している。 しかし、残念なことに、ユーザやグループを扱うその他の関数については、こうした最適化は行なわれていない。
o Samba を大規模環境に適用させるため、ldapsam:trusted = yes オプションにより、Samba に関係するユーザおよびグループのデータベースは LDAP 標準の posixAccount/posixGroup 属性に格納されているとみなす。 さらに、Samba の AUXILIARY(補助) オブジェクトクラスについても、同じ LDAP オブジェクト中に POSIX データとして格納されているものとみなす。 これらの前提条件に適合する場合、 ldapsam:trusted = yes を設定することが可能となる。 この場合、Samba はユーザ情報の NSS に対する問い合わせを完全にバイパスする。 最適化された LDAP クエリにより、ログオンや管理作業が劇的に高速化される。 LDAP データベースのサイズにもよるが、共通的なクエリについては、100 倍以上の高速化が容易に達成される。
デフォルト値: ldapsam:trusted
= no
このオプションは、Samba が ldap server に接続する際に、SSL
を用いるかどうかを制御するために用いられる。これは、
configure
スクリプトの
--with-ssl オプションで有効化される、
Samba の古い SSL サポートとは 無関係
ldap ssl
の値には、以下の
3 つのうちいずれかを設定すること:
デフォルト値: ldap ssl
= start_tls
全体に適用される LDAP サフィックスを指定すると共に、sambaDomain オブジェクトの格納先を指定する。
ldap suffix は、ldap user suffix、 ldap group suffix、ldap machine suffix、 ldap idmap suffix で指定された値に付加される。 これらのパラメータでは ldap suffix からの相対 DN で指定が行なわれる。
デフォルト値: ldap suffix
=
設定例: ldap suffix
= dc=samba,dc=org
Samba が LDAP サーバに接続しようとした際に、該当サーバがダウンしていたり、該当サーバに到達することができなかったりした場合に Samba が接続待ちでフリーズしてしまわないように、このパラメータでは Samba が接続の確立を待機する時間を秒単位で指定する。 デフォルトは 15 秒であり、この時間内に LDAP サーバは接続要求に対して応答する必要がある。
デフォルト値: ldap timeout
= 15
このパラメータは、ユーザが LDAP ディレクトリに加えられるときの サフィックスを指定する。もしこのパラメータが設定されていない場合、 ldap suffix の値が代わりに使用される。 サフィックスの文字列には、ldap suffix の文字列が付加されるため、相対 DN で指定を行なうこと。
デフォルト値: ldap user suffix
=
設定例: ldap user suffix
= ou=people
このパラメータにより、 Samba が共有上で level2(読みとり専用) oplock をサポートするかどうかが制御される。
level2 の読みとり専用 oplock を利用することで、 Windows NT クライアントは、既に oplock が行われているファイルを別のクライアントがオープンしようとした際に (今までの排他的な oplock の場合に行われていた関連するすべての oplock を廃棄する処理の代わりに)、 読み書き可能な oplock から読みとり専用の oplock へのダウングレードを行うような oplock をファイルに対して行うことが可能になる。 これにより、ファイルをオープンしているクライアントのうち、level2 oplock をサポートしているものは、 ファイルの先読みのみを行うキャッシュ(このキャッシュは書き込みキャッシュやロックを行わない)を引続き行うため、 書き込みが行われないようなファイル(例えばアプリケーションのexeファイルなど)に対して多くのアクセスが行われる際のパフォーマンスが改善される。
read only の oplock を行っていたクライアントのいずれかがファイルに書き込みを行った時点で、 すべてのクライアントに対して、 oplock を「なし(none)」の状態に解除し、先読みキャッシュを破棄するように通知が行なわれる(応答待ちは行なわれない)。
このパラメータを有効にして、 共有されている実行ファイルのアクセスを高速化することを推奨する。
level2 oplock に関する詳細な議論については、CIFS の仕様を参照のこと。
現在、kernel oplocks がサポートされていると、
level2 oplock は(このパラメータがyes
になっていても)、利用されない。
このパラメータを機能させるためには、
oplocks
パラメータが、共有上で yes
である必要があることに注意。
デフォルト値: level2 oplocks
= yes
このパラメータにより、 nmbd(8) が、 OS/2
クライアントのブラウズリスト上に Samba サーバを格納するために必要な
lanman announce のブロードキャストを送出するかどうかが制御される。
このパラメータは3つの値、yes
、
no
、auto
をとる。
デフォルトは auto
である。
no
の場合、Sambaは決してこのブロードキャストを送出しない。
yes
の場合、Sambaは lanman announce のブロードキャストを
lm interval によって設定された間隔で定期的に送出する。
auto
の場合、
Sambaはデフォルトでは lanman announce を送出しないが、受信を待機する。
そして、このブロードキャストを受信すると、
lm interval によって設定された間隔で定期的なブロードキャストの送出を開始する。
デフォルト値: lm announce
= auto
設定例: lm announce
= yes
Samba が OS/2 クライアントが必要とする lanman announce のブロードキャストを送出するように設定されている場合 (lm announce パラメータを参照のこと)、 このパラメータにより送出間隔が秒単位で指定される。 これが 0 の場合、 lm announce パラメータの設定に関わらず、 lanman announce は送出されない。
デフォルト値: lm interval
= 60
設定例: lm interval
= 120
このパラメータは、printcapファイル中で定義されたすべてのプリンタをデフォルトでブラウジング可能とするかどうかを制御する真偽値パラメータである。 詳細は、 printers セクションを参照のこと。
デフォルト値: load printers
= yes
このオプションにより、 nmbd(8)
がサブネットのローカルマスタブラウザになるかどうかが制御される。
no
の場合、 nmbd はサブネットのローカルマスタブラウザになろうとせず、
すべてのブラウザ選定において、常に敗退することになる。
デフォルトで、このパラメータは yes
に設定されている。
このパラメータを yes
にすることは、
Samba がサブネットのローカルマスタブラウザとなることを意味するものではなく、
nmbd がローカルマスタブラザの選定に
参加する ということを意味するものに過ぎない。
このパラメータの値を no
にすると、nmbd
は 決して ローカルマスタブラウザにならなくなる。
デフォルト値: local master
= yes
このパラメータは、lock directoryの別名である。
このオプションにより、ロックファイルが置かれるディレクトリが指定される。 ロックファイルは max connections オプションにより利用される。
デフォルト値: lock directory
= ${prefix}/var/locks
設定例: lock directory
= /var/run/samba/locks
このパラメータは、 クライアントからのロック要求により、 サーバがロック処理を行うかどうかを制御する。
locking = noの場合、 すべてのロックおよびアンロック要求は成功したものとして扱われ、 すべてのロック状態の問い合わせは、ファイルがロック可能であると応答する。
locking = yesの場合、 サーバにより実際のロック処理が実行される。
このオプションをno
にすることは、
いかなる場合でも推奨されないが、
ロックを必要としないと思われる read only
のファイルシステム(例えばCDROMドライブ)では、有用 かも知れない。
ロックが機能しない場合、 データが破壊される可能性もあるため、全体に対しても、 個々の共有に対しても、ロックを無効にする際には注意すること。このパラメータの設定は通常必要ない。
デフォルト値なし
Samba 3.0.24 において、このパラメータは無効となった。 このパラメータで実現されていた機能は、現在 lock spin time パラメータで制御されている。
デフォルト値: lock spin count
= 0
smbd が一度失敗したロックを再度獲得しようとする際の待ち時間を、 マイクロ秒単位で指定する。 このパラメータのデフォルト値は、 Samba 3.0.23 において 10 から 200 に変更された。 関連する lock spin count パラメータは Samba 3.0.24 以降では使用されない。 このパラメータの値を変更する必要はないであろう。
デフォルト値: lock spin time
= 200
このオプションにより、 Sambaのログファイル(デバッグファイル)の名称を変更することが可能である。
このオプションには、標準の変数置換が適用されるため、 個々のユーザやマシン毎にログを分割することが可能である。
デフォルト値なし
設定例: log file
= /usr/local/samba/var/log.%m
このパラメータは、log levelの別名である。
このパラメータの値(整数値)により、
smb.conf
ファイル中でデバッグレベル(ログレベル)を設定することが可能になる。
このパラメータは Samba 2.2.x 系列と比べ強化されており、デバッグクラス毎にデバッグレベルを指定することが可能となっている。
これにより、システムの設定が非常に柔軟に行なえるようになる。
デフォルトのログレベルは、コマンドラインで指定された値になる。 指定が行なわれていない場合は、0 になる。
デフォルト値なし
設定例: log level
= 3 passdb:5 auth:10 winbind:2
このパラメータは、 ホームディレクトリとして接続されるパスを指定する (logon home も参照のこと)。 このパラメータは NT Workstation によってのみ利用される。
このパラメータは、Sambaがログオンサーバとして構成された場合のみ、 意味をもつことに注意。
訳注: Samba 3.0 系列で LDAP や TDB を認証データベースとして用いている場合、これらの値はユーザ毎に保持され、本パラメータは指定がなかった際のデフォルト値を設定するものとなる。
デフォルト値: logon drive
=
設定例: logon drive
= h:
このパラメータは、Windows 95/98/NT Workstation がSambaのPDCに対してログオンする際に用いられるホームディレクトリの位置を指定する。 これにより、例えば
C:\>
NET USE H: /HOME
のような形式でコマンドプロンプトから接続を行うことが可能となる。
このオプションには、通常の変数置換が適用されるため、 個々のユーザやマシン毎にログオンスクリプトを分けることが可能になっている。
このパラメータは、Windows 9x ワークステーションにおいて、 移動プロファイルをユーザのホームディレクトリのサブディレクトリに格納するために利用することが可能である。 この場合、以下のような設定を行う:
logon home = \\%N\%U\profile
これにより、Samba はクライアントから NetUserGetInfo リクエストなどで情報を要求された場合に上記文字列を返却するが、その際変数置換が行なわれる。 Windows 9x のクライアントは、ユーザが net use /home コマンドを発行した際には、この情報の \\server\share 部分だけを用いるが、 プロファイルを扱う場合は文字列全体を利用する。
Sambaの以前のバージョンでは、
logon home
ではなく、logon path が用いられていた。
このため、net use /home がうまく動作しなかったが、
プロファイルをホームディレクトリの外に置くことが可能であった。
現在の実装は正しい実装である。上記のような技を用いることで、
このパラメータをプロファイルの位置の設定にも利用することが可能になっている。
この機能を無効とするには、logon home = "" のように空の文字列を設定する。
このパラメータは、Sambaがログオンサーバとして構成された場合のみ、 意味をもつ。
訳注: Samba 3.0 系列で LDAP や TDB を認証データベースとして用いている場合、これらの値はユーザ毎に保持され、本パラメータは指定がなかった際のデフォルト値を設定するものとなる。
デフォルト値: logon home
= \\%N\%U
設定例: logon home
= \\remote_smb_server\%U
このパラメータにより、移動プロファイル(Desktop、NTuser.datなど)が格納されるディレクトリが指定される。 以前のマニュアルページとは矛盾するが、このパラメータはWindows 9xの移動プロファイルとは無関係である。 Windows 9x システムで移動プロファイルを利用する方法については、 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 のように設定すると問題が発生することがある)。
このオプションには、標準の変数置換が適用されるため、 個々のユーザやマシン毎にログオンスクリプトを分けることが可能になる。
この値をクォーテーションで囲まないこと。これを “\\%N\profile\%U” のようにすると、 プロファイル機構に問題が発生する。 tdbsam もしくは ldapsam が passdb backend として用いられている環境では、 ユーザアカウントが作成された時点で、このパラメータで設定されている内容が passdb backend に書き込まれるが、 その後 smb.conf ファイルにあるパラメータの値は、上書きされることがある。 passdb backend への書き込みに際して発生したエラーについては、 適切なツール(コマンドラインツールの pdbedit などのツール)を用いて編集する必要がある。
このパラメータは、Sambaがログオンサーバとして構成された場合のみ、 意味をもつことに注意。
このパラメータの値を空文字列に設定することで、移動プロファイルを無効にすることができる。 logon path = "" のようにすれば良い。 smb.conf ファイルのデフォルトの値を空文字列にしても、 passdb backend 中のユーザアカウントの設定で何らかの値を指定した場合は、 空文字列の設定を上書きすることになるので注意すること。 移動プロファイルを完全に無効とするには、各ユーザアカウントの設定が空文字列になっている必要がある。
設定例:
logon path = \\PROFILESERVER\PROFILE\%U
デフォルト値: logon path
= \\%N\%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
といった設定を行ったりすることが挙げられる。
[netlogon] 共有に対しては、 バッチファイルが改変されてセキュリティが侵害されてしまわないように、 書き込みアクセスを許可しないか、 安全な環境下でのみバッチファイルへの書き込み権限をユーザに与えるようにすること。
このオプションには、標準の変数置換が適用されるため、 個々のユーザやマシン毎にログオンスクリプトを分けることが可能になる。
このパラメータは、Sambaがログオンサーバとして構成された場合のみ、 意味をもつ。
デフォルト値: logon script
=
設定例: logon script
= scripts\%U.bat
このパラメータには、 指定した印刷ジョブの印刷やスプーリングを停止させるためにサーバホスト上で実行されるコマンドを指定する。
このコマンドは、プリンタ名と停止させる印刷ジョブの番号を引数にとり、印刷ジョブを一時停止させるプログラムやスクリプトでなければならない。 これを実装する方法の一つは、非常に低い優先権を持つジョブはプリンタに送られないというジョブの優先権の仕様を利用するものである。
%p
変数は、
プリンタ名に置換される。
%j
はジョブ番号(整数)に置換される。
HPUX の場合(printing=hpux
を参照のこと)、
-p%p
オプションを lpq コマンドに付加することで、正しいステータスが表示される。
たとえば、ジョブの優先権が設定されたフェンス優先権より低いならジョブは停止状態であるが、
優先権が等しいかより高いならスプール状態または印刷中の状態となる。
サーバの PATH 環境変数が利用できないかもしれないことを考慮して、 lppause command を絶対パスで記述する癖をつけておくと良い。
デフォルト値: lppause command
=
# 現在のところデフォルト値は設定されていない。
ただし、printing
パラメータの値が
ただし、printing パラメータの値が
SYSV
の場合は
lp -i %p-%j -H hold、
SOFTQ
の場合は
qstat -s -j%j -h
がデフォルト値となる。
設定例: lppause command
= /usr/bin/lpalt %p-%j -p0
このパラメータは、 lpq コマンドが頻繁に呼び出されるのを防ぐため、lpr の情報(出力)をキャッシュする期間を制御する。 システムが使用する lpq コマンドの種別毎にキャッシュが行なわれる。そのため、ユーザ毎に異なった lpq コマンドを使用する場合、 キャッシュ情報は共有されない。
キャッシュファイルは /tmp/lpq.xxxx
に保存される。
xxxx は使用している lpq コマンドのハッシュ値となる。
デフォルトは 10 秒であるため、キャッシュされたデータが10秒以内の場合は、 前回行なわれた同一のlpqの実行結果のキャッシュが用いられる。 lpq コマンドのレスポンスが非常に遅い場合は、この値を大きくすることを推奨する。
値を 0 にした場合、キャッシュは完全に無効となる。
デフォルト値: lpq cache time
= 10
設定例: lpq cache time
= 30
このパラメータには、 lpq形式のプリンタ状態情報を得るため、 サーバ上で実行するコマンドを指定する。
このコマンドは、プリンタ名のみを引数としてとり 、 プリンタ状態情報を出力するプログラムやスクリプトでなければならない。
現在、BSD、AIX、LPRNG、PLP、SYSV、HPUX、QNX、CUPS、SOFTQ
という9つの印刷形式がサポートされており、
これにより大部分の UNIX システムがサポートされる。
printing =
オプションにより、利用する形式を指定することも可能である。
クライアントによっては(特にWindows for Workgroups)、 状態情報を要求しているプリンタの接続番号(connection number)を正しく送らないことがある。 この場合、サーバはクライアントが接続している最初の印刷サービスの状況を報告する。この動作は、 与えられた接続番号が不正な場合にのみ行なわれる。
%p
変数は、
プリンタ名に置換される。この変数が指定されなかった場合、プリンタ名はコマンドの最後に付加される。
サーバの $PATH
環境変数が利用できないかもしれないことを考慮して、
lpq command
を絶対パスで記述する癖をつけておくと良い。
CUPS ライブラリを付加してコンパイルした場合は、
smbd が印刷キューのリストを取得するためのライブラリコールを行なうため、
lpq command
は必要ない。
デフォルト値: lpq command
=
設定例: lpq command
= /usr/bin/lpq -P%p
このパラメータには、 特定の印刷ジョブの印刷やスプールを再開したり続行するためにサーバ上で実行するコマンドを指定する。
このコマンドは、 プリンタ名とジョブ番号を受け取るとその印刷ジョブを再開するプログラムやスクリプトでなければならない。 lppause command パラメータも参照のこと。
%p
変数は、
プリンタ名に置換される。
%j
はジョブ番号(整数)に置換される。
サーバの PATH 環境変数が利用できないかもしれないことを考慮して、
lpresume command
を絶対パスで記述することを推奨する。
デフォルト: 現在のところ、この設定のデフォルト値は設定されていない。
ただし、printing
パラメータの値が SYSV
の場合、
デフォルト値は以下の通り:
lp -i %p-%j -H resume
また、printing
パラメータの値が
SOFTQ
の場合、デフォルト値は以下の通り:
qstat -s -j%j -r
デフォルト値: lpresume command
= lpresume command = /usr/bin/lpalt %p-%j -p2
このパラメータには、 印刷ジョブを削除するためにサーバ上で実行するコマンドを指定する。
このコマンドは、 プリンタ名とジョブ番号を受け取るとその印刷ジョブを削除するプログラムやスクリプトでなければならない。
%p
変数は、
プリンタ名に置換される。
%j
はジョブ番号(整数)に置換される。
サーバの PATH 環境変数が利用できないかもしれないことを考慮して、
lprm command
を絶対パスで記述することを推奨する。
以下に設定例を示す。
lprm command = /usr/bin/lprm -P%p %j あるいは lprm command = /usr/bin/cancel %p-%j
デフォルト値: lprm command
= printing パラメータの設定に依存する
Sambaサーバが NT ドメインのメンバである場合 (security = domainパラメータを参照のこと) 、
実行中の smbd プロセスは、private/secrets.tdb
という TDB
ファイルに格納されたコンピュータアカウントのパスワードを定期的に変更しようとする。
このパラメータは、パスワードの変更を行なう間隔を秒単位で設定する。デフォルトは、NT ドメインのメンバサーバと同じく 1 週間 (秒単位で表される) である。
smbpasswd(8) および security = domain パラメータも参照のこと。
デフォルト値: machine password timeout
= 604800
このパラメータは、Magic スクリプト(下記の magic script パラメータを参照) によって生成される出力結果が書き込まれるファイルの名前を指定する。
複数のクライアントが同じ Magic
スクリプト
を同じディレクトリで利用する場合、
出力ファイルの内容は不定になる。
デフォルト値: magic output
= <magic script name>.out
設定例: magic output
= myfile.txt
このパラメータで指定したファイルは、 ファイルをオープン後クローズした時点でサーバにより実行される。 このパラメータにより、UNIX のスクリプトを Samba ホストに送って、 接続しているユーザの権限で実行する機能が提供される。
このようにして実行されたスクリプトは、 ユーザに削除する権限があり、ファイルが削除可能であれば、 実行完了と同時に削除される。
スクリプトが生成した出力は、 magic output パラメータ(前述)で指定されたファイルに書き込まれる。
シェルによっては、改行コードとして CR ではなく CR/LF を利用しているスクリプトをうまく実行できないことに注意。 Magic スクリプトはホスト上でそのまま実行されるため、ホストやシェルによっては、 DOS の改行コードを修正しておく必要があるかも知れない。
Magic スクリプトは 実験用 のパラメータであり、このパラメータを安全だと考えるべきでは ない。
デフォルト値: magic script
=
設定例: magic script
= user.csh
このパラメータは、
Windows や DOS で表示できない UNIX ファイル名の対応づけを直接指定するためのものである。
名前の短縮のみがこの機能に必要とされるすべてではない。
実際、DOS と UNIX とでファイル名の拡張子の異なるドキュメントが存在することがある。
一例を挙げると、UNIX では通常 HTML ファイルを示す拡張子として
.html
が使用されるが、DOS では .htm
の方が一般的である。
このため、html
と htm
の対応づけを行なう場合は、以下のようにする:
とても便利な利用方法の一つに、CDROMによってファイル名の末尾に付加されている
;1
(幾つかのUNIX上でのみ表示される)
の削除が挙げられる。これを行なうためには、 (*;1 *;) のように指定すればよい。
デフォルト値: mangled map
=
# mangled map なし
設定例: mangled map
= (*;1 *;)
このパラメータは、 UNIX 上の DOS非互換のファイル名をDOS互換の名前(「短縮名」)に短縮してアクセス可能にするか、 単純に無視するかどうかを制御する。
短縮処理がどのように行なわれているかについての詳細は、 name mangling セクションを参照のこと。
短縮が行なわれる場合のアルゴリズムは以下の通りである(訳注:以下は hash アルゴリズムの場合):
ファイル名の先頭から一番右にあるドットの前までの英数5文字は、 大文字に変換された上で、 短縮名の先頭5文字となる。
チルダ「~」が短縮名に付加される。 更に元々のファイル名のベース部分(ファイル名から拡張子部分を除いたもの)から生成された一意な2文字が付加される。 拡張子にあたる部分は、大文字を含んでいるか、 3文字以上の場合のみ、ハッシュの計算に含まれる。
UNIX 上のファイル名がドットから始まる場合、 そのファイルは DOS の隠しファイルとして扱われる。 この場合の短縮名は、ファイル名の先頭のドットを取り除き、 実際の拡張子に関わらず、拡張子「___(「_」3文字」を付加したものから、一般のファイル名と同様にして生成する。
2桁のハッシュ値は、大文字の英数文字になる。
このアルゴリズムは、 ディレクトリ内のファイルに先頭の英数 5 文字が同一のファイル名が存在する時のみ名前の衝突が発生するが、 実際に衝突する確率は、1/1300 である。
名前の短縮処理により、(この処理が有効な限り) Windows や DOS から、UNIX 側の長いファイル名を保持したまま UNIX ディレクトリ間のファイルのコピーができる。 Windows や DOS 側から UNIX 側のファイル名の拡張子を変更しても、ベース名は保持される。 なお、セッションが異なっても短縮名は変化しない。
デフォルト値: mangled names
= yes
短縮名を生成する際に、元々の名前に付加するプレフィックスの長さを指定する。 大きな値を指定すると、 ハッシュアルゴリズムの効果が低下し、 名前の衝突の可能性が高まる。 最小値は 1 であり、最大は 6 である。
mangle prefix は mangling method が hash2 の時のみ有効である。
デフォルト値: mangle prefix
= 1
設定例: mangle prefix
= 4
このパラメータは name mangling において、 magic キャラクタとして利用される文字を指定する。デフォルトは「~」であるが、 ソフトウェアによっては問題が発生してしまうかも知れない。 このオプションにより、任意の文字を指定することが可能になる。 このパラメータは mangling method が hash の時のみ有効である。
デフォルト値: mangling char
= ~
設定例: mangling char
= ^
短縮名を生成する際に利用するアルゴリズムを指定する。 「hash」と「hash2」という2つの値を指定することが可能である。 「hash」は Samba 2.2.x でのデフォルト値であり、長年 Samba で利用されてきた方式である。 「hash2」は新しい方式であり、現在のデフォルト値である。これは、 (名前の重複の発生が低減される点で)より優れたアルゴリズムといえる。 Win32 アプリケーションの多くが短縮名を記憶しているため、 新しいアルゴリズムへの変更は、 こうしたアプリケーションの再インストールが必要になる可能性があるという点で、安易に行なうべきではない。
デフォルト値: mangling method
= hash2
設定例: mangling method
= hash
この真偽値パラメータにより、 smbd(8) は Windows の ACL に格納される「inherit」および「protected」の ACE フラグを user.SAMBA_PAI (訳注: Samba_Posix_Acl_Inheritance) と呼ばれる拡張属性にマッピングすることが可能となる。 このパラメータは Samba が拡張属性をサポートしているプラットフォーム(Linux および IRIX など)で実行されており、Windows 2000 の ACL エディタから Samba 側の POSIX ACL とのマッピングを実現するコードで継承を適切に設定できる場合のみ、有効となる。
デフォルト値: map acl inherit
= no
このパラメータは、DOSのアーカイブ属性を UNIXの所有者(owner)実行権ビットに割り当てるかどうかを決定する。 DOSのアーカイブ属性は、バックアップを行なった後でファイルが修正されると設定される。 このオプションを変更する契機の一つは、Samba マシン上のファイルを修正した際に、UNIX 上で実行可能になってしまわないようにしたい場合であろう。 これは、共有のソースコードやドキュメントなどに関して、非常に悩ましい事象である。
このパラメータを利用する場合は、 所有者の実行権ビットがマスクされないように(100というアクセス権が含まれるように)、 create mask パラメータを設定することが必要となることに注意。 詳細は、create mask パラメータを参照のこと。
デフォルト値: map archive
= yes
このパラメータは、DOSの隠しファイル属性を UNIXの全員(world)の実行権ビットに割り当てるかどうかを決定する。
このパラメータを利用する場合は、 全体の実行権ビットがマスクされないように(001というアクセス権を含むように)、 create mask パラメータを設定することが必要となることに注意。 詳細は、create mask パラメータを参照のこと。
デフォルト値なし
このパラメータは、DOS の読みとり専用属性を UNIX のファイルシステムに対応付ける方法を制御する。
このパラメータには 3 とおりの値を指定することが可能である。これにより、
store dos attributes が No
、もしくは拡張属性が存在しない環境において、
smbd(8) がファイルの読みとり専用属性を表示する方法を制御することが可能である。
store dos attributes が yes
の場合、このパラメータは無視される。
これは Samba 3.0.21 で新設されたパラメータである。
3 とおりの値を以下に示す:
Yes
- 読みとり専用の DOS 属性は、UNIX のパーミッションビットにおけるユーザ、すなわち所有者の書き込み権ビットに対応付けられる。
所有者の書き込み権ビットが設定されていない場合、ファイルには読みとり専用属性が付加されているものとみなされる。
Permissions
- 読みとり専用の DOS 属性は、接続しているユーザに対する有効なパーミッションに対応付けられる。
これは、smbd(8)
が UNIX のパーミッションおよび (存在していれば) POSIX の ACL を読みとることにより確認される。
接続しているユーザにファイルを編集するパーミッションがない場合、ファイルには読みとり専用属性が付加されているものとみなされる。
No
- 読みとり専用 DOS 属性は、パーミッションに対応付けられず、
store dos attributes パラメータによってのみ付与される。
これは、マウント中の CD を共有する場合にも便利かも知れない。
デフォルト値: map read only
= yes
このパラメータは、DOSのシステムファイル属性を UNIXのグループ実行権ビットに割り当てるかどうかを決定する。
このパラメータを利用する場合は、 グループ実行権ビットがマスクされないように(010というアクセス権を含むように)、 create mask パラメータを設定することが必要となることに注意。 詳細は、create mask パラメータを参照のこと。
デフォルト値: map system
= no
このパラメータは、SECURITY =
security モードが
security = share
以外の時、すなわち
user
、server
、
domain
のときにのみ有用である。
このパラメータの値には、 smbd(8) が 何らかの方法で有効なUNIXユーザとして認証されなかったユーザのログイン要求をどのように扱うかを指定するための 4 つの値のいずれかを設定することが可能である。
4 つの値を以下に示す:
Never
-
不正なパスワードによるユーザのログイン要求を拒否する。
これがデフォルトである。
Bad User
-
存在するユーザに対する不正なパスワードによるログイン要求は拒否する。
指定されたユーザが存在しなかった場合はゲストログインとして扱い、
guest account
で指定されたアカウントにマッピングする。
Bad Password
-
不正なパスワードによるユーザのログイン要求は、ゲストログインとして扱い、
guest account
で指定されたアカウントにマッピングする。
この場合、パスワードをタイプミスすると、
なにも言われずに「guest」としてログインしてしまう。
パスワードをタイプミスしたというメッセージがないため、
アクセス可能である筈のファイルにできないが理由がわからないという問題が発生する。
map to guest
パラメータをこの設定にすると、
ヘルプディスクサービスからは 憎まれる ことになるだろう:-)。
Bad Uid
-
これは、Sambaがドメインモードのセキュリティ (security = {domain|ads}) で構成されている環境でのみ意味を持つ。
この環境において、認証が成功したにも関わらず UNIX側のユーザアカウントが存在しない (smbdが作成することもできない) 場合に、定義されたゲストアカウントへのマッピングを行う。これは Samba 2.2 系列におけるデフォルトの挙動である。
メンバサーバで winbindd が実行されている場合、nss_winbind ライブラリが Windows ドメインのユーザやグループを NSS インタフェース経由で Samba を実行する OS に対して提供するため、このパラメータが必要となる事態は発生し得ない。
security
モードが
share 以外の場合、「ゲスト」共有サービスを設定する場合は、
このパラメータが必須である。これは、サーバがクライアントの認証に成功しない限り、
要求されるリソースの名前がサーバに送られることは決してなく、
サーバが「ゲスト」共有に対する認証の成否を、
適切な時点(共有への接続時)に行なうことができないためである。
以前の 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
このオプションは、 Samba がクライアントに通知する同時に実行可能な SMB オペレーションの最大数を制御する。 このパラメータを設定する必要はないであろう。
デフォルト値: max mux
= 50
このパラメータにより、ある smbd(8) プロセスが1つのクライアントに対して同時に開くことのできるファイル数の上限値が設定される。 Samba は、オープンされていないファイルごとにわずか 1 ビットしか消費しないので、このパラメータのデフォルト値は、非常に大きな値 (10000) に設定されている。
オープンするファイルの数の制限は、通常このパラメータではなく UNIX におけるプロセス毎のファイルディスクリプタの上限値によって制限される。そのため、この値を変更する必要はないであろう。
デフォルト値: max open files
= 10000
このパラメータにより、 ある時点で Samba の印刷キューに蓄積可能なジョブの最大数が設定される。 設定数を超過すると、 smbd(8) は、 クライアントに「空き領域がない」というエラーを返却する。
デフォルト値: max print jobs
= 1000
設定例: max print jobs
= 5000
このパラメータは、max protocolの別名である。
このパラメータ(文字列)の値は、 サーバがサポートする最上位のプロトコルである。
設定可能な値は以下の通りである:
CORE
:
最初期のもので、ユーザの概念がない
COREPLUS
:
ほんの少し CORE に手を加えたものである
LANMAN1
: 最初の
近代的な バージョンであり、
長いファイル名をサポートしている
LANMAN2
:
LANMAN1 プロトコルを改良したものである
NT1
: 最も新しいプロトコルであり、
Windows NT が利用する。CIFSと呼ばれることもある。
通常、SMB プロトコルによりネゴシエーションを経て適切なプロトコルが選択されるため、 このオプションを設定すべきではない。
デフォルト値: max protocol
= NT1
設定例: max protocol
= LANMAN1
このパラメータにより、ある時点で Samba の印刷キューのポートモニタが表示する印刷ジョブの最大数が設定される。 この数値を超過した場合、超過したジョブは表示されない。 0 が設定された場合は、表示される印刷ジョブの制限はなくなる。
デフォルト値: max reported print jobs
= 0
設定例: max reported print jobs
= 1000
このパラメータは、システムで同時に実行可能な smbd(8) プロセス数の最大値を設定することで、コネクションを扱うリソースが不足して、クライアントに対するサービスが低下することを抑止する。通常の環境では、各ユーザ毎に smbd(8) が割り当てられ、そのホストからの共有に対するコネクションのすべてを扱うことに注意。
デフォルト値: max smbd processes
= 0
設定例: max smbd processes
= 1000
このパラメータにより、大文字小文字を区別しない名前の対応づけの高速化に用いられる
stat cache
に用いられるメモリの上限値が指定される。
このパラメータには、使用する stat cache のサイズをキロバイト (1024) 単位で指定する。
デフォルト値は 0 であり、無制限を意味する。
このパラメータを変更する必要はないであろう。
デフォルト値: max stat cache size
= 0
設定例: max stat cache size
= 1024
このオプションは、 nmbd(8) がブロードキャストを利用したりWINSサーバを利用したりして NetBIOS 名を要求する際の NetBIOS 名のデフォルトのTTL(time to live)を(秒単位で)設定する。 このパラメータを変更する必要はないであろう。 デフォルトは3日である。
デフォルト値: max ttl
= 259200
このオプションは、 smbd(8) が WINS サーバとして動作している (wins support = yes) nmbdに登録される NetBIOS 名の最大のTTL(time to live)を秒単位で指定する。 このパラメータを変更する必要はないであろう。 デフォルトは6日(518400秒)である。
デフォルト値: max wins ttl
= 518400
このオプションにより、 Samba がネゴシエーション時に用いるパケットサイズの最大値が設定される。 デフォルトは 16644 であり、これは Windows 2000 の挙動に合わせた値である。 2048 以下ではおそらく問題が出るだろう。 このパラメータの値をデフォルトから変更する必要はないだろう。
デフォルト値: max xmit
= 16644
設定例: max xmit
= 8192
このパラメータは、サーバが WinPopup 形式のメッセージを受信した際に、どのようなコマンドを実行するかを指定する。
一般的には、 何らかの形でメッセージを配送するコマンドを指定する。 これをどのようにして行なうかは、発想次第である。
以下に一例を示す:
message command = csh -c 'xedit %s;rm %s' &
これは、 xeditを利用してメッセージを配送し、 その後メッセージを削除する。 コマンドは、 すぐに制御を戻すようにすることが必須であることに注意すること。 最後に '&' をつけたのは、そのためである。 コマンドを実行後すぐに制御が戻らないと、PC はメッセージ送信後フリーズしてしまう(うまくいけば、30 秒後に回復することになるだろう)。
全てのメッセージは、グローバルなゲストユーザの権限で配送される。
コマンド中では、標準の変数を利用できるが、
%u
は機能しない(%U
を利用するのが適切であろう)。
標準の変数以外に、 以下に示す変数を利用することが可能である:
%s
=
メッセージを含むファイル名
%t
=
メッセージの送信先(通常はサーバ名)
%f
=
メッセージの送り元のユーザ
このコマンドにより、 メールを送るなど、さまざまな動作が考えられる。 おもしろいアイデアを思いついたら教えて欲しい。
以下はメッセージをrootへのメールとして送信する方法である:
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 で、この場合、ユーザは常に印刷ジョブをスプールできる。
デフォルト値: min print space
= 0
設定例: min print space
= 2000
このパラメータの値(文字列)は、
Sambaがサポートする最低限のSMBプロトコルの dialect(レベル) を指定する。
有効なプロトコル名の一覧と、その簡単な説明については、
max protocol
パラメータを参照のこと。クライアントがサポートするプロトコルの dialect 一覧については、
source/smbd/negprot.c
の Cソースを参照するとよいであろう。
セキュリティ的な観点では、 lanman auth パラメータも参照のこと。 それ以外の観点からこのパラメータを変更する必要はないであろう。
デフォルト値: min protocol
= CORE
設定例: min protocol
= NT1
このオプションは、 nmbd(8) がWINSサーバとして動作している時に (wins support = yes)、 nmbd に登録された NetBIOS 名の最小の TTL (time to live)を秒単位で指定する。 このパラメータを変更する必要はないであろう。 デフォルトは6時間(21600秒)である。
デフォルト値: min wins ttl
= 21600
このパラメータは、この共有がパラメータで指定された別の CIFS 共有をプロキシする共有であることを指定する。 この共有に接続したクライアントは、 SMB の DFS プロトコルにより、別の共有に転送される。
DFS ルートのみがプロキシする共有として機能できる。 DFS ルートの共有を設定する方法については、 msdfs root および host msdfs オプションを参照のこと。
デフォルト値なし
設定例: msdfs proxy
= \otherserver\someshare
yes
に設定された場合、 Samba はその共有を DFS ルートとして扱うため、クライアントは、その共有ディレクトリをルートとする DFS (分散ファイルシステム)ツリーを参照することが可能になる。
DFS リンクの作成は、共有ディレクトリ内で
msdfs:serverA\\shareA,serverB\\shareB
のような形式でシンボリックリンクを作成することにより行なわれる。
DFS ツリーを Samba で構成する際の詳細情報については、
Samba3-HOWTO の MSDFS の章を参照のこと。
デフォルト値: msdfs root
= yes
Samba のホスト名キャッシュ内のエントリがタイムアウトするまで時間を秒単位で指定する。タイムアウトが 0 に設定された場合、キャッシュは無効になる。
デフォルト値: name cache timeout
= 660
設定例: name cache timeout
= 0
このオプションは、どの名前サービスを用いて、またどのような順番で、 ホスト名から IP アドレスを解決するかを決定するため、 Samba の各プログラムで利用される。 このオプションの主な目的は、NetBIOS 名前解決をどのように行なうかを指定することである。 オプションは、名前解決オプションをスペースで区切った文字列で指定する。
オプションは、「lmhosts」、「host」、「wins」、「bcast」である。 これらは以下に示すように名前解決を実行する:
lmhosts
:
Samba の lmhosts ファイルから IP アドレスを検索する。
NetBIOS 名サフィックスの指定されていない行が lmhosts ファイル中にあった場合、
(詳細は、lmhosts ファイルのマニュアルページを参照のこと)、
その行はすべてのサフィックスの検索にマッチする。
host
:
システム標準の方法で、/etc/hosts
、 NIS 、 DNS への問い合わせを行ない、
ホスト名から IP アドレスへの名前解決を行なう。
名前解決の方法は、OSに依存する。 IRIX や Solaris の場合、
/etc/nsswitch.conf
ファイルにより制御される。この方法は、問い合わせされた NetBIOS
のサフィックスが 0x20(サーバ) か 0x1c(ドメインコントローラ)
の時のみ利用され、それ以外は無効であることに注意。
後者は、アクティブディレクトリドメインでのみ有効である。
この場合、_ldap._tcp.domain に対応する SRV RR エントリを検索するための DNS クエリが行われる。
wins
:
WINSSERVER パラメータで指定された IP
アドレスに対して名前の問い合わせが行なわれる。
WINS サーバが指定されていない場合、この方法は無視される。
bcast
:
interfaces
パラメータで設定された各インタフェースに対してブロードキャストが実行される。
これは解決したいホストがローカルサブネットに接続されていることを前提とするため、
もっとも信頼性の低い名前解決の方法である。
以下の例では、最初にローカルの lmhosts ファイルを調査し、 次にブロードキャストを行ない、 最後にシステム標準のホスト名検索を試行する。
Samba が ADS セキュリティモード (security = ads) で動作する場合、
name resolve order
の設定は次のようにすべきである:
name resolve order = wins bcast
この 場合でも、DC は DNS への問い合わせを行なう。 失敗した場合に NetBIOS 名の問い合わせを行なうが、その際無意味な DNS への「DOMAIN<0x1c>」の問い合わせが抑止される。
デフォルト値: name resolve order
= lmhosts host wins bcast
設定例: name resolve order
= lmhosts bcast host
これは、nmbdが Samba サーバの別名としてアナウンスする NetBIOS 名のリストである。これにより、ブラウズリスト中で単一のマシンを複数の名前で表示させることが可能になる。 マシンがブラウズサーバやログオンサーバとして動作している場合、別名はブラウズサーバやログオンサーバとしてはアナウンスされない。マシン本来の名前だけがそれらの機能をもつ名前としてアナウンスされる。
デフォルト値: netbios aliases
=
# 空文字列 (別名なし)
設定例: netbios aliases
= TEST TEST1 TEST2
このパラメータにより、 Samba サーバの NetBIOS 名が設定される。デフォルトでは、ホストの DNS 名の最初の部分と同一である。マシンがブラウズサーバや、ログオンサーバの場合、ここで設定された名前 (またはホストのDNS名の最初の部分)がサービスをアナウンスする際に用いられる。
Samba 3.0 には、NetBIOS が PIPE
に設定されるとブラウジングや共有へのアクセスに問題が発生するというバグがある。
この問題を避けるためには、Samba 3.0 マシンの名前を PIPE
にしないこと。
デフォルト値: netbios name
=
# マシンの DNS 名
設定例: netbios name
= MYNAME
このパラメータにより、 Samba が使用する NetBIOS スコープを設定される。LAN上のすべてのマシンに同じ値を設定しない限り、このパラメータを設定すべきではない。
デフォルト値: netbios scope
=
NIS マップから、[home] 共有を提供するサーバを取得する。 automounter を使用する UNIX システムでは、 ユーザのホームディレクトリが、必要に応じてリモートサーバから ワークステーションにマウントされるようになっていることが多い。
Samba のログオンサーバが実際のホームディレクトリを提供するサーバではなく、 NFS経由でホームディレクトリをマウントしている場合、 クライアントに自分自身がホームディレクトリを提供する SMB サーバであるように見せると、 ユーザがホームディレクトリにアクセスするためには、 二段階のネットワークアクセスが必要になる(1つは SMB で、もう 1 つは NFS)。 これはとても遅くなることがある。
このオプションにより、 Samba は home 共有がログオンサーバとは異なるサーバにあるものとして扱うことが可能になり、 Samba デーモンがホームディレクトリを提供するサーバで動作している限り、 Samba クライアントは、ホームディレクトリを提供しているサーバ上の共有を直接マウントする。 Samba が home 共有の情報をクライアントに返すとき、 homedir map パラメータ で指定された NIS マップに問い合わせて、そこにあるサーバの情報を利用する。
このオプションが機能するためには、NIS システムが動いていなければならず、 このオプションを指定した Samba サーバは、 ログオンサーバでなければならないことに注意すること。
デフォルト値: nis homedir
= no
この真偽値パラメータにより、 smbd(8) が UNIX のパーミッションを Windows NT のアクセスコントロールリストにマップするかどうかが決定される。 対象となる UNIX のパーミッションは、 ファイルやディレクトリに設定された伝統的な UNIX の所有者とグループのパーミッションと POSIX ACL である。 このパラメータは、Samba 2.2.2 より前のリリースでは、グローバルパラメータであった。
デフォルト値: nt acl support
= yes
このパラメータにより、smbd(8) が NTLM レスポンスを用いてユーザ認証を行なうかどうかが設定される。NTLM レスポンスが無効な場合、クライアントは LANMAN パスワードハッシュか NTLMv2 レスポンスを送信する必要がある。
このオプションと lanman auth の両方を無効にした場合、NTLMv2 ログインのみが可能となる。すべてのクライアントが NTLMv2 をサポートしているわけではなく、ほとんどの場合、NTLMv2 を使用するためには、明示的に設定を行なうことが必要である。
デフォルト値: ntlm auth
= yes
この真偽値パラメータにより、
smbd(8) が
Windows NT のクライアントに対して、 Windows NT の SMB 固有の
IPC$
パイプへの接続を許可するかどうかが制御される。
これは開発者のデバッグオプションであり、意識する必要はない。
デフォルト値: nt pipe support
= yes
この真偽値パラメータは、 smbd(8) が、 Windows NT/2000/XP
クライアントに対して、 NT 固有のステータスのサポートのネゴシエーションを行なうかどうかを制御する。
これは、開発者のデバッグ用オプションであり、設定を変更すべきではない。
このオプションが no
の場合、 Samba は
Samba 2.2.3 以前と全く同様に、DOS エラーコードを返却する。
このオプションを無効にしてはならない。
デフォルト値: nt status support
= yes
Nullパスワードを持つアカウントへのクライアントからのアクセスを許可、あるいは禁止する。
smbpasswd(5) も参照のこと。
デフォルト値: null passwords
= no
PAMサポートを有効にして(--with-pam) configure された Samba 3.0 系列において、このパラメータは、Samba が PAM のアカウントとセッション管理機構を利用するかどうかを制御する。 デフォルトの場合、 PAM は平文テキスト認証にのみ利用され、 アカウントとセッション管理は利用されない。 encrypt passwords = yes の場合、Sambaは常に PAM による認証を無視することに気を付けること。 これは、PAMモジュールが、 SMBのパスワード暗号化に必要なチャレンジアンドレスポンス認証機構をサポートしていないためである。
デフォルト値: obey pam restrictions
= no
この真偽値のオプションは、user
パラメータに設定されていないユーザからの接続を許可するかどうかを制御する。
デフォルトでは、このオプションは無効になっており、
クライアントがサーバで使用するユーザ名を提供することが可能である。
このパラメータを有効にすることで、サーバは user
パラメータで設定されたユーザ名のみを利用する。
これは security = share
のセキュリティの時のみ有用である。
このパラメータを有効にすると、
Samba はサービス名からユーザ名を推測することも行なわなくなる。
このため、[homes] セクションを利用していると問題が発生してしまうことがある。
user = %S とすることで、
user
リストにサービス名が設定され、
ホームディレクトリをユーザの名前にすることができる。
このパラメータを有効にすると、
Samba はサービス名からユーザ名を推測することも行なわなくなるので注意すること。
これにより、[homes] セクションを利用していると問題が発生してしまうことがある。
user = %S とすることで、
user
リストにサービス名が設定され、
ホームディレクトリをユーザの名前にすることができる。
デフォルト値: only user
= no
このパラメータは Samba 3.0.23 で追加された。 これはオープンされているファイルのデータベースに用いられる TDB ファイルのハッシュサイズを設定する内部チューニング用のパラメータである。 このパラメータにより、非常に大規模な (同時接続数が何千ユーザの) システム用のチューニングを行なうことが可能となる。 このパラメータのデフォルト値は、ほとんどの環境で十分な値である。 Samba Team のメンバからアドバイスされない限り、このパラメータを変更しないことを推奨する。
デフォルト値: open files database hash size
= 10007
設定例: open files database hash size
= 1338457
これは Windows 9x と Windows NT 双方のバグに対応するために追加されたチューニングオプションである。 クライアントが oplock を解除させるような SMB を発行した時に、 Samba のクライアントに対する応答が早過ぎると、 クライアントは誤動作してしまい、解除要求に応答しない。 このチューニングパラメータ(ミリ秒単位で指定する)は、 こうした(異常動作を行なう)クライアントに対して oplock 解除要求を送付する前に、Samba がとる待ち時間になる。
Samba の oplock コードを読んで理解していない限り、このパラメータを変更してはいけない。
デフォルト値: oplock break wait time
= 0
これは 非常に 高度な smbd(8) のチューニングオプションで、 複数のクライアントから同じファイルへの oplock 要求が行なわれた際の効率を改善するものである。
このパラメータには数値を指定する。 同じファイルに対して oplock を行なおうとするクライアントの大体の数がこのパラメータで指定した限界を越えると、 smbd(8) は、 たとえ要求されても oplock を許可しないようになる。これにより、 smbdは Windows NT と同様の動作を行うようになる。
Samba の oplock コードを読んで理解していない限り、このパラメータを変更してはいけない。
デフォルト値: oplock contention limit
= 2
この真偽値オプションは、
共有内のファイルオープンが要求された際に oplock (opportunistic lock = 便宜的ロック) を行なうかどうかを
smbd に指示する。
oplock により、Samba サーバ上のファイルアクセス速度を劇的に改善(およそ 30% 以上)することができる。
oplock により、クライアントは、積極的にファイルをローカルにキャッシュするようになるが、
信頼性の低いネットワーク環境の場合などに、これを無効にしたいと考えることもあるだろう
(Windows NT サーバにおけるデフォルト値は有効である)。
これ以上の情報については、 Samba の docs/
ディレクトリにある Speed.txt
を参照のこと(訳注:現在は存在していないファイルである)。
oplock は共有内のファイル単位で無効にすることも可能である。 veto oplock files パラメータを参照のこと。 システムによっては、oplock が OS 自身によって認識される。 この場合、Samba、NFS、ローカルなUNIXのいずれを経由してアクセスが行なわれた場合でも、 oplock が行なわれたファイルとのデータの同期が実現する。 詳細は、kernel oplocks パラメータを参照のこと。
デフォルト値: oplocks
= yes
このパラメータでは、 OS/2 のプリンタドライバ名と Windows NT のプリンタドライバ名とのマッピングが記述されたファイルへの絶対パスを指定する。 ファイル形式は以下のようになっている:
<nt driver name> = <os2 driver name>.<device name>
HP LaserJet 5 のプリンタドライバを例にとった場合、 正しいエントリはHP LaserJet 5L = LASERJET.HP LaserJet 5Lのようになる。
このファイルは、 Samba3-HOWTO 本の Classical Printing 章で記述されているプリンタドライバの名前空間の問題に対応するために用いられる。 OS/2 クライアントに関する詳細については、Samba3-HOWTO 本の other clients 章を参照のこと。
デフォルト値: os2 driver map
=
この数値は、 Samba がブラウザ選定時に宣言する優先度を設定する。 このパラメータの値は、 nmbd(8) が、ブロードキャスト範囲内における workgroup のローカルマスタブラウザになるかどうかに影響する。
注意 : ローカルマスタブラウザの選定に際して、デフォルトでは、 Samba が Windows NT 4.0/2000 のドメインコントローラ以外のすべての Microsoft 社のOSに優先する。 このため、Samba ホストの設定が不正の場合、 ブラウジング的にそのサブネットが孤立してしまう可能性がある。 Samba 3.0 系列では、このパラメータは通常自動設定されるため、デフォルト値を手動で設定する必要は通常発生しない。(訳注: 実際には自動設定は行なわれない。この説明は誤りだと思われる) このパラメータに関する詳細は、Samba-3 HOWTO ドキュメントの第 9 章を参照のこと。
デフォルト値: os level
= 20
設定例: os level
= 65
Samba 2.2 における PAM サポート機能の追加にともない、 このパラメータを用いることで、 Samba で PAM を使ったパスワード変更が可能となった。 このパラメータが有効な場合、SMB クライアントからの要求があれば、 passwd program. に設定されたプログラムに代わって、PAM を使ってパスワードの変更が行なわれる。 ほとんどの場合、 passwd chat パラメータの変更なしにこのパラメータを有効にすることが可能である。
デフォルト値: pam password change
= no
これは Samba 開発者のためのオプションで、 smbd(8) か smbd(8) がクラッシュした際に呼び出されるシステム上のコマンドを指定する。 これは通常問題が発生した事実を警告するのに使われる。
デフォルト値: panic action
=
設定例: panic action
= "/bin/sleep 90000"
Windows NT 4.x のバージョンによっては、問題のあるパスワードの非ゲストアカウントが許容されている。このオプションを有効にした場合、 Samba はこうした Windows NT 4.x サーバを password server として使用せず、ログに出力を行ない終了するようになる。
このオプションを無効にすることで、 Samba がこのチェックを行なわなくなるため、リモートサーバに対する問題のあるログオンの試行が明示的に許可される。
デフォルト値: paranoid server security
= yes
このオプションにより、管理者はパスワードの格納および取得にどのような機構(backend)を使用するかについて指定できる。 これにより、再コンパイルなしで機構を取り換えることが可能となる。
このパラメータは、機構の名称と、特定の機構に依存した「位置」を示す文字列との 2 つの要素から構成されている。 この要素は「:」文字で区切られる。
指定可能な機構は以下のとおりである:
smbpasswd - デフォルトの smbpasswd 機構である。オプションの引数として smbpasswd ファイルの位置を指定する。
tdbsam - TDB ベースのパスワード格納機構である。 オプションの引数として、 TDB ファイルへのパス (デフォルトは private dir ディレクトリ内の passdb.tdb) を指定する。
ldapsam - LDAP ベースのパスワード機構である。 オプションの引数として、 LDAP の URL (デフォルトは ldap://localhost) を指定する。
LDAP の接続は、可能な場合は暗号化される。
これは Start-TLS (ldap ssl を参照のこと) か
ldaps://
を URL 引数中で指定することにより行なわれる。
LDAP ライブラリが LDAP URL 表記をサポートしていれば (OpenLDAP はサポートしている)、 ダブルクォーテーションを使って複数のサーバを指定できる。
以下に設定例を示す。
passdb backend = tdbsam:/etc/samba/private/passdb.tdb または passdb backend = ldapsam:"ldap://ldap-1.example.com ldap://ldap-2.example.com"
デフォルト値: passdb backend
= smbpasswd
このパラメータは、passdb の指定に % マクロが明示的に指定された際に、 それを展開するかどうかを制御する。 ここではマクロを用いることが可能となっているが、 Windows クライアントがユーザのプライマリグループに置換されるべき %G が含まれている %G_osver% といった変数を展開してしまうというバグを引き起こしてしまうことがある。
デフォルト値: passdb expand explicit
= no
このパラメータで指定される文字列は、 smbd(8) とローカルなパスワード変更プログラムとの間でパスワード変更時に発生する 「やりとり(chat)」 を制御する。 文字列には、 smbd(8) が passwd program で指定したプログラムに行なう送信内容と、それに対して期待される応答内容とを定義したやりとりの手順を記述する。 期待される応答がない場合、パスワードは変更されない。
このやりとりの手順は、 パスワード制御のためにどのような方法(たとえば NIS など)を使うかに依存するため、 通常サイト依存のものとなる。
このパラメータは、
unix password sync
パラメータが yes
の時のみ利用される。
このやりとりは、smbpasswd ファイル中の SMBパスワードが変更される際に、
古いパスワードの平文へアクセスすることなしに、
ROOT権限で 呼び出される。
これは、root であれば以前のパスワードを知らなくても、ユーザのパスワードの再設定を行なうことができるからである。
NIS/YP を利用している場合、
passwd program は NIS マスタサーバ上で実行する必要がある
文字列には、新パスワードに置換される、 %n
マクロや、
各々改行、復帰、タブ、空白を意味する標準的なマクロである、\n, \r,
\t, \s も記述できる。
さらに、この文字列には、任意の文字列に一致する '*' を記述してもよい。
ダブルクオーテーションは、空白を含む複数の文字列を 1 つの文字列と見なすのに使うことができる。
やりとりの手順中で、送信文字列としてピリオド「.」が指定されていた場合、実際にはなんの文字列も送られない。 同様に、受信文字列としてピリオドが指定されていた場合、 実際には何も受信しないことが期待されている。
pam
password change
パラメータが yes
の場合、やりとりの手順は、任意の順番でマッチし、
成功したか否かは出力結果ではなく PAM の戻り値で判断される。
PAM の場合、\n マクロは無視される。
デフォルト値: passwd chat
= *new*password* %n\n*new*password* %n\n *changed*
設定例: passwd chat
= "*Enter OLD password*" %o\n "*Enter NEW password*" %n\n "*Reenter NEW password*" %n\n "*Password changed*"
この真偽値パラメータは、passwd chat script パラメータを
debug モードで実行するかどうかに影響する。
debug モードの場合、passwd chat 中にやりとりされる文字列は、
debug level
を 100 にすることで、 smbd(8) のログファイル中に出力されるようになる。
smbd のログ中に平文のパスワードが見えてしまうため、これは危険なオプションである。
このパラメータは、 Samba の管理者が passwd chat
スクリプトが
passwd program
のデバッグを行なう際に役立つ。デバッグが終了したら、必ず無効にすること。
pam password change
パラメータが有効になっている場合、このオプションは無効になる。
このパラメータはデフォルトで無効になっている。
デフォルト値: passwd chat debug
= no
この整数値により、smbd が passwd chat script の実行を待機する時間を秒単位で指定する。 最初の応答が受信されて以降のやりとりは、 この値の 1/10 の時間で応答される必要がある。 デフォルトは 2 秒である。
デフォルト値: passwd chat timeout
= 2
ユーザの UNIX 上のパスワードを設定するために使用するプログラムの名前を指定する。
%u
はユーザ名に置換される。
パスワード変更プログラムを呼び出す前に、
指定されたユーザ名が存在するかのチェックが行なわれる。
多くのパスワード変更プログラムは、 パスワードの最小字数や大文字と小文字併用や、数字の混在などの 適切なパスワードを要求することに注意して欲しい。 一部のクライアント(Windows for Workgroups など)は、 パスワードを送信する前に大文字化してしまうため、問題が発生する。
注意:unix
password sync
パラメータを yes
に設定すると、 smbpasswd
ファイル中の SMBパスワードが変更される前に、
このプログラムが ROOT権限で 呼び出される。
UNIX 側のパスワード変更が失敗すると、
smbd は SMBパスワードの変更も失敗させる(これは仕様である)。
unix password sync
パラメータが yes
に設定されている場合は、
このパラメータで指定する すべての プログラムを 必ず絶対パスで設定し、
セキュリティ上の問題が発生しないようにしておくこと。
デフォルトでは unix password sync
は no
になっているので注意。
デフォルト値: passwd program
=
設定例: passwd program
= /bin/passwd %u
クライアントとサーバの組合せによっては、 大文字と小文字が混在したパスワードの扱いに問題が発生することがある。 問題が発生するクライアントとしては、 LANMAN1 プロトコルを使用しているとパスワードを強制的に大文字にするが、 COREPLUS を使用しているときはこの変換を行なわない Windows for Workgroups が挙げられる。 Windows 95/98 系列のオペレーティングシステムにも問題がある。 これらのクライアントは、プロトコルのネゴシエーションの結果 NT LM 0.12が使われることになった場合でも、平文のパスワードを大文字化してしまう。
このパラメータは、 パスワード中に含まれる大文字の最大数を設定する。
例えば、与えられたパスワードが「FRED」であったとする。
password level
が 1 に設定されていると、
「FRED」で失敗したときに以下の組み合わせによる再試行が行なわれる:
"Fred", "fred", "fRed", "frEd","freD"
password level
が 2 に設定されていると、
以下の組合せによる試行も行なわれる:
"FRed", "FrEd", "FreD", "fREd", "fReD", "frED", ……
以降も同様である。
このパラメータを大きくするほど、 大文字と小文字の混在したパスワードが大文字あるいは小文字のみのパスワードと一致するようになる。 しかし、このパラメータの利用はセキュリティの低下につながることと、 新規の接続を処理するための時間が増大することを意識しておく必要がある。
値を 0 にすると、入力された通りのパスワードと、 それらを全て小文字にした場合の 2 回の試行のみを行なう。
このパラメータは、平文のパスワードを使用する場合にのみ使用される。暗号化パスワードが使用されている場合 (samba-3.0.0 以降はそれがデフォルト) にはまったく使用されない。つまり、このパラメータは encrypt passwords = No という設定の場合にのみ使用するということである。
デフォルト値: password level
= 0
設定例: password level
= 4
このオプションで、別の SMB サーバ(Windows NT マシンなど)の名前を指定した上で、 security = [ads|domain|server] の設定を行なうことで、 Samba が行なうユーザ名、パスワードの認証のすべてを指定した別のサーバに行なわせることが可能となる。
このオプションでは、使用するパスワードサーバの名前あるいは IP アドレスを設定する。 また、現在は、 ADS のレルムに対応するサーバへの接続時に使用するポートの指定にもこのオプ ョンが使用できるようになっており、そのための書式も追加されている。 デフォルトの LDAP ポートである 389 以外のポートを指定する場合には、名前あるいは IP アドレスの後にコロンを付けて指定する(例: 192.168.1.100:389)。 ポートを指定しなかった場合、 Samba は標準の LDAP ポートである tcp/389 を使用する。このポート番号は、Windows NT 4.0 ドメインや NetBIOS 接続に対応するパスワードサーバには何の意味も持たないという点に注意。
このパラメータの値が名前の名前解決は name resolve order パラメータで設定された方法と順番に従って行なわれるため、 このパラメータで指定可能な任意の方式を任意の順番で組み合わせることができる。
パスワードサーバは、 「LM1.2X002」または「LM NT 0.12」プロトコルが利用可能であり、 ユーザレベルのセキュリティモードで構成されたマシンである必要がある。
パスワードサーバを利用するということは、 Samba を実行している UNIX マシンのセキュリティはパスワードサーバに依存するということである。 完全に信頼することができるサーバ以外をパスワードサーバとして設定してはいけない。
Samba サーバ自身をパスワードサーバに設定しないこと。 これはループを発生させ、Samba サーバをフリーズさせてしまう!
password server の値には、 Samba 変数も通常通り利用できるが、
事実上有用なものは、Samba サーバに接続してきたクライアントをパスワードサーバとして設定することを意味する、
%m
だけであろう。
この設定はクライアントを信頼することになるため、
hosts allow パラメータにより接続を制限することが望ましい。
security
パラメータを
domain
もしくは ads
に設定する場合、このオプションでは、
ドメインのプライマリおよびバックアップドメインコントローラを指定するか、
「*」という文字を指定する必要がある。これは、
Samba サーバをドメインのメンバとして機能させるとともに、
ユーザのログオン時に認証を行なうために、暗号化された認証済のRPCコールを利用するためである。
security = domain を用いる利点は、
password server
オプションで幾つかのサーバを指定した場合に、
smbd が、どれかのサーバから応答があるまでリスト中のサーバに対して順番に問い合わせを行なっていくという点にある。
これは、通常問い合わせを行なうサーバが停止してしまった時に効果を発揮する。
password server
オプションに文字 「*」 を指定すると、Samba は WORKGROUP<1C>
への問い合わせを行い、名前解決機構から返却された IP アドレスリスト中の各サーバにアクセスを行って認証を実施するため、プライマリあるいはバックアップドメインコントローラの名前解決を自動的に実施する。
「*」文字とサーバのリストの両方を指定した場合、 リストは問い合わせを行なうサーバの優先順位として機能するが、 それ以外の DC もリストには追加される。 Samba は最も近い DC の位置を検出することによるリストの最適化は行なわない。
security
パラメータが
server
の場合、
security = domain
の場合にはなかった制限事項が幾つか発生する:
複数のパスワードサーバを
password server
パラメータ中に設定できるが、
一旦 smbd が接続を行なったパスワードサーバが停止してしまうと、
その smbd
ではそれ以上のユーザ認証が一切行なえなくなる。
これは security = server
モードにおける SMB/CIFS プロトコルでの制限で、Samba 側では対処できない。
Windows NT サーバをパスワードサーバとして使っている場合、 ユーザが Samba サーバからログオンできるようにする必要がある。 これは、security = server モードの場合、 ネットワーク経由のログオンは、ユーザのワークステーションからではなく、 Samba サーバから行われたものとして扱われるためである。
デフォルト値: password server
=
設定例: password server
= NT-PDC, NT-BDC1, NT-BDC2, *
設定例: password server
= windc.mydomain.com:389 192.168.1.101 *
設定例: password server
= *
このパラメータは、pathの別名である。
このパラメータは、サービスに接続したユーザがアクセスするディレクトリを指定する。印刷サービスの場合、これは印刷データがホストの印刷機構に送られる前にスプールされる場所になる。
ゲストアクセスを許可している印刷サービスの場合、サービスは読みとりのみにした上で、パスは全ユーザ書き込み可能として sticky ビットをセットすべきである。これはもちろん必須ではないが、このようにしない限りは、おそらく意図した設定を行なうことができないだろう。
%u
は、クライアントが接続する際に使用した UNIX のユーザ名に置換される。%m
は、接続してきたマシンの NetBIOS 名に置換される。これらの置換機能は、ユーザに仮想的なホームディレクトリを設定する際非常に有用である。
root dir が指定されていた場合、このパラメータもその影響を受けることに注意。
デフォルト値: path
=
設定例: path
= /home/fred
このオプションにより、 pid ファイルがおかれるディレクトリが指定される。
デフォルト値: pid directory
= ${prefix}/var/locks
設定例: pid directory
= pid directory = /var/run/
smbd(8) デーモンでは、 SMB クライアントによって行なわれたファイルロックの情報を記録するデータベースを管理している。 デフォルトでは、データベースの内部処理として POSIX ロックへの置換えが行なわれている。 これにより、SMB クライアントによって行なわれたファイルロックは、 POSIX 互換のアプリケーションが SMB 以外の方式(NFS やローカルなファイルアクセス) を用いて、ファイルにアクセスする際にも認識されることになる。 このパラメータを無効にする必要はまずないであろう。
デフォルト値: posix locking
= yes
このオプションは、 サービスから切断した際に常に起動されるコマンドを指定する。 このパラメータでは通常の Samba の変数も利用できる。 システムによってはコマンドが root で実行される場合もあるかも知れない。
面白い例としては、サーバのリソースを umount するような用途が考えられる:
postexec = /etc/umount /cdrom
デフォルト値: postexec
=
設定例: postexec
= echo \"%u disconnected from %S from %m (%I)\" >> /tmp/log
このパラメータは、preexecの別名である。
このオプションは、サービスへ接続した際に必ず実行されるコマンドを指定する。 このパラメータでは通常の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
=
設定例: preexec
= echo \"%u connected to %S from %m (%I)\" >> /tmp/log
この真偽値オプションは、preexec で指定したコマンドから 0 以外の戻り値が返却された際に、 サービスへの接続をクローズするかどうかを制御する。
デフォルト値: preexec close
= no
このパラメータは、preferred masterの別名である。
この真偽値パラメータは、 nmbd(8) が ワークグループのマスタブラウザとして優先されるかどうかに影響する。
これが yes
に設定されていると、
nmbd は起動時にブラウザの選定を強要する。
また、選定時の優先度でも、わずかではあるが有利になる。
このパラメータは、nmbd がドメインマスタブラウザになることを保証するために、
domain master = yes の設定と連携して使用することが推奨されている。
(訳注: Samba 3.0 系列では、domain logons = Yesの場合 preferred master パラメータもデフォルトでは有効となる。domain logons
が有効でない場合(デフォルト)、domain master
もデフォルトでは有効にならない。
同じサブネット上に優先マスタブラウザに指定されたホスト(Samba サーバ、Windows 95/NT のいずれの場合も)が複数台存在すると、 それらのホストは定期的にローカルマスタブラウザになろうとする 試みを永続的に繰り返すことになる。 これは不要なブロードキャストトラフィックを発生させるだけでなく、 ブラウジング機能自体にも支障を発生させてしまうため、このオプションは注意して扱うこと。
デフォルト値: preferred master
= auto
このパラメータは、preloadの別名である。
このパラメータは、 自動的にブラウズリスト上に追加したいサービスのリストを設定する。 このパラメータを利用しないと不可視になる homes や printers サービスにとって有用である。
printcap ファイルにあるすべてのプリンタを指定したい場合は、 load printers オプションを利用する方が簡単である。
デフォルト値: preload
=
設定例: preload
= fred lp colorlp
このパラメータには、クライアントの接続前に smbd にロードされるモジュールのパスのリストを指定する。 これにより smbd が新しい接続を開始する際の時間が短縮される。
デフォルト値: preload modules
=
設定例: preload modules
= /usr/lib/samba/passdb/mysql.so
クライアントから送信されてきた新しいファイル名中の大文字小文字をそのまま利用するか、 default case パラメータの設定を強制するかどうかを設定する。
この設定に関する詳細については、 名前の短縮 セクションを参照のこと。
デフォルト値: preserve case
= yes
このパラメータは、printableの別名である。
このパラメータが
yes
の場合に、
クライアントから指定されたディレクトリにスプールファイルを書き込むことが可能になる。
印刷可能(printable)なサービスでは、 (ユーザがUNIX上に権限をもっている限り)印刷データをスプールファイルに書き込むことが常に可能となることに注意。 read only パラメータは、 リソースに対する印刷以外のアクセスにのみ影響する。
デフォルト値: printable
= no
このオプションにより、印刷サブシステムがプリンタの一覧情報を再確認するまでの時間を秒単位で制御することが可能となる。 この値が 60 より大きい場合、 初回の再確認時間は 60 秒に設定される。 これは、印刷サブシステムが初回の再確認を早期に実行するためである。
このパラメータを 0 (デフォルト値) にすると、 起動後に新しいプリンタや削除されたプリンタを再確認する機能が無効化される。
デフォルト値: printcap cache time
= 0
設定例: printcap cache time
= 600
このパラメータは、printcap nameの別名である。
このパラメータは、
コンパイル時に設定されるデフォルトでサーバが用いる printcap ファイル名
(通常 /etc/printcap
) を上書きにするために使われる。
このパラメータを設定すべき状況については、前述した
[printers] セクションに関する説明を参照のこと。
CUPS 印刷インタフェースを利用する際は、printcap name = cups という設定を行なうこと。これにより [global] セクションの printing = cups パラメータにより補完される。 printcap name = cups により、 CUPS の設定ファイルによって指定された、 CUPS によって作成される「ダミー」の printcap が用いられるようになる。
lpstat を利用することで
利用可能なプリンタの一覧を取得できる System V のシステムでは、
printcap name = lpstat
と設定することで、利用可能なプリンタの一覧を自動的に取得できる。
(ほとんどの 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
である。printcap ファイルの名前が
qconfig
の場合、Samba はファイルが AIXの qconfig
形式であると仮定する。
デフォルト値: printcap name
= /etc/printcap
設定例: printcap name
= /etc/myprintcap
印刷ジョブが、スプールファイルの書き込みを完了した後で、 ここで指定したコマンドが system() 関数経由でスプールファイルを処理するために、利用される。 通常、指定したコマンドはスプールファイルをホストの印刷サブシステムに送信するが、 そうしなければならないということはない。 サーバはスプールファイルを削除しないので、 指定したコマンドが処理完了後にスプールファイルを削除しなければならない。 さもなければ、古いスプールファイルを手動で削除する必要がある。
print command は、単純なテキスト文字列である。 これは、以下のマクロが置換される他はそのまま利用される。
%s, %f - スプールファイル名へのパス
%p - プリンタ名
%J - the job クライアントから送信されたジョブ名
%c - スプールされたジョブのうち、 すでに印刷されたページ数(検知可能な場合)
%z - スプールされた印刷ジョブのサイズ (バイト)
print command には、最低限 %s
もしくは %f
の記述が必要である。
%p
については必須ではない。
ジョブの実行時にプリンタ名が指定されていない場合、
%p
は単に print command から無視される。
[global] セクション中で指定された print command は、 独自の print command が設定されていない各印刷サービスに適用される。
印刷サービスに print command の定義がなく、 グローバルな print command の定義もない場合、 スプールファイルは作成されるが処理されず、(これが最も重要だが)削除されない。
UNIX プラットフォームによっては
nobody
アカウントを用いた印刷が失敗する場合があるので注意して欲しい。
この場合、印刷の実行が可能な別のゲストアカウントを作成し、
[global] セクション中の guest account に設定すること。
シェルで解析できる限りの非常に複雑な 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 = SYSV, HPUXの場合:
print command = lp -c -d%p %s; rm %s
printing = SOFTQの場合:
print command = lp -d%p -s %s; rm %s
printing = CUPS の場合: Samba が libcups を利用してコンパイルされた場合、 printcap = cups は、ジョブの送信などに CUPS API を利用する。 それ以外の場合は、lp -c -d%p -oraw; rm %s のように、 System V 系の印刷用コマンドに -oraw オプションをつけたものに対応づけられる。 Samba が libcups を利用してコンパイルされ、 printing = cups の設定が行なわれた場合、 手動で設定された print コマンドは無視される。
デフォルト値なし
設定例: print command
= /usr/local/samba/bin/myprintscript %p %s
このパラメータには、 MS-RPC(通常Windows NT Workstationによって使用される)による、 遠隔からのプリンタ管理インタフェース経由でプリンタに対するすべての操作を行なう権限をもつユーザのリストを設定する。 このパラメータは共有単位に指定することも Samba 全体に対して指定することも可能である。 root は常にこの権限をもつことに注意。 このパラメータを Samba 全体に対して設定した場合、思わぬ副作用を招く可能性があるので、注意すること。
このパラメータは SePrintOperatorPrivilege ユーザ権利とプリンタのア クセス許可により、廃止予定のパラメータとなっている。 将来のリリースでは廃止されるだろう。
デフォルト値: printer admin
=
設定例: printer admin
= admin, @staff
このパラメータは、printer nameの別名である。
このパラメータは、印刷サービスに対して印刷ジョブが送られた際に、 それをスプールするプリンタ名を設定する。
[global] セクションで設定された場合、 そのプリンタ名は、独自のプリンタ名が指定されていないすべての 印刷サービスで利用される。
printer name のデフォルト値は 、
大半のシステムで lp
である。
デフォルト値: printer name
= なし
設定例: printer name
= laserwriter
このパラメータは、プリンタの状態に関する情報をどのように解釈するかを設定する。
更に、[global] セクションで指定された場合は、
print command
、
lpq command
、lppause command
、lpresume command
、
lprm command
のデフォルト値にも影響する。
現在、
BSD
、AIX
、
LPRNG
、PLP
、
SYSV
、HPUX
、
QNX
、SOFTQ
、
CUPS
の9つの印刷形式がサポートされている。
このオプションを設定した際に、 関連する印刷コマンドのデフォルトがどのように設定されるかを確認する際は、 testparm(1) プログラムを使用すること。
このオプションはプリンタ毎に設定することが可能である。
各種の印刷に関するコマンド (print command や lpq command など) で
デフォルトの設定を上書きさせる場合は、
printing
パラメータの設定後に指定する必要があることに注意。
[printers] セクションでの説明も参照のこと。
デフォルト値なし
このパラメータは、 smbd が
smbpasswd
や secrets.tdb
といったファイルを格納するために使用するディレクトリを指定する。
デフォルト値: private dir
= ${prefix}/private
この真偽値パラメータは、Windows 2000 もしくは Windows XP 用のユーザプロファイルを Samba サーバ上の共有に格納する際に発生する問題に対処するため作成された。 Windows 2000 や Windows XP の新しいサービスパック(訳注: 各々 SP4 と SP1) では、セキュリティの ACL チェックが行なわれるようになり、ローカルのワークステーション上に格納されているプロファイルのコピーを Samba 上の共有にコピーする際に、プロファイルのディレクトリの所有者と書き込み権をチェックするようになった。
winbindd を用いたドメインモードで運用していない場合、ローカルワークステーション上に複製された、ワークステーションにログオン中ユーザのセキュリティ情報 (SID) は無意味なため、結果としてプロファイルの格納に失敗する。 このパラメータをプロファイルの格納に使用する共有で有効にすることにより、クライアントに返却される Windows の ACL について、以下の 2 点が変更となる。 まず、すべてのファイルおよびディレクトリの所有者とグループの所有者が、各々 BUILTIN\Administrators および BUILTIN\Users となる (SID は各々 S-1-5-32-544 と S-1-5-32-545)。 次に、返却されるすべての ACL に対して BUILTIN\Users にフルコントロールの ACE が付加される。 これにより、Windows 2000 および Windows XP のワークステーションのユーザがプロファイルにアクセスできるようになる。
ワークステーションに複数のユーザがログオンする環境の場合、別ユーザのプロファイルへのアクセスを禁止するためには、「捜査チェックのバイパス」権利を削除する必要がある。 プロファイルディレクトリのトップ(ユーザ名を含む名称となっている)がワークステーション上で作成される際、所有するユーザ以外のアクセスを禁止するような ACL が設定されるため、この設定により、別のユーザのプロファイルディレクトリへのアクセスを禁止することができる。
デフォルト値: profile acls
= no
このパラメータは、印刷キューを一時停止させるために、 サーバ上で実行するコマンドを指定する。
このコマンドは、引数としてプリンタ名をとり、 印刷キューにある印刷ジョブの送信を停止させるために印刷キューを停止させる機能を持つ プログラムまたはスクリプトである必要がある。
Windows 95 や Windows NTでは、 「プリンタ」ウインドウからこのコマンドを発行することができるが、 Windows for Workgroups ではこのコマンドがサポートされていない。
コマンド中に %p
が指定された場合は、プリンタ名がそこに引数として置かれる。
それ以外の場合、プリンタ名はコマンド文字列の最後におかれる。
サーバ上で PATH 環境変数が設定されていない場合を想定して、 コマンドをフルパスで記述することが推奨される。
デフォルト値なし
設定例: queuepause command
= disable %p
このパラメータは、印刷キューを再開させるために、 サーバ上で実行するコマンドを指定する。 これは、前述したパラメータ (queuepause command) によって一時停止された動作を再開させるコマンドになる。
このコマンドは、引数としてプリンタ名をとり、 印刷キューにある印刷ジョブを再度プリンタへ送信させるために印刷キューを再開する機能を持つ プログラムまたはスクリプトである必要がある。
Windows 95 や Windows NTでは、 「プリンタ」ウインドウからこのコマンドを発行することができるが、 Windows for Workgroups ではこのコマンドがサポートされていない。
コマンド中に %p
が指定された場合は、プリンタ名がそこに引数として置かれる。
それ以外の場合、プリンタ名はコマンド文字列の最後におかれる。
サーバ上で PATH 環境変数が設定されていない場合を想定して、 コマンドをフルパスで記述することが推奨される。
デフォルト値: queueresume command
=
設定例: queueresume command
= enable %p
この真偽値パラメータは、 smbd
(8) に
「Read Block Multiplex」 SMB をサポートさせるかどうかを制御する。
これは、まず使われることがないため、デフォルトは no
になっている。
このパラメータを設定する必要はまずないであろう。
デフォルト値: read bmpx
= no
これは、サービスに対して読み取りアクセス許可のみを与えられたユーザのリストである。 接続したユーザがこのリスト中に存在する場合、 read only パラメータの値がどのように設定されていても、 書き込みアクセス許可は与えられない。 リストには invalid users パラメータの説明で記述した形式を使って、グループ名を含めることも可能である。
Samba 3.0 系列において、このパラメータは security = share の環境で動作しない。これは仕様である。
デフォルト値: read list
=
設定例: read list
= mary, @students
このパラメータが yes
の場合、
ユーザは、サービスのディレクトリ内におけるファイルの作成も修正もできない。
印刷サービス(printable = yes)の場合、 ユーザは常に(アクセス権を持っている) ディレクトリに対して書き込むことが可能であるが、書き込みはスプール操作経由に限られる。
デフォルト値: read only
= yes
このパラメータは、データをクライアントに転送する際に、 サーバ側で raw read SMB リクエストをサポートするかどうかを設定する。
有効な場合、 raw read SMB により、1パケットあたり 65535 バイトの読み込みが可能となる。 これは性能の向上に大きく貢献する。
ただし、クライアントによっては、ブロックサイズを誤認識したり、 大きなブロックサイズを利用できなかったりするので、その場合は、 raw read を無効にする必要があるだろう。
このパラメータは、システムのチューニングパラメータであり、 通常は設定を変更すべきものではない。
デフォルト値: read raw
= yes
このオプションは、使用する Kerberos レルムを指定する。 レルムは Windows NT 4.0 におけるドメインに相当する Active Directory の概念である。 レルムには、通常 Kerberos サーバの DNS 名が設定される。
デフォルト値: realm
=
設定例: realm
= mysambabox.mycompany.com
このオプションにより、 nmbd(8) は、指定したIPアドレスに対して設定したワークグループ情報を定期的にアナウンスするようになる。
これは、Samba サーバを通常のブラウズリストの交換ができない別のワークグループ上に表示させたい場合に有用である。 別のワークグループは、IP パケットを送信できるところであればどこにあってもよい。
以下に例を示す:
remote announce = 192.168.2.255/SERVERS 192.168.4.255/STAFF
上記の設定は、nmbd が指定された2つのアドレスに対して、 指定されたワークグループ名を使って自身のアナウンスを行なう設定である。 ワークグループ名を指定しなかった場合、 workgroup パラメータで指定された値が代わりに利用される。
設定するIPアドレスとしては、 通常リモートネットワークのブロードキャストが用いられるが、 ネットワークが安定していれば、マスタブラウザのIPアドレスを指定することもできる。
Samba HOWTO の Network Browsing 章を参照のこと。
デフォルト値: remote announce
=
このオプションにより、 nmbd(8) が、 別セグメントにある Samba サーバのマスタブラウザと定期的にブラウズリストの同期要求を行なうように構成される。 このオプションにより、 ルーティングされたネットワーク上に存在する複数ワークグループからなるブラウズリストを構築することが可能になる。 これは Samba 固有の方式で動作するため、 Samba 以外のサーバでは機能しない。
これは、Samba サーバおよび同じセグメント上のクライアントマシンを、 通常のブラウズリストの交換ができない別のワークグループ上に表示させたい場合に有用である。 別のワークグループは、IP パケットを送信できるところであればどこにあってもよい。
以下に例を示す:
remote browse sync = 192.168.2.255 192.168.4.255
上記の設定は、nmbdが指定されたサブネットのマスタブラウザに対して、 ローカルサーバとのブラウズリストの同期を要求する設定である。
設定するIPアドレスとしては、 通常リモートネットワークのブロードキャストが用いられるが、 ネットワークが安定していればマスタブラウザのIPアドレスを指定することもできる。 IPアドレスが設定された場合、Sambaはそのマシンが起動していて、 要求を待っているかについても、そのセグメントのマスタブラウザであるかどうかについても確認しない。
remote browse sync は、 WINS サーバが存在しない場合も、 ネットワーク毎に異なる WINS サーバを指定している場合にも用いることができる。
デフォルト値: remote browse sync
=
このパラメータは、以下に記述する特別な条件下において、 smbd(8) によって ROOT 権限で 実行されるスクリプトのフルパス名である。
管理者権限もしくは SeAddUserPrivilege ユーザ権利を保持しているユーザは、(NT4 のドメイン ユーザー マネージャなどから)このスクリプトを実行して、POSIX ユーザの名前を変更することが可能となる。
%uold
および %unew
という 2 つの変数が利用可能で、各々古いユーザ名と新しいユーザ名とに置換される。
このスクリプトは成功時に 0 を返却し、それ以外の特に 0 以外の値を返却する必要がある。
このスクリプトは POSIX 機構でアクセスが行なわれるすべての情報について名前を変更する必要があるが、パスワード機構により必要とされる変更箇所が異なる。 tdbsam と smbpasswd の場合、各ファイル中の情報についての変更は自動的に行なわれるため、スクリプト側では POSIX のユーザ名とホームディレクトリなどの環境依存で必要とされるデータの変更だけを行なえば良い。 ホームディレクトリの名前自体を変更する必要があるかも検討すべきだろう。 ldapsam の場合、LDAP のネーミング属性(LDAP naming attribute)を変更することには潜在的な問題があるため、LDAP 中の情報については全く変更が行なわれない。 この場合、スクリプト側で責任を持って Samba がユーザの識別に用いる属性(UID)および同じディレクトリを利用する他のアプリケーションが参照する情報の変更を行なう必要がある。
デフォルト値: rename user script
= no
この真偽値オプションは、到着したセッションセットアップが、 同一の IP アドレスからの別のセッションを切断するかを制御する。 これは Windows Server 2003 のデフォルトの挙動である。 ネットワークが不安定で、 Windows が、古い接続がファイルを共有モードでオープンしているにも関わらず、再接続を試行してしまうような環境では、このパラメータを yes にする必要があるだろう。 これらのファイルは、新しい接続経由ではアクセスできなくなるが、 クライアントが新しい接続中で 0 VC を送信すると、Windows Server 2003 は同一の IP が送信元のすべての他の接続を切断する。 これにより、ロックされたファイルが再度アクセスできるようになる。 このオプションを有効にすると、ルータで同一 IP アドレスに隠蔽されている接続も切断されてしまうことに注意。
デフォルト値: reset on zero vc
= no
このパラメータは、ユーザやグループの一覧情報を匿名接続に対して返却するかどうかを制御するものである。 このパラメータは Windows NT や Windows 2000 の
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA\RestrictAnonymous
レジストリキーに相当するものである。 0 に設定された場合、ユーザやグループの一覧情報は誰に対しても返却される。 1 に設定された場合、認証済のユーザのみがユーザやグループの一覧情報を取得できる。 2 に設定された場合、匿名接続は一切拒否される。なおこの値は Windows 2000/XP や Samba でのみサポートされる。 これは匿名接続での操作が実行される前提のサードパーティおよび Microsoft のアプリケーションで問題を引き起こすことがある。
restrict anonymous = 1 を用いることによるセキュリティ上の利点があるかどうかは疑わしい。これはユーザやグループの一覧情報を別の方法を用いて取得することが可能であるためである。
restrict anonymous = 2 を用いることによるセキュリティ上の利点は、いずれかの共有において guest ok = yes の設定を行なうことで損なわれてしまうことに注意。
デフォルト値: restrict anonymous
= 0
このパラメータは、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などの)ファイルシステムをアンマウントするのに便利である。
デフォルト値: root postexec
=
このパラメータは、
コマンドが root で実行されることを除き、
preexec
パラメータと同一である。
このコマンドは、コネクションの開始時に(CD-ROMなどの)ファイルシステムをマウントするのに便利である。
デフォルト値: root preexec
=
このパラメータは、
コマンドが root で実行されることを除き、
preexec close
パラメータと同一である。
デフォルト値: root preexec close
= no
このオプションは、
クライアントがどのように Samba に応答するかを決めるものであり、
smb.conf
中でもっとも重要な設定の 1 つである。
このオプションは、 smbd(8) とのプロトコルネゴシエーション時の応答に含まれる、 「security mode bit」を設定し、共有レベルのセキュリティを使用するか否かを制御する。 クライアントは、この bit を元にして、ユーザとパスワードの情報をサーバに転送するかどうか、 また転送する際の方法を決定する。
デフォルトは、security = user であり、 これは Windows 98 と Windows NT との間で通信を行なうときに必要とされるもっとも一般的な設定(訳注: ユーザレベルのセキュリティ)である。
その他 security = share、 security = server、 security = domain が設定可能な値である。
2.0.0 以前のバージョンの Samba では、 主に過去との互換性を保つ目的で、 security = share がデフォルトであった。
Windows for Workgroups(WfWg) には、 このオプションの設定時に注意すべきバグがある。 このパラメータが user もしくは server の場合、 WfWg クライアントは、「connect drive」ダイアログボックスで入力したパスワードを完全に無視してしまう。 そのため、WfWg にログオンしたユーザ以外のユーザで、 Samba の サービスに接続することが(不可能でない場合でも)非常に難しくなっている。
PC上で UNIX マシン上と同じユーザ名を使う場合は、 security = user を用いるとよいだろう。 UNIX マシン上にないユーザ名を使っている場合は、 security = share を使う必要がある。
パスワードなしの共有(ゲスト共有)の作成が主目的である場合も、 security = share を使った方がよいであろう。 この設定は、通常共有プリンタサーバで使われることが多い。 security = user の設定で、 ゲスト共有を作成するのは、多少複雑になる。 詳細については、map to guest パラメータを参照のこと。
NetBIOS aliases を用いることで、 ユーザレベルと共有レベルのセキュリティの両方を提供する 混在モード(hybrid mode) で smbdを運用することも可能である。
以下、それ以外の設定について説明する。
共有レベルのセキュリティに構成されたサーバに接続するクライアントは、 共有リソースに接続しようとする際に、 適切なユーザ名とパスワードでサーバにログオンしておく必要がない (最近の Windows 95/98 や Windows NT は、 security=share のサーバと通信をする際にユーザ名を設定してログオン要求を送るが、パスワードは送らない)。 そのかわり、クライアントは、共有への接続時に共有毎に認証情報(パスワード)を送信する。
security=share レベルのセキュリティで構成されていた場合であっても、 smbd がクライアントからの要求を処理する際には常に UNIX 上のいずれかのユーザの権限で処理が行なわれる点に注意。
共有レベルのセキュリティでは、 クライアントがユーザ名をサーバに送るように要求されないため、 smbd は、いくつかの方法を用いて、 クライアントの要求を処理する際に利用する UNIX 上のユーザを決定する。
クライアントから送られてきたパスワードの確認対象となる UNIX 側のユーザのリストは、以下のようにして生成される:
guest only パラメータが設定されている場合、 以下の手順は省略され、 guest account に設定されたユーザ名のみが確認対象となる。
共有への接続時にユーザ名も送られてきた場合、 そのユーザ名(変換後のもの - username map を参照のこと) が確認対象のユーザ名に追加される。
クライアントが以前に ログオン 要求 (SessionSetup SMB 呼び出し) を行なっていた場合、 その SMB 呼び出し中で送られたユーザ名が確認対象のユーザ名に追加される。
クライアントが接続しようとしているサービスの名前が、 確認対象のユーザ名に追加される。
クライアントの NetBIOS 名が、 確認対象のユーザ名に追加される。
guest only
パラメータが設定されていないと、
このリスト中のユーザ名を用いて、送信されたパスワードの確認が行なわれる。
送信されたパスワードが最初に一致したユーザが、
以降の処理に用いられる UNIX 上のユーザとして利用される。
guest only
パラメータが設定されているか、
利用するユーザを決定できなかった場合、
共有で guest account
が利用可能であれば、ゲストアクセスが行なわれ、
それ以外の場合はアクセスが拒否されることになる。
共有レベルのセキュリティでは、 どの UNIX 上のユーザを用いてアクセス権のチェックが行なわれるかの判断が、 非常に 複雑になる事態が想定されることに注意。
ユーザ名とパスワード認証についての注意 のセクションも参照のこと。
これは、Samba 3.0 におけるデフォルトのセキュリティ設定である。 ユーザレベルのセキュリティにおいては、クライアントは最初に正しいユーザ名とパスワード (username map パラメータを使ってマッピングしたものでもよい)で「ログオン」を行なう必要がある。 このセキュリティレベルでは、暗号化パスワード( encrypted passwords パラメータを参照のこと) も使うことができる。 user や guest only のようなパラメータを利用して、この接続で利用する UNIX 上のユーザを変更することもできるが、 これはユーザ認証に成功した後で、行なわれる。
注意 : 要求されたリソース名は、 サーバがクライアントの認証に成功するまでサーバに送られない。 そのため、ユーザレベルのセキュリティでは、 サーバ上で不明なユーザを自動的に guest account として処理するようにしない限り、ゲスト共有がうまく動作しない。 上記処理の詳細については、 map to guest パラメータを参照のこと。
ユーザ名とパスワード認証についての注意 のセクションも参照のこと。
このモードは、 net(8) コマンドで、
マシンを Windows NT ドメインに参加させている時のみ正しく動作する。
このモードでは、encrypted passwords
パラメータを yes
にすることが求められる。このモードでは、
Samba は認証要求を Windows NT のプライマリ、もしくはバックアップドメインコントローラに対して、
Windows NT Server と全く同様の方法で依頼する。
注意: ファイルアクセスを行なう際に、 Samba は UNIX 上のアカウントを用いる必要があるため、 ドメインコントローラ上のアカウントだけでなく、 UNIX 上のアカウントも依然として存在する必要がある。
注意: クライアントからは、 security=domain と security=user とは同一である。 このパラメータは、サーバがどのように認証を行なうかにのみ影響し、 クライアントとのやりとりには何ら影響しない。
注意 : 要求されたリソース名は、 サーバがクライアントの認証に成功するまでサーバに送られない。 サーバ上で不明なユーザを自動的に guest account として処理するようにしない限り、ゲスト共有がうまく動作しない。 上記処理の詳細については、 map to guest パラメータを参照のこと。
ユーザ名とパスワード認証についての注意 のセクションも参照のこと。
password
server
パラメータおよび
encrypted passwords
パラメータも参照のこと。
このモードの場合、 Samba はまず NT マシンのような別の
SMB サーバにユーザ名とパスワードの認証を依頼する。
これに失敗すると、security = user
と同様に処理を行なう。このモードを用いる場合は、リモートサーバが対応していない場合を除き、
encrypted
passwords
パラメータを yes
にする必要がある。
なお、暗号化パスワードで認証処理が行なわれると、
Samba 上で UNIX パスワードファイルでの認証(平文認証)に戻れなくなるため、
ユーザの認証は smbpasswd
ファイルで行なう必要がある。
設定方法の詳細は、 Samba HOWTO collection 中の User Database の章を参照のこと。
このモードの処理には、中間介入攻撃(man-in-the-middle attack) やサーバの偽装に脆弱であるという重大な落し穴がある。 また、ユーザのセッションが継続している間、アクティブなコネクションを維持しておく必要があるため、 PDC のリソースを非常に多く消費する恐れある。 さらに、このコネクションがいったん失われると、回復させることができず、それ以降 (個々のクライアントがコネクションを一度切断するまでの間) Samba サーバに対する認証は失敗してしまう。
クライアントからは、 security=server と security=user とは同一である。 このパラメータは、サーバがどのように認証を行なうかにのみ影響し、 クライアントとのやりとりには何ら影響しない。
注意 : 要求されたリソース名は、 サーバがクライアントの認証に成功するまでサーバに送られない。 そのため、ユーザレベルのセキュリティでは、サーバ上で不明なユーザを自動的に guest account. として処理するようにしない限り、ゲスト共有がうまく動作しない。 上記処理の詳細については、 map to guest パラメータを参照のこと。
ユーザ名とパスワード認証についての注意 のセクションも参照のこと。
password server パラメータおよび encrypted passwords パラメータも参照のこと。
このモードの場合、Samba は ADS レルムのドメインメンバーとして振舞う。 このモードで動作させるためには、Samba が実行されているマシンに Kerberos がインストールされて構成されていることが必要であり、Samba は net ユーティリティを使用して ADS レルムに参加する必要がある。
このモードは Samba を Active Ditectory のドメインコントローラとして動作させるものではないことに注意。
詳細については、HOWTO の Domain Membership の章を熟読のこと。
デフォルト値: security
= USER
設定例: security
= DOMAIN
このパラメータは、 Windows NT クライアント上から、 NT 上のセキュリティダイアログボックスを使って UNIX ファイルのパーミッションを操作するときに、 どのパーミッションビットを変更可能にするかを制御する。
このパラメータは、 変更されるパーミッションのビットに対する論理積(AND)操作を行なうマスクとして機能するため、 マスク中に含まれないビットに対する変更操作が制限される。 このパラメータを、論理積(AND)操作ではなく論理和(OR)操作を行なう類似パラメータである force security mode パラメータと混同しないこと。
基本的に、マスク中で 0 と指定されたビットは、ユーザが変更できないビットとなる。
明示的に設定されていない場合、このパラメータの値は 0777 になる。これは、 ファイルの user/group/world パーミッションのすべてについて、 ユーザからの変更を許可する。
Samba を経由せずサーバにアクセスできるユーザは、
簡単にこの制限を回避できるため、
このパラメータが有用なのは、単体の「アプライアンス」システムに対してである。
ほとんどの一般的なシステムの管理者は、
おそらく 0777
に設定することであろう。
デフォルト値: security mask
= 0777
設定例: security mask
= 0770
このパラメータは、サーバが netlogon のセキュアチャネルを提供するかどうかを制御する。 server schannel = no の場合、セキュアチャネルは提供されない。 server schannel = auto の場合セキュアチャネルが提供されるが強制はされない。 server schannel = yes の場合、クライアントが netlogon のセキュアチャネルを認識できない場合は接続が拒否される。 これに該当するのは Windows NT 4.0 SP4 以前のみである。
このパラメータを no
に設定した場合、
Windows XP マシンには Samba アーカイブの docs/Registry サブディレクトリ中にある
WinXP_SignOrSeal.reg
ファイルを適用してレジストリを修正する必要があることに注意。
デフォルト値: server schannel
= auto
設定例: server schannel
= yes
このパラメータは、Samba が通信先のクライアントに対して SMB 署名の使用を有効にするか、もしくは要求するかを設定する。 設定可能な値は、auto、mandatory、disabled である。
auto に設定した場合、SMB 署名が有効になるが、強制はしない。 mandatory に設定すると、SMB 署名が必須となる。disable に設定すると、SMB 署名は有効にならない。
デフォルト値: server signing
= Disabled
このパラメータにより、プリンタマネージャにおける各プリンタのコメント欄および 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
NT の POSIX サブシステムのおかげで、 Windows ユーザには、
auxiliary (補助)グループに加えて、
プライマリグループを設定することができる。
このスクリプトにより、管理者が
Windows のユーザマネージャからプライマリグループを設定したり、
net rpc vampire により SAM を取得したりした際に、
UNIX のユーザデータベースのプライマリグループが設定される。
%u
は、プライマリグループを設定するユーザに置き換えられる。
%g
は設定されるグループ名に置き換えられる。
デフォルト値: set primary group script
=
設定例: set primary group script
= /usr/sbin/usermod -g '%g' '%u'
set quota command は Samba が実行されている OS 上で、API が提供されていない場合に限り使用すべきである。
このオプションは、必ず ./configure --with-sys-quotas が指定されているときのみ有効である。 もしくは Linux において ./configure --with-quotas が指定され、システムにクオータの API が存在し、機能する場合にのみ使用できる。 ほとんどのパッケージでは、これらのオプションを指定して構成されている。
このパラメータは、引数を指定することで、クオータの設定を行なうスクリプトへのパスを指定する。
このスクリプトは以下の引数をとる:
1 - クオータのタイプ
1 - ユーザのクオータ
2 - ユーザのデフォルトのクオータ (uid = -1)
3 - グループのクオータ
4 - グループのデフォルトのクオータ (gid = -1)
2 - id (ユーザの uid もしくはグループの gid 。 -1 を指定した場合はどちらともみなされない)
3 - クオータの状態 (0 = 無効, 1 = 有効, 2 = 有効かつ強制)
4 - ブロック数のソフトウェア的な上限
5 - ブロック数のハードウェア的な上限
6 - inode 数のソフトウェア的な上限
7 - inode 数のハードウェア的な上限
8(オプション) - ブロックサイズ、デフォルトは 1024
このスクリプトは少なくとも1行のデータ行を出力する必要がある。ただし処理が成功しなかった場合は何も出力されない。
デフォルト値: set quota command
=
設定例: set quota command
= /usr/local/sbin/set_quota
このパラメータは、ファイルオープン中の share modes
の制御を有効にするかどうかを設定する。
このモードは、ファイルへの排他的な読み出し又は書き込みアクセスを得るために、クライアントによって利用されるものである。
これらのモードは、UNIX では提供されていないため、 共有メモリ、共有メモリをサポートしていない場合はロックファイル(共有メモリはほとんどすべてのUNIXでサポートされている)で疑似的に実現されている。
このオプションで有効化される共有モードは
DENY_DOS
、DENY_ALL
,
DENY_READ
、DENY_WRITE
,
DENY_NONE
、DENY_FCB
である。
このオプションは共有機能の互換性を保つため、 デフォルトで有効になっている。
このパラメータは、 絶対に off にしてはならない。 off にした場合、多くの Windows アプリケーションが誤動作するであろう。
デフォルト値: share modes
= yes
この真偽値パラメータは、 すべて大文字で適切な長さという 8.3 形式の条件を満たすファイル名を大文字のファイル名にして作成するか、 default case パラメータにしたがった文字の大きさで作成するかを指定する(訳注: 実際は、8+3 形式の名前において大文字小文字の混在を容認するか、規定値の文字の大きさに統一するかを制御する)。 このオプションは、 preserve case = yes を用いて長いファイル名の大文字小文字の情報を保持している際に、 短いファイル名における大文字小文字の情報を保持するために利用する。
NAME MANGLINGセクションも参照のこと。
デフォルト値: short preserve case
= yes
Samba 2.2 での Windows NT/2000 クライアントに対する MS-RPC ベースのプリンタサポート機能のサポートによって、 Samba ホスト上の共有一覧で「プリンタ」フォルダが表示されようになっている。 通常、このフォルダにはプリンタの追加ウィザード (MS Add Printer Wizard (APW))のアイコンが存在している。 しかし、接続したユーザの権限に関わらず、 この機能を無効にすることも可能である。
通常の場合、Windows NT/2000 クライアントは
Administrator 権限を持っているかどうかを確認するために、
OpenPrinterEx() 関数により、プリンタサーバ上のハンドルをオープンしようとする。
ユーザにプリンタサーバ上での管理者権限がない場合
(root でなく、printer admin
グループのメンバでもない)、
OpenPrinterEx() の呼出は失敗して、 client は低い権限でも可能な別の関数呼出を行なう。
これに成功しても、APW のアイコンは表示されない。
show add printer wizard
パラメータを無効にすることにより、サーバ上での
OpenPrinterEx() 呼出が常に失敗するようになる。
そのため、APW のアイコンは決して表示されなくなる。
このパラメータは、ユーザが個々のプリンタの管理権限を持つことを制限するものではない。
デフォルト値: show add printer wizard
= yes
このパラメータは、 smbd(8) が呼び出すことで、 シャットダウン処理を実行するスクリプトのフルパス名である。
サーバに接続しているユーザが SeRemoteShutdownPrivilege
権利を有している場合、
このコマンドはそのユーザの権限で実行される。
%m %t %r %f パラメータは以下のように展開される:
%m
はサーバに送信されるシャットダウンメッセージに置換される。
%t
は実際にシャットダウン処理が開始されるまでに待機する時間(秒単位)に置換される。
%r
は -r スイッチに置換される。これは NT の「シャットダウン後再起動」を意味する。
%f
は -f スイッチに置換される。これは NT の「アプリケーションが応答しない場合でも強制的にシャットダウンする」を意味する。
シャットダウンスクリプト例を以下に示す:
#!/bin/bash $time=0 let "time/60" let "time++" /sbin/shutdown $3 $4 +$time $1 &
シャットダウン処理から復帰することはないので、この処理はバックグラウンドで実行する必要がある。
デフォルト値: shutdown script
=
設定例: shutdown script
= /usr/local/samba/sbin/shutdown %m %t %r %f
このオプションにより、暗号化された smbpasswd ファイルへのパスが設定される。 デフォルトの smbpasswd ファイルへのパスは、 Samba のコンパイル時に設定される。
以下に設定例を示す:
smb passwd file = /etc/samba/smbpasswd
デフォルト値: smb passwd file
= ${prefix}/private/smbpasswd
サーバが SMB トラヒックを町受けるポートを設定する。
デフォルト値: smb ports
= 445 139
このオプションは、 Samba がどのアドレスで接続を listen するかを設定する。 これは、サーバ上で複数の仮想インタフェースを用いる必要があり、 各々のインタフェース上で 異なる構成の Samba を動作させる際に利用できる。
デフォルトの場合、 Sambaはどのアドレスからのアクセスでも受け付ける。
デフォルト値: socket address
=
設定例: socket address
= 192.168.2.20
このオプションは、クライアントとの通信に利用されるソケットオプションを設定する。
ソケットオプションは、 OS のネットワーク層の接続に影響し、通信の最適化に利用されるものである。
このオプションは、各ネットワークにおける Samba サーバの性能の最適化に用いられることが多い。 Samba 自身がネットワークにおける最適のパラメータを知るすべはないので、このオプションは、自分自身で実験して設定しなければならない。設定を行なう前に、使用している OS の適切なドキュメント (恐らく man setsockopt が役立つだろう) を読むことを強く推奨する。
システムによっては、このオプションを設定すると、 Samba が「Unknown socket option」というメッセージを返却するようになるかもしれない。この原因は、ミスタイプか、 includes.h に使用している OS の include ファイルを追加する必要があるかのいずれかであろう。後者の場合は、 samba-technical@samba.org までパッチを送ってほしい。
サポートされているソケットオプションについては、 OS の制約がない限り、どれでもどのような組合せでも用いることができる。
以下に現在このオプションで設定可能なソケットオプションの一覧を示す:
SO_KEEPALIVE
SO_REUSEADDR
SO_BROADCAST
TCP_NODELAY
IPTOS_LOWDELAY
IPTOS_THROUGHPUT
SO_SNDBUF *
SO_RCVBUF *
SO_SNDLOWAT *
SO_RCVLOWAT *
'*' 印のあるオプションは、整数の引数を必要とする。それ以外のものは、 1 または 0 の引数で有効、無効を指定することもできるが、 1 または 0 を指定しない場合は、有効に設定される。
引数を指定する場合は、SO_SNDBUF = 8192 のように、 SOME_OPTION = VALUE という形式で指定する。 = 記号の前後に空白を入れてはいけない。
ローカルネットワーク以外を考慮しなくても良い場合、
socket options = IPTOS_LOWDELAY
と設定するのがよいであろう。
ローカルネットワークが存在する場合は以下の設定を試してみるとよいであろう:
socket options = IPTOS_LOWDELAY TCP_NODELAY
WAN の場合は、 IPTOS_THROUGHPUT を設定してみるとよいかも知れない。
これらのオプションの中には、 Samba サーバを完全に停止させるものもあるかもしれない。オプションを設定する際には気をつけること。
デフォルト値: socket options
= TCP_NODELAY
設定例: socket options
= IPTOS_LOWDELAY
このパラメータにより、 smbd(8) が、 大文字小文字を区別しない名前のマップ操作を高速化するためにキャッシュを利用するかどうかが設定される。 このパラメータを変更する必要はないであろう。
デフォルト値: stat cache
= yes
このパラメータが設定されると、Samba は DOS のファイル属性(システム、隠し、アーカイブ、読み取り専用)を、 (map hidden や map readonly パラメータにより制御される) UNIX のパーミッションビットからのマッピングを行なう前に、 ファイルシステムの拡張属性から読み取ろうとする。 このパラメータが設定されると、DOS のファイル属性は、UNIX ファイルシステム上で、各ファイルやディレクトリ毎に割り当てられた拡張属性の領域に格納される。 これ以外のマッピング機構が動作しないようにするため、 map hidden、 map system、map archive、map readonly といったパラメータは無効にする必要がある。 このパラメータは DOS のファイル属性を「user.DOSATTRIB」という名前の拡張属性に、文字列として書き込む。 この拡張属性は、クライアントの拡張属性に関するリクエストからは明示的に隠蔽されている。 Linux において拡張属性を有効にするには、 Linux カーネルで拡張属性がコンパイルされており、 ファイルシステムが user_xattr オプションをつけてマウントされている必要がある。
デフォルト値: store dos attributes
= yes
この真偽値パラメータは、サーバ上のディスク領域の割当を制御するものである。
このパラメータが yes
の場合、
サーバは、ファイルが拡張されただけでは実際のディスク領域を割り当てない UNIX 流の動作をやめ、
ファイルがあるサイズで作成されたり、拡張されたりした際に、
実際にディスク領域を割り当てる Windows 流の動作を行なうようになる。
これは、Samba がスパースファイルを作成しなくなることを意味する。
これにより、システムによっては処理が遅くなる。
strict allocate が no
の場合、
サーバは、ファイルの拡張時にスパースファイルを作成する。
このパラメータを yes
にすると、
ディスククオータによるディスク領域の制限を行なっているシステムで、
クォータ超過メッセージを出力する際には便利である。
デフォルト値: strict allocate
= no
これは、
サーバ上でのロックの扱いを制御する列挙型の値のパラメータである。
yes
に設定された場合、
サーバはすべての読み書きのアクセスについてファイルのロック状態を検査し、
ロックされている場合はアクセスを拒否する。
システムによっては、アクセス速度の低下につながるだろう。
strict locking が Auto (デフォルト値)の場合、サーバは oplock が行なわれていないファイルについてのみ、ロック状態の検査を行なう。 Windows のリダイレクタの多くは、oplock が行なわれているファイルについてはファイルロックのチェックをローカルで実施しているため、 この設定は、パフォーマンス低下とのうまいトレードオフを実現している。
strict locking が無効の場合、 サーバは、クライアントが明示的に要求したときに限って、 ファイルのロック状態の確認を行なう。
行儀のよいクライアントは、 重要な操作を行ない際には必ずロックの状態を問い合わせる。 従って、大抵の場合は strict locking = Auto か strict locking = no がよい。
デフォルト値: strict locking
= Auto
(Windows 98 の Explorer を含む)多くの Windows アプリケーションは、
バッファのデータをフラッシュする処理を、ディスクに対し、同期を行う処理と取り違えているようである。
UNIX における同期処理は、カーネル内のディスクバッファに残っているデータが無事に記憶装置へ保存されたことをカーネルが確認するまで、プロセスを停止させる。
この処理は非常に遅く、頻繁に行うべきではない。
このパラメータを no
(デフォルト)に設定すると、
smbd(8)
は Windows アプリケーションからの同期処理要求を無視する。
この場合でも、データが失われる可能性があるのは、 Samba が動作しているオペレーティングシステム自身がクラッシュしたときだけであるので、この設定による危険度は少ない。
また、 Windows 98 の Explorer を使ったファイルコピーのパフォーマンス問題が報告されているが、こちらも改善される。
デフォルト値: strict sync
= no
このパラメータにより、smbd が Win32 の ServiceControl API 経由で UNIX 側のサービスを起動、停止させる際に用いられる起動スクリプトの一覧を定義する。 これにより、Windows の管理者が Microsoft Management Console プラグインを用いて Samba サーバ上が動作する UNIX サービスを制御することが可能となる。
管理者は、Samba の $(libdir) 以下に svcctl
というディレクトリを作成して、
/etc/init.d/
に存在する起動スクリプトのシンボリックリンクを作成しておく必要がある。
シンボリックリンク名は、 svcctl list
パラメータに記載した名称と同一にしておくこと。
デフォルト値: svcctl list
=
設定例: svcctl list
= cups postfix portmap httpd
この真偽値パラメータは、書き込み時に不摘発性のストレージへの書き込みとの同期を常に行なうかどうかを制御する。
no
の場合、
サーバは個々のクライアントからの書き込み要求に基づいて、同期を行なうかどうかを制御する
(クライアントは個々の書き込みについて、同期要求ビットを設定することが可能である)。
yes
の場合、
個々の書き込みに毎に、データを確実にディスクに書き込むため
fsync() が呼び出される。
このパラメータが機能するには、
strict sync
パラメータが
yes
に設定されている必要がある。
デフォルト値: sync always
= no
このパラメータは、 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
NT ドメインのユーザに対応するユーザ情報を作成する際、 winbindd(8) デーモンは、このパラメータによってユーザのホームディレクトリの位置を設定する。文字列中に %D
があれば、ユーザの所属する NT ドメイン名に置き換えられる。文字列中に %U
があれば、ユーザの NT ドメインにおけるユーザ名に置き換えられる。
デフォルト値: template homedir
= /home/%D/%U
NT ドメインのユーザに対応するユーザ情報を作成する際、 winbindd(8) デーモンは、このパラメータによってユーザのログインシェルを設定する。
デフォルト値なし
このパラメータは、GMT からローカル時間への変換時に追加する時間(分単位)を設定する。 夏時間処理に問題があるPCを多数管理している際に有効である。
デフォルト値: time offset
= 0
設定例: time offset
= 60
このパラメータにより、 nmbd(8) が、 Windows クライアントに対して、自身をタイムサーバとしてアナウンスするかどうかが制御される。
デフォルト値: time server
= no
Samba が動作する UNIX マシンで使われている文字コードを指定する。 この情報は、Samba が SMB クライアントの使用している文字コードと文字列の変換を行なうために必要である。
ここで設定した文字コードは、Samba から実行するスクリプトの引数にも用いられる。
デフォルト値: unix charset
= UTF8
設定例: unix charset
= ASCII
この真偽値パラメータは、Samba が HP 社によって定義された CIFS の UNIX拡張を利用するかどうかを制御する。 これらの拡張は、UNIX クライアントから UNIX サーバに対して接続する際に有用な CIFS を有効にし、 シンボリックリンクやハードリンクなどを利用可能にする。 これらの拡張により、Samba は UNIX の CIFS クライアントに対して、 シンボリックリンクやハードリンクといった機能を提供することが可能となる。
デフォルト値: unix extensions
= yes
この真偽値パラメータにより、 smbpasswd ファイルの暗号化された SMBパスワードの更新時に、
Samba が UNIX のパスワードを SMB パスワードと同期させるようになる。
これを yes
に設定した場合、
(SMB パスワードの変更コードは古い平文パスワードを参照できず、新しいパスワードだけが渡されるため、)
新しい UNIX パスワードを古いパスワードの情報なしで設定するため、
passwd program
パラメータで指定されたコマンドが
ROOT権限で呼び出される。
デフォルト値: unix password sync
= no
この真偽値パラメータにより、
平文パスワードでログインしたユーザのログオン時に、
そのユーザの暗号化(ハッシュ化)パスワードが自動的に smbpasswd ファイル中に格納されるようになる。
このオプションにより、暗号化パスワード認証を有効にする際、
ユーザに smbpasswd へのパスワード再入力を強制することなく、
平文パスワード認証
(平文パスワードによるユーザ認証情報がネットワーク上を流れて UNIX
側のアカウントデータベースで照会される)から暗号化パスワード認証
(SMB のチャレンジアンドレスポンス認証) への移行を行うことが可能になる。
これは便利なオプションで、
ある程度の時間をかけて徐々に暗号化パスワードへと移行することを可能にする。
すべてのユーザが smbpasswd ファイルに暗号化パスワードを格納したら、
このパラメータを no
に設定すべきだろう。
このパラメータは
encrypt passwords
が no
に設定されている時のみ動作する。
encrypt passwords = Yes がデフォルトであるため、
update encrypted を動作させるには
このパラメータを no
に設定する必要があることに注意。
このパラメータが有効になっている場合であっても、 smbd に接続するユーザは正しいパスワードを入力して、 (smbpasswdファイル中の)暗号化されたパスワードを更新する必要がある。
デフォルト値: update encrypted
= no
このパラメータは、Windows NT/2000 クライアントに対してのみ影響し、 Windows 95/98/Me クライアントに対しては影響しない。 Windows NT/2000 クライアントに対して、 Samba ホスト上に適切なプリンタドライバをインストールせずに、プリンタ共有を提供する場合、 クライアント側ローカルにプリンタドライバをインストールする必要がある。 このため、クライアントは、そのプリンタをローカルプリンタとして扱い、 ネットワークプリンタとしては扱わなくなる。 これは、disable spoolss = yesにしたときとほぼ同様の動作になる。
違いが発生するのは、通常の環境下において、 NT/2000 クライアントは MS-RPC を用いてネットワークプリンタをオープンしようとする点にある。 クライアントはプリンタがローカルにあると判断しているため、 ログオンしているユーザに割り当てられたアクセス権を要求して OpenPrinterEx() 呼出を発行してしまう点が問題となる。 ユーザがローカルで管理者権限を持っているが、Samba ホスト上では root 権限を持っていない場合(これはよくあるケースになる)、 OpenPrinterEx() 呼出は失敗する。 その結果、(印刷ジョブが正常に印刷されているにも関わらず、) クライアント側のプリンタキューのウインドウには、 「Access Denied; Unable to connect」というメッセージが表示される。
このパラメータが有効になっているプリンタに対しては、 PRINTER_ACCESS_ADMINISTER 権限によるプリンタのオープンの試みはすべて、 PRINTER_ACCESS_USE の権限で行なわれ、 これにより、OpenPrinterEx() が成功することになる。 適切なプリンタドライバがインストールされている Samba サーバ上のプリンタ共有に対して、このパラメータを有効にしてはならない。
デフォルト値: use client driver
= no
このパラメータは、Samba がシステムの keytab ファイル中にある、
host/FQDN
および cifs/FQDN
サービスプリンシパルの維持を行なうかどうかを制御する。
heimdal Kerberos ライブラリを利用している場合、
/etc/krb5.conf
に以下の記述も必要である:
[libdefaults] default_keytab_name = FILE:/etc/krb5.keytab
デフォルト値: use kerberos keytab
= False
このグローバルパラメータは、 Samba が内部的に利用する tdb の動作を、システムの mmap が正しく動作するかどうかに依存させるかどうかを制御する。
Samba は一貫性の保たれた mmap (read-write system memory cache) を必要とする。
現在、HPUX については、こうした一貫性のあるキャッシュが実装されていないため、 HPUX におけるこのパラメータのデフォルトは、no
になっている。
それ以外のシステムにおいては、このパラメータの値を変更すべきではない。
このパラメータは、Samba 開発者の tdb の内部コードの問題解析を支援するために提供されている。
デフォルト値: use mmap
= yes
このパラメータは、usernameの別名である。
このパラメータは、usernameの別名である。
このパラメータに複数のユーザをコンマで区切ったリストで指定することにより、 各ユーザ名に対して(左から右に)順番に入力したパスワードを用いた認証が行われる。
username
パラメータは、
PC 側からユーザ名が提供されない時にのみ必要である。
これに該当するのは、COREPLUS プロトコルを用いているか、
Windows for Workgroup において、ユーザ名が UNIX 側のユーザ名と異なっている場合である。
どちらの場合も、このパラメータの代わりに \\server\share%user の記法を用いるのが好ましい。
Sambaは username
パラメータで指定された各ユーザに対して、
提供されたパスワードを用いて順番に認証を行っていくことになるため、
username
は最適の解決策とはいえない。
これは遅い上、パスワードが重複しているユーザが多数存在しているような場合には困ったことになる。
このパラメータを不用意に使うと、
タイムアウトやセキュリティ上の問題などが発生するかも知れない。
Samba は、プラットフォームである UNIX のセキュリティ機構に依存している。 このパラメータは、ログインできるユーザを制限するものではなく、 提供されたパスワードを適用するユーザについての情報を Samba サーバに与えるものである。 ユーザは自分が好むユーザとしてログインすることが可能であるが、 telnet セッションよりは、被害を与えないだろう。 デーモンはログインしたユーザの権限で動作するため、 ユーザの権限で行えないことは何も行えない。
サービスへのアクセスを特定のユーザに制限したい場合は、 valid users パラメータを利用すること。
ユーザ名が '@' ではじまっている場合は、 (Samba がネットグループをサポートするようにコンパイルされている場合) まず NIS のネットグループ、更に UNIX のグループデータベースにおいて、 該当する名前のグループがないかが検索され、 その名前のグループに所属する全てのユーザ名に展開される。
ユーザ名が '+' から始まっている場合は、 UNIX のグループデータベースのみが検索され、 その名前のグループに所属する全てのユーザ名に展開される。
ユーザ名が '&' から始まっている場合は、 (Samba がネットグループをサポートするようにコンパイルされている場合) NIS のネットグループのみが検索され、 その名前のグループに所属する全てのユーザ名に展開される。
グループ名の検索には時間が掛かるため、 クライアントによっては検索がタイムアウトしてしまう場合があることに注意。
このパラメータにより、サービスへのアクセスがどのように行われるかの詳細については NOTE ABOUT ユーザ名とパスワード認証についての注意 のセクションを参照のこと。
デフォルト値: username
=
# ゲストサービスの時は、
guest account で設定されたアカウント、それ以外の時は <空文字列>
設定例: username
= fred, mary, jack, jane, @users, @pcgroup
このオプションは、 DOS クライアントの多くが送信する大文字化されたユーザ名から、 Samba が本当の UNIX のユーザ名を「推測」する際の手助けを行う。 デフォルトの場合、 Samba は全て小文字のユーザ名、 先頭の文字のみを大文字にしたユーザ名を順に試しても、 UNIX マシン上に該当するユーザ名がない場合は処理を失敗させる。
このパラメータに 0 以外の値を指定することで、この処理を変更できる。
このパラメータは、UNIX 側のユーザ名を確認する際に大文字が幾つ入ったユーザ名の組合せまで確認を行なうかを決定するものである。
大きい数字を指定する程、多くの組合せが確認されるため、
ユーザ名の確認作業は遅くなる。
このパラメータは、UNIX マシン上に
AstrangeUser
といった名前が存在する際に使用すること。
このパラメータは、ユーザ名の大文字、小文字が区別される UNIX システムでのみ必要である。
デフォルト値: username level
= 0
設定例: username level
= 5
このオプションにより、 クライアント上とサーバ上でのユーザ名のマッピング情報を格納したファイルが指定される。 これは幾つかの目的で利用される。 通常は DOS や Windows マシンでユーザが利用しているユーザ名を UNIX マシン上でのユーザ名にマッピングする為に用いられるが、 複数のユーザを特定のユーザ名にマッピングすることで、 ユーザ間でのファイル共有を簡単に行なえるようにするために用いることも可能である。
security パラメータが user もしくは share の場合、username map パラメータは ユーザの資格情報が検証されるたびに適用されることに注意。 ドメインのメンバサーバ(domain もしくは ads)の場合、ドメインコントローラから認証を受けた後で username map パラメータが適用され、マッピングの際には、完全ユーザ名(例えば biddle = DOMAIN\foo) で記述する必要がある。
ファイルは各行ごとに評価される。 各々の行は、左端に UNIX ユーザ名があり、'=' を挟んでその右側にユーザ名のリストが続く形式をとる。 右側のユーザ名のリストには、 グループ内のすべての UNIX ユーザ名に一致させる @group という形式を含めることもできる。 '*' はワイルドカードであり、任意の名前と一致する。 ファイルの各行は最大 1023 文字まで記述可能である。
ファイルの評価は、 提供されたユーザ名と '=' の右側の各ユーザ名とを各行毎に比較することにより行なわれる。 提供されたユーザ名が右側のどれかに一致すると、 提供されたユーザ名が一致したユーザ名に置き換わり、 引続き以降の行の処理が行なわれていくことになる。
'#' や ';' で始まる行は無視される。
'!' ではじまる行はがあると、 以降の行でユーザ名が一致した時点で比較処理は中止される。 それ以外の場合、この比較処理はすべての行に対して継続される。 ファイルの最後でワイルドカードによるマッピングを行なっている場合には、 '!' を使うとかなり便利である。
たとえば、admin
や
administrator
といった名前から UNIX の root
へのマッピングを行ないたい場合は、以下のように記述する:
root = admin administrator
また、UNIX の system
グループに所属するユーザを
sys
という UNIX ユーザに置き換えるには、以下のように記述する:
sys = @system
username map のファイル中には幾つのマッピングの設定を行なっても構わない。
システムが NIS の NETGROUP オプションをサポートしている場合、
グループ名の一致処理を行なう際には、 /etc/group
データベースより先にネットグループのデータベースが調べられる。
空白を含む Windows のユーザ名は、 ダブルクォートで両側を括って記述する。たとえば、
tridge = "Andrew Tridgell"
は、Windows のユーザ名 "Andrew Tridgell" を UNIX のユーザ名 "tridge" に置き換える。
以下の例は、 mary と fred を UNIX ユーザ sys に置き換え、 そのほかのユーザを guest に置き換える。 '!'を利用することで、一致した行以降の処理を抑止していることに注意。
!sys = mary fred guest = *
ユーザ名が現われる箇所全てに置き換えの結果が適用されることに注意。
例えば、\\server\fred に接続する場合、
fred
が mary
に置き換えられる場合は、
実際に接続する先は \\server\mary であり、パスワードも
fred
ではなく、mary
のものを入力することが必要になる。この唯一の例外は、(設定している場合に)
password server
に対してユーザ名を送出するときである。
password server は、
クライアントが提供したユーザ名を置換なしでそのまま受け取る。
逆のマッピングは行われないことにも注意。この影響が現われるのは印刷時である。 Windows for Workgroup におけるプリントマネージャは、 置き換えが行われたユーザが印刷ジョブを所有していないと判断するため、 印刷ジョブ削除時にトラブルが発生する。
Samba 3.0.8 より前のバージョンでは、Kerberos ログインが行なわれる場合にのみ、完全ユーザ名がサポートされており、 NTLM[SSP] によるユーザ認証の際には、ユーザ名部分のみがマッチングの対象となっていた。 このため、同一のサーバに対するアクセスで、結果が一致しないという事態が発生していた。
以下の機能は、Samba 3.0.8 以降のものである。
ローカル認証の場合、username map パラメータは、コネクションに対する認証が行なわれる際のユーザ名に対して適用される。
認証を外部のドメインコントローラに依存している場合、 smbd は username map パラメータを、ユーザ認証が成功した場合にのみ、認証された完全ユーザ名(例: DOMAIN\user) に対して適用する。
以下に設定例を示す:
username map = /usr/local/samba/lib/users.map
デフォルト値: username map
=
# no username map
このパラメータは username map パラメータと排他的な関係にある。 このパラメータは、(認証要求で渡されたユーザ名を示す)コマンドライン引数を1つだけとり、 標準出力に(マッピングされたアカウント名を示す)文字列を1行返却する 外部プログラム、もしくはスクリプトを指定する。 これにより、ユーザ名のマッピング表を LDAP や NIS などのディレクトリサービス上に格納することが可能となる。
デフォルト値: username map script
=
設定例: username map script
= /etc/samba/scripts/mapusers.sh
このパラメータは、ユーザ定義共有に認証されていないユーザのアクセスを許可するかどうかを制御する。
これは、ユーザが共有の定義において
guest ok = yes
オプションを付与した共有を作成することの許可と同義である。
セキュリティ上注意を要するため、デフォルト値は無効となっている。
デフォルト値: usershare allow guests
= no
このパラメータは(訳注: usershare path パラメータで定義された) ユーザ定義共有ディレクトリの所有グループに所属するユーザによって作成可能なユーザ定義共有の最大数を設定する。 0 (デフォルト) の場合、ユーザ定義共有は作成できない。
デフォルト値: usershare max shares
= 0
このパラメータは、ユーザ定義共有として公開されるパスが、 ユーザ定義共有を作成しようとしているユーザの所有であることを必須とするかどうかを制御する。 必須とした場合 (デフォルト値) 、smbd は公開しようとしているディレクトリが、ユーザ定義共有の設定ファイルの所有者と同一であることを確認し、もし異なっていた倍は作成を拒否する。 必須としなかった場合、こうした確認は行なわれず、誰が所有しているかに関わらず、ディレクトリの公開が可能となる。
デフォルト値: usershare owner only
= True
このパラメータにより、ユーザ定義共有の設定ファイルが格納されるファイルシステム上のディレクトリの絶対パスが指定される。 このディレクトリは root の所有でなければならず、その他(other)がアクセス可能であってはならず、グループの所有者のみが書き込み可能となっている必要がある。 加えて、ファイルの所有者による名前の変更と削除を制限するため、「sticky」ビットが設定されている必要がある (これは /tmp ディレクトリに対して通常行なわれる設定と同義である)。 このディレクトリのグループ所有者が、ユーザ定義共有を作成可能なユーザとなる。 このパラメータが設定されていない場合、誰もユーザ定義共有を作成できない。
一例として、ユーザ定義共有のディレクトリを /use/local/samba/lib/usershares に設定する場合、以下のようにする。
ls -ld /usr/local/samba/lib/usershares/ drwxrwx--T 2 root power_users 4096 2006-05-05 12:27 /usr/local/samba/lib/usershares/
この場合、「power_users」グループのメンバのみがユーザ定義共有を作成できる。
デフォルト値: usershare path
= NULL
このパラメータには、ユーザ定義共有による共有を許可する絶対パス名のリストを指定する。 共有しようとしているパス名の先頭がこのリストに指定されたパス名のいずれかと合致していない場合、公開は許可されない。 これにより、Samba の管理者がユーザ定義共有による公開を可能とするディレクトリを制限することが可能となる。
「usershare prefix deny list」と「usershare prefix allow list」の両方が定義されている場合は、 拒否リスト側が先に処理され、後から許可リストが処理される。 これにより、拒否リストによる制限を優先している。
デフォルト値: usershare prefix allow list
= NULL
設定例: usershare prefix allow list
= /home /data /space
このパラメータには、ユーザ定義共有による公開を拒否する絶対パス名のリストを指定する。 公開しようとしているパス名の先頭がこのリストに指定されたパス名のいずれかと合致している場合、公開は許可されない。 このリストに指定されたパス名のいずれとも合致していないパス名から始まるパス名は、ユーザ定義共有として公開を許可することができる。 これにより、Samba の管理者がユーザ定義共有による公開を可能とするディレクトリを制限することが可能となる。
「usershare prefix deny list」と「usershare prefix allow list」の両方が定義されている場合は、 拒否リスト側が先に処理され、後から許可リストが処理される。 これにより、拒否リストによる制限を優先している。
デフォルト値: usershare prefix deny list
= NULL
設定例: usershare prefix deny list
= /etc /dev /private
ユーザ定義共有では、path 、 guest ok といった幾つかのパラメータしか設定できないが、 このパラメータにより、ユーザ定義共有を既存の共有から「複製」することが可能となる。 「usershare template share」に既存の共有名が設定されていた場合、作成されるすべてのユーザ定義共有では、デフォルト値としてこの共有に設定されたパラメータが用いられる。
対象となる共有には、「-valid = False」の設定をテンプレートの設定として行なっておくことで、実際のファイル共有として機能しないようにしておくことができる。 これにより、ユーザ定義共有のテンプレートとして用いつつ、その共有が実際に公開されないようにできる。
デフォルト値: usershare template share
= NULL
設定例: usershare template share
= template_share
このパラメータが yes
であり、
かつ Samba の動作する OS で sendfile()
システムコールがサポートされている場合、いくつかの SMB read コール (主に ReadAndX と ReadRaw) において排他的 oplock が行なわれているファイルに対して効率的な sendfile システムコールが使用される。これにより、システムの CPU の効率的な使用が行なわれ、 Samba の動作も高速化するだろう。
Samba は NT LM 0.12 未満のプロトコルを用いるクライアントや Windows 9x ( Linux から sendfile を用いると、これらのクライアントの処理が失敗する) に対しては、自動的にこのオプションを無効にする。
デフォルト値: use sendfile
= false
このパラメータの値により、 Samba が Windows 2000 や Windows XP クライアントの間で行なわれる認証の際に Simple and Protected NEGOciation (RFC2478 で規定) の使用を試みるかどうかが制御される。
SPNEGO の実装に問題点が発見されない限り、 これを無効にする必要性はない。
デフォルト値: use spnego
= yes
この真偽値パラメータは、
Sambaが --with-utmp オプションで
configure され、コンパイルされた時にのみに有効である。
このパラメータを yes
に設定することで、
Sambaは utmp または utmpx レコード(UNIXシステムに依存)に、
Sambaサーバへの接続時の情報を追加するようになる。
このパラメータにより、
Sambaの共有への接続を記録することが可能になる。
utmp レコードの仕様のため、接続する個々のユーザ毎に一意な識別子が生成されている必要がある。 この、オプションを有効にすることで、 n^2 アルゴリズムを使ってその番号を検索する処理が発生する。 大規模システムの場合、この処理がパフォーマンスに影響を与える場合も考えられる。
デフォルト値: utmp
= no
このパラメータは、
Sambaが --with-utmp オプションで
configure され、コンパイルされた時にのみに有効である。
このパラメータは、
Sambaサーバへの接続を記録する utmp または utmpx ファイル
(UNIXシステムに依存)が存在するディレクトリを指定する。
デフォルトではこの値は設定されない。
この場合、システムが利用している utmp ファイルが使われる
(Linux の場合、通常
/var/run/utmp
にある)。
デフォルト値: utmp directory
=
# Determined automatically
設定例: utmp directory
= /var/run/utmp
このパラメータは、共有が有効であり、使用可能かどうかを制御する。 このパラメータを false に設定した場合、いかなる方法を用いても、共有を表示したり、共有に対してアクセスしたりすることができなくなる。
このオプションは一般ユーザが利用すべきものではなく、開発者の利便性のために設けられている。 Samba はこのオプションを内部的に用いて、共有が削除されたことを記録している。
デフォルト値: -valid
= yes
サービスにアクセスできるユーザのリストを指定する。
'@'、'+'、'&' からはじまる名前は、
invalid users
パラメータで説明した規則にしたがって解釈される。
このパラメータが設定されていない場合(既定値)、どのようなユーザでもログインできる。このリストと
invalid users
の両方に含まれるユーザのアクセスは拒否される。
%S
は、現在のサービス名に置き換えられる。
これは [homes] セクションで用いると便利である。
デフォルト値: valid users
=
# No valid users list (anyone can login)
設定例: valid users
= greg, @pcusers
このパラメータは、 一覧することもアクセスすることもできないファイルとディレクトリのリストを指定する。 リストの各エントリは '/' で区切ること。これにより、 エントリ中に空白文字を用いることが可能になっている。 '*'と '?'は DOS のワイルドカードと同様、 複数のファイルやディレクトリを指定するために利用できる。
各エントリはDOSの形式ではなく、 UNIXでのパス形式である必要があり、 UNIX のディレクトリ区切りである '/'を含めてはならない。
case sensitive オプションが、この処理に影響することに注意。
veto files パラメータの利用に際して注意すべき重要な点が、
ディレクトリ削除時の動作である。
削除されるディレクトリに veto files パラメータに一致するファイルが存在する場合、
delete veto files パラメータが
yes
でない限り、削除は失敗する。
このパラメータを設定した場合は、 ファイルやディレクトリの一覧を取得する際、 すべてのファイルとディレクトリについて、 このパラメータのマッチング処理が行なわれるようになるため、 Samba の性能に影響が発生する。
以下に設定例を記載する:
; Veto any files containing the word Security, ; any ending in .tmp, and any directory containing the ; word root. veto files = /*Security*/*.tmp/*root*/ ; Veto the Apple specific files that a NetAtalk server ; creates. veto files = /.AppleDouble/.bin/.AppleDesktop/Network Trash Folder/
デフォルト値: veto files
= アクセスできないファイルやディレクトリはない
このパラメータは、 oplocks パラメータが有効になっている共有でのみ意味がある。 Samba の管理者は、このパラメータを使って リストにマッチしたファイルに対する oplock を禁止することができる。 リストは veto files パラメータで利用されているものと同様の形式である。
クライアントによるロック競合が激しいファイルに対して、
このオプションを適用したいということがあるだろう。
例としては NetBench SMB ベンチマーク・プログラムがある。
このプログラムは 「.SEM」
で終わる名前のファイルに対して激しい競合を発生させる。
これらのファイルに対する oplock を禁止するためには、
以下の設定例のように指定する
([global] セクションか、
Net Bench 用の共有のいずれかにおいて)。
以下に設定例を示す。
veto oplock files = /.*SEM/
デフォルト値: veto oplock files
=
# oplock 取得を禁止されるファイルやディレクトリはない
このパラメータは、vfs objectsの別名である。
このパラメータは、 Samba の VFS I/O 操作において用いられるバックエンド名を指定する。デフォルトでは通常のディスク I/O 操作が行なわれるが、 VFS オブジェクトによりこの操作を変更することが可能である。
デフォルト値: vfs objects
=
設定例: vfs objects
= extd_audit recycle
このパラメータにより、共有のボリュームラベルの設定が可能になる。 これは、特定のボリューム名が必要なインストールプログラムを格納した CD-ROM を共有する際に便利である。
デフォルト値: volume
=
# the name of the share
このパラメータは、 UNIXファイルシステム上のリンクをサーバが追跡するかどうかを制御する。 サーバが公開するディレクトリツリー内部へのリンクは、 常に許可されている。このパラメータは、 公開されているディレクトリツリー外部へのアクセスを制御する。
このパラメータを no に設定すると、 リンク先のチェックを行なうための余分なシステムコールを実行する必要があるため、 サーバのパフォーマンスに悪影響を及ぼすことに注意。
デフォルト値: wide links
= yes
このパラメータにより、 winbindd(8) デーモンが Windows NT Server に問い合わせを行なう代わりにキャッシュしたユーザとグループの情報を使用する時間を秒単位で指定する。
このキャッシュは、認証要求には用いられない。 認証要求は常にその場で処理される。
デフォルト値: winbind cache time
= 300
非常に大規模な環境において、 winbindd(8) を使用する際には、 setgrent(),
getgrent() や
endgrent() といったシステムコール群の呼び出しによるグループの一覧取得を抑止する必要があるかも知れない。
winbind enum groups
パラメータが
no
の場合、 getgrent() システムコールの呼び出しは、全くデータを返却しない。
グループ一覧(enumeration)を無効にするとプログラムによっては異常動作を引き起こす恐れがある。
デフォルト値: winbind enum groups
= no
非常に大規模な環境において、 winbindd(8) を使用する際には、 setpwent(),
getpwent() や
endpwent() といったシステムコール群の呼び出しによるユーザの一覧取得を抑止する必要があるかも知れない。
winbind enum users
パラメータが
no
の場合、 getpwent() システムコールの呼び出しは、全くデータを返却しない。
ユーザ一覧(enumeration)を無効にするとプログラムによっては異常動作を引き起こす恐れがある。 例えば、finger プログラムは、全てのユーザの一覧にアクセスできる前提で、ユーザ名のマッチングを行なっている。
デフォルト値: winbind enum users
= no
このパラメータを yes にすると、グループの入れ子が可能になる。 入れ子になるグループは、ローカルグループやエイリアスと呼ばれる。 これは、Windows のローカルグループに対応するものである。 入れ子になるグループは、各マシンローカルで定義され (ただしドメインコントローラ間では SAM を共有するため共有され)、 信頼される任意の SAM で定義されたユーザやグローバルグループを含めることができる。 入れ子になるグループを用いるには、nss_winbind を有効にしておく必要がある。
デフォルト値: winbind nested groups
= yes
このパラメータは、Winbind が Name Service Information からユーザのホームディレクトリやログインシェルの情報を取得する方法を指定する。 現在のところ、以下の値が利用できる:
template
- デフォルト値であり、template
shell
および template homedir
パラメータの値を用いる。
sfu
- Samba が security = ads で実行されており、Active Directory
の DC が Microsoft Services for Unix (SFU) の
LDAP スキーマをサポートしている場合、Winbind
機構はログインシェルおよびホームディレクトリ属性を
DC から直接取得する。
UID や GID 情報を DC から取得したい場合は、
idmap backend
= idmap_ad も設定すること。
デフォルト値: winbind nss info
= template
設定例: winbind nss info
= template sfu
このパラメータは、Winbind 機構で
pam_winbind
モジュールにキャッシュされた資格情報を用いたログインを可能にするかどうかを指定する。
有効にした場合、winbindd は、ログインに成功したユーザの資格情報を、暗号化してローカルのキャッシュに格納する。
デフォルト値: winbind offline logon
= false
設定例: winbind offline logon
= true
このパラメータは Winbind 機構が
pam_winbind
モジュールから取得した
Kerberos チケットをリフレッシュするかどうかを制御する。
デフォルト値: winbind refresh tickets
= false
設定例: winbind refresh tickets
= true
このパラメータは、 DOMAIN
\user
の形式でユーザ名を表示する際に使用される区切り文字を指定する。
このパラメータは UNIX のサービスが pam_winbind.so
および nss_winbind.so
モジュールを使用する時のみ適用される。
+ 文字は NIS において /etc/group 中で特別な意味を持っているため、このパラメータを + に設定した場合、少なくとも glibc システムにおいては問題が発生する。
デフォルト値: winbind separator
= '\'
設定例: winbind separator
= +
このパラメータは、Samba が管理するドメインの、他の Samba
メンバーサーバに対して、NIS、rsync や LDAP で配布されている UNIX
アカウントの uid を、プライマリドメインの winbindd ユーザの uid
として使用するのを目的として設計された。これにより、DOMAIN\user1
というユーザは、新しい uid が割り当てられる代わりに /etc/passwd の
user1 というアカウントに割り当てられる。
デフォルト値: winbind trusted domains only
= no
このパラメータにより、 winbindd(8) デーモンが、ドメイン名が付加されていないユーザ名を扱う方式が指定される。ドメイン名が付加されていないユーザは、winbindd サーバのドメインのものとして扱われる。 Windows ユーザにとっては、どちらでもよい話であるが、 SSH, FTP や e-mail を利用する際に、 UNIX システム本来のやり方に近い方法で指定することが可能となる。
デフォルト値: winbind use default domain
= no
設定例: winbind use default domain
= yes
Samba が WINS サーバとして動いている場合、このオプションによって、 WINS データベースに対して変更が行なわれる度に外部のプログラムが起動されるようになる。このオプションの主な目的は、ダイナミック DNS のような外部の名前解決データベースの動的な更新を実現することである。
wins hook パラメータは、以下の形式で呼びだされるスクリプト又は実行形式のプログラムを指定する。
wins_hook operation name nametype ttl IP_list
最初の引数は操作の指定であり、 "add", "delete", "refresh" のいずれかを取る。 ほとんどの場合、残りのパラメータで提供される情報が不足している場合、操作は無視される(訳注: sufficient は insufficient の typo と思われる)。 "refresh" は名前がまだ追加されていない時点で呼び出されることがあるので注意。この場合操作は add として扱われる。
3番目の引数は NetBIOS名のタイプで、2桁の16進数である。
4番目の引数は 名前の TTL(生存時間) で秒数単位である。
5番目以降の引数は、その名前で現在登録されているIPアドレスである。リストが空の場合、名前は削除される。
BIND の動的なDNS更新プログラムである nsupdate を呼び出すスクリプトのサンプルが、 Samba ソースコードの examples ディレクトリに格納されている。
デフォルト値なし
この真偽値パラメータにより、 nmbd(8) が別のホストの代理としてブロードキャストによる名前問い合わせに応答するかどうかが設定される。古いクライアントの為に、このパラメータを yes
にする必要があるかも知れない。
デフォルト値: wins proxy
= no
このパラメータは、 nmbd(8) が名前を登録する WINS サーバの IP アドレス(もしくはDNS名: IPアドレスが望ましい)を指定する。ネットワークに WINS サーバが存在している場合は、このパラメータを WINS サーバの IP アドレスに設定すること。
複数サブネットからなるネットワークの場合は、このパラメータで WINS サーバを指定すべきである。
複数の名前空間が存在している場合、各々の WINS サーバに「タグ」をつけることが可能である。同じタグのついたサーバ内では 1 台の(動作中の)サーバに対してのみ、名前の問い合わせが行なわれる。タグはコロンによって IP アドレスと区切られる。
複数のサブネットからなるネットワークで、サブネット越しのブラウジングを正しく機能させたい場合は、 Samba で WINS サーバの設定を行なう必要がある。
Samba3-HOWTO の Network Browsing 章を参照のこと。
デフォルト値: wins server
=
設定例: wins server
= mary:192.9.200.1 fred:192.168.3.199 mary:192.168.2.61
# この例では、名前の問い合わせを行なう際に、 192.9.200.1 に最初に問い合わせが行なわれる。応答がなかった場合は、 192.168.2.61 に問い合わせが行なわれる。いずれのサーバからにも名前が存在しなかった場合、 192.168.3.199 に対して問い合わせが行なわれる。
設定例: wins server
= 192.9.200.1 192.168.2.61
この真偽値パラメータにより、 Samba の nmbd(8) プロセスを WINS サーバして機能させるかどうかが設定される。複数サブネットに及ぶネットワークを構築しており、いずれかの nmbd を WINS サーバとして機能させようとしない限り、このパラメータを yes
にしないこと。
ネットワーク上の複数のマシンで、このパラメータを yes
に設定することが絶対にないように注意すること。
デフォルト値: wins support
= no
これは、クライアントが問い合わせを行なった際に、 サーバが表示されるワークグループを設定する。 このパラメータにより、 security = domain の設定におけるドメイン名も設定されることに注意。
デフォルト値: workgroup
= WORKGROUP
設定例: workgroup
= MYGROUP
このパラメータは、writeableの別名である。
デフォルト値なし
この数値パラメータを 0 以外に設定すると、 Sambaは oplock された各ファイルに対してメモリキャッシュを作成するようになる (oplock されないファイルに対しては 行なわれない 。 クライアントがディスクへの書き出しを直接要求していない書き込みは全て、 可能な限りこのキャッシュに蓄積される。 キャッシュはキャッシュに適さない位置からの書き込みが行なわれた時か、 ファイルがクライアントによってクローズされた時に書き出される。 データがキャッシュ中に存在していれば、 ファイルからの読み出しにキャッシュが使用される。
Sambaは、このキャッシュにより、 RAID ディスクに対して適切な書き込みサイズでクライアントからの書き込みを処理できるようになり (例えば、書き込みサイズをRAIDのストライプサイズに合わせる)、 ディスクサブシステムがボトルネックとなっているが、 ユーザ空間のプログラム向けの空きメモリがあるシステムのパフォーマンスを向上させることができる。
この数値パラメータにより、(oplock を行なったファイル単位での) キャッシュサイズがバイト単位で指定される。
デフォルト値: write cache size
= 0
設定例: write cache size
= 262144
# for a 256k cache size per file
これは、サービスに対して読みとりおよび書き込み権が与えられるユーザのリストである。 接続したユーザがこのリストに存在している場合は、 例え read only オプションが no であっても書き込み権が与えられる。このリストには、 @group という形式を用いることでグループ名を含めることもできる。
Samba 3.0 において、このパラメータは security = share では動作しない。これは仕様である。
デフォルト値: write list
=
設定例: write list
= admin, root, @staff
このパラメータは、クライアントからのデータ転送時に、 サーバ側で raw write SMB のサポートを行なうかどうかを制御する。 このパラメータを変更する必要はないだろう。
デフォルト値: write raw
= yes
このパラメータは、 Sambaが --with-utmp オプションで configure され、コンパイルされた時にのみに有効である。 このパラメータは、 Sambaサーバへの接続を記録する wtmp または wtmpx ファイル (UNIXシステムに依存)が存在するディレクトリを指定する。 utmp directory との違いは、ユーザ情報がユーザのログオフ後も記録され続ける点である。
デフォルトではこの値は設定されない。
この場合、システムが利用している utmp ファイルが使われる
(Linux の場合、通常
/var/run/wtmp
にある)。
デフォルト値: wtmp directory
=
設定例: wtmp directory
= /var/log/wtmp
設定ファイルでは、スペースを含むサービス名も利用できるが、 クライアント側のソフトウェアで禁止されているかもしれない。 文字列比較を行なう際にスペースは常に無視されるため、 問題は発生しないはずであるが、可能性は考慮しておく必要がある。
同様の注意事項として、多くのクライアント、特に DOS クライアントでは、サービス名が最長8文字に制限されている。 smbd(8) にはそのような制限はなく、 こうしたクライアントからの接続要求は、サービス名が切り捨てられてしまう ために失敗することになる。このため、サービス名の長さは、最大 8 文字に制限すべきである。
[homes]
および [printers]
という特殊セクションにより、
管理者の負担を軽減することができるが、デフォルトの設定の組合せ方に
よっては、予期しない設定が行なわれる可能性もある。これらのセクションの
設定を行なう際には、特に注意深く行なうこと。特にスプールディレクトリの
パーミッションが適切であることを確認しておくこと。
samba(7), smbpasswd(8), swat(8), smbd(8), nmbd(8), smbclient(1), nmblookup(1), testparm(1), testprns(1)
オリジナルの Samba ソフトウェアと関連するユーティリティは、 Andrew Tridgell によって作成された。現在 Samba は Samba Team によって、 Linux カーネルの開発と同様のオープンソースプロジェクトとして開発が 行なわれている。
オリジナルの Samba マニュアルページは Karl Auer によって 作成された。マニュアルページは YODL 形式 ( ftp://ftp.icce.rug.nl/pub/unix/ で入手可能な優れた オープンソースソフトウェア) に変換され、Samba 2.0 リリースに伴い、 Jeremy Allison によって更新された。Samba 2.2 における DocBook 形式への変換は、Gerald Carter によって行なわれた。Samba 3.0 における DocBook XML 4.2 形式への変換は Alexander Bokovoy によって行われた。