Linux での DAV file system の使い方

Using DAV file system

SungHun Kim , hunkim@kebi.com Ric Castillo , ric@simpware.com

v0.4, 22 Oct 2001

翻訳:wakatono


WebDAV は、Web-based Distributed Authoring and Versioning の略です。通常、HTTP はリードオンリーなプロトコルですが、DAVが使えるようになれば、書き込みも可能なものに拡張されます。さらに、DAVfs を使えば、Webサーバをファイルシステムにマウントし、通常のディスクと同じように利用することが可能になります。本文書では、DAV と DAVfs について簡単に説明し、システムへのインストールの仕方を説明します。

1. Introduction

2. DAV

2.1 What is DAV?

WebDAV は、"Web-based Distributed Authoring and Versioning"の略です。これは、HTTPプロトコルに対し、文書の共同編集や管理作業のための拡張をほどこしたものです。

もっとDAVについて知りたい人は、次のサイトを訪れるとよいでしょう。 http://webdav.org/

2.2 どうやってDAVサーバをインストールするの?

多くのDAVクライアント/サーバプログラムがあります。より多くの情報が欲しい方は次のサイトを訪れるとよいでしょう。 http://webdav.org/

3. DAV ファイルシステム

davfs は、WebDAVサーバをディスクドライブであるかのようにマウントするためのLinuxファイルシステムドライバです。

WebDAVは、HTTP/1.1 に対し、文書の共同編集や管理作業のための拡張をほどこしたものであり、RFC 2518にて定義されています。

davfs は、リモートのWebサーバを、普通のファイル操作アプリケーションを使ってファイルシステム上のファイルを編集したりするような感覚で操作することを実現します。例えば、リモートのWebサイトを、最初に(ローカルで)使ったツールを使ってそのまま編集できます。

4. DAVfs の入手とインストール

DAVfs のインストールには、2種類のモジュールが必要です。1つはカーネルモジュールであり、もう1つはmount やキャッシュマネージャなどのツール群です。

4.1 Getting DAVfs

最新のバージョンがhttp://dav.sourceforge.net/から入手可能です。

以下のようにしてアーカイブを展開してください。

tar xvfz davfs-x.x.x.tar.gz
この後、アーカイブを展開したディレクトリを $DAVFS と表記します。 For the rest of the howto we refer to the untared davfs directory as $DAVFS.

4.2 Quick install

ありがちですが、以下のようにしてください。

./configure
make
su
make install

4.3 カーネルモジュールのインストール

カーネルソースを持っていない場合は、入手の上 /usr/src/linux に展開する必要があります。カーネルソースはhttp://kernel.orgから入手可能です。

プログラムをインストールした後、davfs モジュールは /lib/modules/[kernel-version]/fs/davfs というところに配置されます。davfs をマウントするときにこのモジュールは自動的にロードされます。

もしカーネルモジュールをコンパイル、インストールしたいのであれば、以下の ようにしてください。

cd $DAVFS/davfs
make
make install

4.4 davfsd およびマウントコマンドのインストール

以下のようにしてください。

./configure
make 
su
make install
この作業が終わると、/usr/local/sbin に2つのバイナリができています。1つはマウント用のコマンドであり、もう1つはクライアントのキャッシュマネージャです。必要に応じて、/usr/local/sbin をPATHに追加してください。

SSLサポートが必要ならば、OpenSSL をインストールした上で davfs の configure 実行時に --with-ssl オプションを付加してください。 OpenSSL は、http://www.openssl.orgから入手可能です。

configure は、/usr/local/ssl および /usr/ssl にOpenSSL のライブラリがあるかどうかを探します。もし他のディレクトリにインストールした場合は、ディレクトリを指定する必要があります。

./configure --with-ssl=/usr/local/ssl

カーネルソースのあるディレクトリについても、--with-kernel オプションで指定することが可能です。もしカーネルソースが /usr/src/linux-2.4.7 にあるのであれば、"--with-kernel=/usr/src/linux-2.4.7"というように指定することができます。

5. DAVfs の設定と起動

5.1 クイックマウント

su
mount.davfs http://dav.simpware.com/ /dav -u hunkim -p 1234 
もしくは
mount.davfs https://dav.simpware.com/ /dav -u hunkim -p 1234 
こうするだけです。もし SSL を利用したいのであれば、URL を https で開始してください。

-c オプションを利用することで、Proxy を使うことも可能です。オプションパラメータを指定するために、クォーテーションマーク(")を使う必要があります。

mount.davfs http://www.webdav.org/ /dav/ -u hunkim -p 1234 -c "http://proxy.ucsc.edu:8080"

マウントプログラムはdavfsdという名前のキャッシュマネージャをチェックし、もし起動していないのであれば、キャッシュマネージャを実行します。

5.2 手動でキャッシュマネージャを走行させるには

キャッシュマネージャを起動するには、単に davfsd とタイプするだけです。システム起動時にこれを走行させたいのであれば、スタートアップスクリプトにこれを追加してください。davfsd(訳注:原文は(なぜか)davfsとなっていた) は、通常 /usr/local/sbin ディレクトに配置されています。

5.3 DAVファイルシステムのマウント

davfs をマウントするためには、特別なマウントプログラムが必要となります。davfs パッケージがすでにインストールされているならば、mount.davfs という名前のプログラムが /usr/local/sbin に格納されているでしょう。以下に、マウントの例を示します。

mount.davfs <full-url with last slash> <mount point> <options>
su
mount.davfs http://dav.simpware.com/ /dav -u hunkim -p 1234 
mount.davfs は、実行時に-u,-p,-cの3つのオプションを指定可能です。-uはWebDAVサーバにアクセスするためのユーザIDを指定し、-pはそのパスワードを指定しています。Proxyサーバを利用したい場合は、-cオプションでProxyサーバを指定してください。 マウントされているファイルシステムを見るために、df コマンドを利用してみましょう。不幸にしてDAVサーバが使える状態にない場合には、davfs は利用可能な容量や使用容量についてうその情報を返します。

さて、これで davfs を使えるようになりました!

5.4 グラントオプション

ご存知のとおり、WebDAVユーザとローカルユーザの間には何の関係もありません。しかし、もしローカルユーザやグループの権限で davfs を使いたいのであれば、-U でローカルユーザを指定し、-Gでローカルグループを指定することが可能です。 例えば、ユーザhunkimがdavfsを使いたいのであれば、以下のようにしてマウントしてください。

mount.davfs http://dav.simpware.com/ /dav -Uhunkim 
ローカルグループが davfs を使う場合、以下のようにしてください。
mount.davfs http://dav.simpware.com/ /dav -Gwebgrp

6. トラブルシューティング

6.1 Umount

DAVfs は、socketを利用することでキャッシュマネージャ(davfsd)とともに動きます。リブートする前に、キャッシュマネージャが全ての davfs をアンマウントしますが、全ての davfs を(明確に)アンマウントすることをお薦めします。

6.2 davfsd の停止

/tmp/davfsd.pid というファイルがありますので、以下のコマンドで停止することが可能です。

kill `cat /tmp/davfsd.pid`

6.3 キャッシュされたファイル

通常、キャッシュされたファイルは /tmp に置かれ、dav_cache というプリフィックスが付与されています。キャッシュマネージャが停止されたならば、これらのファイルを消してください。

6.4 Linux カーネルバージョン

2.4系のカーネルでコンパイルおよび試験をしています。

6.5 DAV サーバ

Apache 1.3.x + mod_dav 、Apache 2.x 、IIS 5.0 で試験しました。

7. プロジェクトへの参加について

DAVfs はオープンソースプロジェクトであり、誰でも参加できます。詳細な情報については、我々のプロジェクトホームページhttp://dav.sourceforge.net/でご覧になれます。