Using Samba

Using Samba

Robert Eckstein, David Collier-Brown, Peter Kelly 共著
第一版 1999 年 11 月
1-56592-449-5, 注文番号: 4495
416 ページ, 34.95 ドル

ハードコピー版(英語)を購入する

目次


Previous: 7.3 Samba の名前解決 Chapter 8 Next: 8.2 マジックスクリプト
 

8. その他の情報

この章では、様々な用途で利用される smb.conf 設定ファイルの雑多なオプションを網羅的に解説する。プログラマのサポート、国際化、メッセージ、Windows で一般的なバグについて簡単に解説していく。殆んどの場合、これらのオプションは一部の環境でのみ利用することになろう。なお、この章の最後には、 smbtar コマンドによる自動バックアップの実行についても言及する。これ以上ここで話を進めるよりも、早速最初のテーマであるプログラマのサポートオプションについて見ていこう。

8.1 プログラマのサポート

Samba サーバにアクセスするプログラマがいるときは、 表 8.1に挙げた特別なオプションについても気をつけておく必要がある。


表 8.1: プログラミング設定オプション

オプション

パラメータ

機能

デフォルト

範囲

time server

真偽値

yesの場合、 nmbd は、自身を Windows クライアントに対する SMB タイムサービスとしてアナウンスする

no

グローバル

time offset

数値 (分単位)

出力される時間に指定した分単位の時間を加える

0

グローバル

dos filetimes

真偽値

ファイルの所有者でない場合でも、書き込み権があれば、ファイルの時間を変更することを可能にする

no

共有

dos filetime

resolution

真偽値

ファイルの時間を2秒単位に四捨五入する

no

共有

fake directory create times

真偽値

MS nmake のバグを避けるようにディレクトリの作成時間を設定する

no

共有

8.1.1 時間の同期

時間の同期はプログラマにとって非常に重要である。以下のオプションを頭にいれておくこと:

time server = yes (monyo訳注: 原文では time service となっているが, 明らかな誤りであろう)
dos filetimes = yes
fake directory create times = yes
dos filetime resolution = yes
delete readonly = yes

これらのオプションを設定すれば、Samba の共有は Visual C++、 nmake やその他の Microsoft のプログラミングツールが必要とするファイル時刻の扱いとの互換性を提供する。さもなくば PC の make プログラムは、ディレクトリ中の全てのファイルを毎回リコンパイルの必要があるものだと判断してしまう傾向がある。あきらかに、それは期待する動作ではない。

8.1.1.1 time server

Samba サーバが正確な時間を保っている場合、すなわち UNIX 上のネットワークタイムサーバのクライアントである場合は、 time server オプションを以下のように設定することで、Samba サーバを SMB タイムサーバとしてアナウンスすることもできる:

[global]
	time service = yes

この場合でもクライアントは、以下のDOS コマンドで正しい時間を要求することが必要となる。 Samba サーバの名前を適切なものに変更して利用すること:

C:\NET TIME \\server /YES /SET

このコマンドは、Windows のログオンスクリプト(see Chapter 6, Users, Security, and Domains )中に記述することもできる。

デフォルトで time server オプションは通常 noになっている。 このサービスを有効にする場合、クライアントの時間のずれをなくすために、上記で述べたコマンドを用いることができる(monyo訳注: 実際はこのオプションに関わらず、Samba は SMB タイムサーバとして機能する)。時刻同期は make のように、ファイルの最終更新時刻を基準としてコンパイルを行うようなプログラムを使っているクライアントにとっては重要である。時刻同期が正しくない場合、これらのプログラムはディレクトリ中の全てのファイルを再makeしてしまい時間を無駄にするか、時刻のずれにより、更新された筈のソースファイルもリコンパイルしないかのどちらかの事態を引き起こすであろう。

8.1.1.2 time offset

夏時間を正しく扱えないクライアントを利用するために、Samba が time offset オプションを提供している。これが設定されると指定した分単位の時間を現在の時刻に付加する。自分がニューファンドランド(monyo訳注: カナダの州名)にいるが、Windows が 30分単位の時差を認識できない時には以下のようにするとよい:

[global]
	time offset = 30

8.1.1.3 dos filetimes

伝統的に、UNIX システムでは root ユーザとファイルの所有者だけがファイルの最終更新時刻を変更できる。共有レベルの dos filetimes オプションは、Samba サーバが DOS/Windows マシンの挙動を模倣することを可能とする。すなわち、書き込み権があれば、全てのユーザが共有内のファイルの最終更新時刻を変更することを可能とする。これを行うために Samba は root 権限でファイルのタイムスタンプを変更する。

デフォルトで、このオプションは無効になっている。しばしば、このオプションを yesにすることで PC make のプログラムを正しく動作させることが必要になるだろう。 これを行わないと、それらのプログラムはファイルの最終更新時刻を変更できない。これは、プログラムが、 all のファイルがリコンパイルを必要とすると判断を引き起こしてしまう。

8.1.1.4 dos filetime resolution

dos filetime resolution は共有単位のオプションである。 yesの場合、Samba はファイルの時刻を2秒単位になるように四捨五入する。このオプションが存在する主な理由は、Visual C++ がファイルが変更されていないことを正しく認識できなくしてしまう Windows の不可解な仕様に対応するためである。このオプションは以下のようにして有効にする:

[data]
	dos filetime resolution = yes

このオプションは oplock をサポートする Samba の共有で Microsoft Visual C++ を利用するときだけ利用することを推奨する。

8.1.1.5 fake directory create times

fake directory create times オプションは PC make のプログラムを正しく動作させるためにある。VFAT と NTFS ファイルシステムは UNIX と異なり、ディレクトリの作成時刻を記録する。このオプションがないと Samba はディレクトリが保持している時刻の中で最も最近記録されたもの(通常含まれるファイルの最終更新時刻)をクライアントに返却する。この仕様が問題となる場合、以下のオプションを共有の定義中に設定すること:

[data]
	fake directory create times = yes

設定すると、Samba が返却するディレクトリの作成時間は常にハードコーディングされた 1980 年 1 月 1 日となる。このオプションは主に Visual C++ の nmake プログラムの便のために用いられる。このプログラムはディレクトリの作成時刻以前に更新されたオブジェクトファイルはリコンパイルの必要があると判断してしまう


Previous: 7.3 Samba の名前解決 目次 Next: 8.2 マジックスクリプト
7.3 Samba の名前解決 書籍索引 8.2 マジックスクリプト

O'Reilly Home | O'Reilly Bookstores | How to Order | O'Reilly Contacts
International | About O'Reilly | Affiliated Companies

© 1999, O'Reilly & Associates, Inc.