Table of Contents
Samba-3 より、スタッカブル VFS (ヴァーチャル・ファイル・システム) モジュールがサポートされます。 Samba は UNIX ファイルシステムへのアクセス・リクエストの一つ一つをロードされた VFS モジュールに通します。 この章は、Samba のソースとレファレンスに付いてくるすべてのモジュールと、 一部の外部モジュールについて説明します。
異なるシステムでは異なる方法で共用ライブラリーをコンパイルしリンクするので、 これらのモジュールが、 プラットフォーム分散バイナリー Sambaパッケージと共に供給されない場合、 モジュールをコンパイルするのが困難になるかもしれません。 これらのモジュールは、GNU/Linux 及び IRIX に関してテスト済みです。
VFS モジュールを使用するには、以下の例に類似した共有を作成してください。 重要なパラメーターは、一つ以上のVFSモジュールを名前でリストできる vfs objects パラメータです。 例えば、ファイルへのアクセスをすべてログに取り、 削除されたファイルをゴミ箱に入れるには、 次の設定を参考にしてください:
Example 20.1. VFS モジュールを使用する場合の smb.comf
[audit] |
comment = Audited /data directory |
path = /data |
vfs objects = audit recycle |
writeable = yes |
browseable = yes |
モジュールは指定された順に使用されます。 例えば、ウィルス・スキャナー・モジュールとゴミ箱モジュールを両方持ちたいとします。 この場合、ファイルに関して他のアクションが取られる前に、 最初にウィルスを検知するように、 ウィルス・スキャナー・モジュールを最初のモジュールとし、 このモジュールが最初に走るようにするべきでしょう。 vfs objects = vscan-clamav recycle
Sambaは、Samba 実装のルート・ディレクトリー内の /lib ディレクトリからモジュールをロードしようとします。 (通常、/usr/lib/samba/vfs または /usr/local/samba/lib/vfs)
幾つかのモジュールは同じ共有に関して二度使用できます。 これは、以下の例に示すような設定を用いることによって可能になります。
Example 20.2. 複数の VFS モジュールを使用する場合の smb.conf
[test] |
comment = VFS TEST |
path = /data |
writeable = yes |
browseable = yes |
vfs objects = example:example1 example example:test |
example1: parameter = 1 |
example: parameter = 5 |
test: parameter = 7 |
syslog 機能へのファイル・アクセスを監査するシンプルなモジュールです。 以下のオペレーションのログを取ります:
このモジュールは、 上記の audit モジュールとほぼ同じですが、 異なる点は、監査ログを syslog と smbd のログの両ファイルに送ることです。 このモジュールの log level は smb.conf ファイルで設定します。
有効な設定と記録される情報内容を下表に示します。
このモジュールは、 (UNIX での Samba サーバーで) 移動プロファイルのファイルとディレクトリを読み込み専用に設定することができるようにするために作成されました。 このモジュールは、 プロファイルの共有にインストールされている場合、 プロファイル のファイルとディレクトリが書き込み可能であると、 クライアントに知らせます。 これにより、 クライアントがログアウトまたはシャットダウンした時に、 ファイルは上書きされませんが、 クライアントのニーズは充足します。
ゴミ箱と同様のモジュールです。 使用すると、リンク切断のリクエストを拾って、 ファイルを削除する代わりにゴミ箱のディレクトリに移します。 これは Windows のコンピューターにおけるゴミ箱の機能と同じです。
ゴミ箱は、 Windows エクスプローラー のネットワーク・ファイル・システム (共有) のビューにも、 マッピングされたドライブのいずれのビューにも出ません。 その代わり、.recycle というディレクトリが、 初めてファイルを削除したときに自動的に作成されます。 ユーザーは、.recycle のディレクトリからファイルを取り戻すことができます。 recycle:keeptree が設定されている場合、 削除されたファイルは、 ファイルが削除された元の場所と同一のパスから、 見つけることができます。
recycle モジュールがサポートするオプションは以下の通りです:
削除されたファイルの移動先であるディレクトリの関連パス。
ディレクトリ構造を維持するか、それとも、 削除されたファイルはゴミ箱に別に保存するかを指定します。
このオプションを設定すると、 同名の二つのファイルが削除されたとき、 二つとも別のファイルとしてゴミ箱に保存します。 より新しい方の削除ファイルは “Copy #x of filename” という名称で保存されます。
ファイルがゴミ箱に移されたときに、 ファイルのアクセス日を変更するかどうかを指定します。
このパラメーターで指定したバイト数を超える大きさのファイルは、 ゴミ箱に入れません。
ゴミ箱に入れないで、 普通に削除するべきファイルをリストします。
ディレクトリのリストを持ちます。 これらのディレクトリからファイルが削除されると、 ゴミ箱には入れずに、普通に削除します。
recycle:versions の反対です。 二つのオプションを両方設定している場合は、 こちらのオプションが優先されます。
このセクションには、ネット上に載っているけれども、 Samba CVS ツリーには何らかの理由 (例えば、管理者が独自の CVS ツリーを持つ方が管理しやすいなどの理由) で、 現行含まれない各種の VFS モジュールを一覧します。
ここに言及したからと言って、 そのモジュールの安定性や機能性の良し悪しを示唆したとは解釈しないでください。
URL: http://www.css.tayloru.edu/~elorimer/databasefs/index.php
私は、かなり完成された読み込み専用のファイルシステムを実現する VFS モジュールを作成しました。 これは、モジュール式あるいは一般的な方式のファイルシステムであるデータベースからの情報を表示し、 異なるデータベースを使用できるようにしています。 (元々は、“アーティスト”、 “歌詞のキーワード”などのディレクトリで MP3 ファイルを整理するために設計されたものです。 これを私は、学生名簿データベースに応用しました。) ディレクトリの構造はデータベース自体の中に保存されており、 その表を確認するプログラムが走りますが、それ以外に、 データベース構造に関して何らかの推定をすることはしません。
フィードバックを歓迎します。 コメント、提案、パッチ、その他何でもお送り下さい。 他に何の役にも立たなくても、 最低、 誰かが仮想ファイルシステムを作成したい場合にお役に立てることを祈っています。
URL: http://www.openantivirus.org/
Samba-vscan は、 Samba 2.2.x/3.0 alphaX の VFS (ヴァーチャル・ファイルシステム) の特長を活かした、 Samba のためのコンセプト実証 (POC) モジュールです。 もちろん、Samba が、VFS サポートを入れてコンパイルされていなければなりません。 samba-vscan は、 各種のウィルス・スキャナーをサポートします。 Rainer Linkがメンテナンスを行っています。