![]() |
Using SambaRobert Eckstein, David Collier-Brown, Peter Kelly 共著第一版 1999 年 11 月 1-56592-449-5, 注文番号: 4495 416 ページ, 34.95 ドル |
8. その他の情報
Contents:
プログラマのサポート
マジックスクリプト
Internationalization
WinPopup Messages
Recently Added Options
Miscellaneous Options
smbtar によるバックアップ
この章では、様々な用途で利用される 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 = 308.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 プログラムの便のために用いられる。このプログラムはディレクトリの作成時刻以前に更新されたオブジェクトファイルはリコンパイルの必要があると判断してしまう
© 1999, O'Reilly & Associates, Inc.