![]() |
Using SambaRobert Eckstein, David Collier-Brown, Peter Kelly 共著第一版 1999 年 11 月 1-56592-449-5, 注文番号: 4495 416 ページ, 34.95 ドル |
4.2 特別なセクション
変数について理解したところで、次は Samba の設定ファイル中のいくつかの特別なセクションについて説明しておかなければならない。 以下に記述する個々のオプションについて理解していなくても心配しないでほしい。以下の章で順次それらについて説明していく。
4.2.1 [global] セクション
[global]
セクションは必ず設定しないといけないというものではないが、全ての Samba 設定ファイルの中に仮想的に存在する。 このセクションで定義されたすべてのオプションは、他の共有すべてに、設定内容が複製されたかのようにして、全ての共有に適用される。 ただし、その他のセクションで同じオプションが異なった値で記述されていた場合; これは[global]
セクションで定義された値を上書きする。これを確認するために、この章の冒頭で示した例を再度見てみよう:
[global] log level = 1 max log size = 1000 socket options = TCP_NODELAY IPTOS_LOWDELAY guest ok = no [homes] browseable = no map archive = yes [printers] path = /usr/tmp guest ok = yes printable = yes min print space = 2000 [test] browseable = yes read only = yes guest ok = yes path = /export/samba/test上記の例では、クライアントが
[test]
共有に接続しようとすると、Samba はまず[global]
セクションを読み込む。その時に設定ファイルに存在する各共有のデフォルトとして、guest
ok
=
no
オプションが設定されるのである。これは[homes]
および[printers]
共有に対して行われる。しかし[test]
共有が読み込まれた時は、設定ファイルにguest
ok
=
yes
オプションがあるので[global]
セクションで定義されているデフォルト値がyes
で上書きされる。in the context of the[pub]
share.セクションの外(もしくは、最初のセクションの前)に記述されたオプションについては、グローバルオプションとして見なされる。
4.2.2 [homes] セクション
クライアントがsmb.confファイルに存在しない共有に接続しようとすると、Sambaは
[homes]
共有があるかどうかを確認する。存在する場合、定義されていない共有名をUNIXのユーザ名とみなし、Sambaサーバのパスワードデータベースに問い合わせる。ユーザ名が見つかれば、Sambaは、クライアントをSambaサーバ上の自分のホームディレクトリに接続を試みているユーザとして扱う。例えば、 クライアントが Sambaサーバ
hydra
への接続を開始する際に、[alice]
という共有に接続しようとしているとしよう。[alice]
は smb.conf に設定されていないが,[homes]
セクションがあったため、Sambaはパスワードデータベースファ イルに問い合わせを行い、alice
のアカウントが システム上にあったとする。 すると Samba はユーザ名alice
に設定されたパ スワードをチェックして、パスワードデータベースファイルチェックする -暗号化されていない場合は、パスワードデータベースファイルが参照さ れ、暗号化されている場合は、Sambaの smbpasswd ファ イルが参照される。パスワードが合致すれば、Samba は認証が正しく行われてい ることを認識する。続いてユーザalice
は、自分のホー ムディレクトリに接続を行おうとするので、Samba は[alice]
という名前の共有を作成する。ユーザを作成することで
[homes]
セクションを利用するプロセス(およびパスワードを扱うプロセ ス)は Chapter 6 ユーザ、 セキュリティ、ドメイン でより詳細に説明する。4.2.3 [printers] セクション
三つ目の特別なセクションは
[printers]
と呼ばれる[homes]
に類似したセクションである。クライアントが smb.conf ファイルに存在しない共有に接続しようとして、その名前がパスワードファイルにも存在していない時に、Samba はそれがプリンタ共有かどうかをチェックする。Samba はプリンタの設定ファイル(通常 /etc/printcap) を読み込んで、要求された共有名のエントリが存在しないかどうかをチェックすることで、これを行う。[1] 存在する場合、Samba はそのプリンタ名の共有を作成する。[1] システムに依存するため、このファイルは /etc/printcapではないかも知れない。Samba の testparm コマンドを用いることで、
printcap
name
設定オプションの値を確認できる。ここで確認した値は、Samba の コンパイル時に設定されるデフォルト値になる。この機能を用いることで、
[homes]
共有と同様に、 smb.conf ファイル中にシステムに存在するプリンタを個別に設定する作業が不要になり、Samba はクライアントが要求した場合に UNIX のプリンタの設定を参照して、クライアントに対して登録されているプリンタを提供するようになる。 しかし、注意すべき点が一つ存在する。もしfred
という名前のアカウントとfred
という名前のプリンタが存在した場合、Samba は常にユーザアカウ ントの方を最初に見つけてしまう。これはクライアントがプリンタへの接続を必 要としている場合であっても同様である。
[printers]
共有を設定する方法についての詳細はChapter 7 印刷と名前解決 で説明する。4.2.4 設定オプション
Samba 設定ファイルのオプションは以下のカテゴリー Global もしくは Shareのどちらかに分類される。各々のカテゴリーはオプションが設定ファイルのどこに記述することができるかを規定する。
- Global
Global オプションは、 必ず
[global]
セクション中に記述される必要があり、他の個所には記述できない。これらのオプションは、通常 Samba サーバ自身の動作を設定するものであり、個々の共有の設定を行うものではない。- Share
Share オプションは、個々の共有の中に記述することが可能であるが、
[global]
セクション中に記述することも可能である。[global]
セクション中に記述された場合、それは全ての共有に対するデフォルト値として、個々の共有でそのオプションの値を上書きされない限りは適用される。また設定オプションの値は四つのカテゴリーに分類される。それらを以下に示す:
- 真偽値
これは単純なyes か no の値をとる。ただし値は以下の表記の どれを使うことも可能である:
yes
、no
、true
、false
、0
、1
。値は大文字小文字を識別しない:YES
はyes
と同じである。- 数値
十進の数字、16進もしくは8進の値をとる。16進法には標準的 な
0x
nn の記法が用いられ、同様に8進法には0
nnn が用いられる。- 文字列
ファイル名やユーザ名のように、大文字小文字を区別する文字列である。
- 列挙リスト(enumerated list)
いくつかの値のリストである。見方によっては真偽値は、値を二つしか持たな い列挙リストだと考えることもできる。
© 1999, O'Reilly & Associates, Inc.