WebDAV(Web Distributed Authoring and Versioning)は、HTTP プロトコルを通じてリモートストレージをローカルファイルシステムにマウントできる技術です。これにより、リモートファイルに対してローカルディレクトリを操作するのと同じように、ls、cp、mv などの操作を行えます。この記事では、Linux システムに davfs2 をインストールして設定する方法を紹介し、坚果云(Nutstore / 坚果云)を例に、WebDAV ディレクトリをマウントする一連の手順を示します。
1. はじめに
坚果云(Nutstore)は、WebDAV アクセスインターフェースを提供している一般的なクラウドストレージサービスです。davfs2 を使うことで、Linux システム上で坚果云のリモートストレージをローカルフォルダへ直接マウントし、ローカルディスクに近い管理方法を実現できます。
2. davfs2 のインストール
1. Debian/Ubuntu 系
sudo apt update
sudo apt install davfs2
インストール中に、root 以外のユーザーによる WebDAV ファイルシステムのマウントを許可するかどうかを尋ねられる場合があります。通常ユーザーでもマウントできるようにしたい場合は、Yes(または対応する選択肢)を選びます。
2. RHEL/CentOS/Fedora 系
sudo yum install davfs2
比較的新しい Fedora / RHEL システムでは、次のコマンドも使用できます。
sudo dnf install davfs2
3. マウントポイントディレクトリの作成
坚果云をマウントするためのディレクトリをローカルに作成します。例:
sudo mkdir -p /mnt/nutstore
このディレクトリが、ローカル環境と坚果云の間のマウントポイントになります。
4. davfs2 の設定
4.1 ログイン認証情報の設定
坚果云の WebDAV アクセスにユーザー名とパスワードが必要な場合は、/etc/davfs2/secrets ファイルにログイン情報を追加できます。
sudo nano /etc/davfs2/secrets
ファイル末尾に以下の内容を書き込み、サンプル URL、ユーザー名、パスワードを実際の情報に置き換えます。
https://dav.jianguoyun.com/dav <你的用户名> <你的密码>
保存後、セキュリティのため、このファイルを root または該当ユーザーだけが読めるようにします。
sudo chmod 600 /etc/davfs2/secrets
4.2 davfs2.conf の変更(任意)
一部のサーバーやクラウドサービスでは WebDAV プロトコルのサポートが完全ではなく、次のようなエラーが発生する場合があります。
mount.davfs: mounting failed; the server does not support WebDAV
この場合は、/etc/davfs2/davfs2.conf に次の設定を追加してみます。
ignore_dav_header 1
このオプションは特定のプロトコルヘッダー確認を無視し、一部の非標準 WebDAV サービスとの互換性を高めます。有効にする必要があるかどうかは、利用しているサーバー側の実際の挙動に応じて判断してください。
5. 手動マウントのテスト
設定が完了したら、まず手動でマウントをテストできます。以下は坚果云の WebDAV アドレスを例にしたものです。URL の末尾に / が必要な場合もあります。
sudo mount -t davfs https://dav.jianguoyun.com/dav /mnt/nutstore
設定が正しければ、認証情報の入力を求められるか、/etc/davfs2/secrets が自動的に読み込まれます。成功後は次のコマンドで確認できます。
df -h | grep nutstore
ls /mnt/nutstore
リモートファイルが一覧表示できれば、マウントは成功です。
6. /etc/fstab で自動マウントする
起動時に自動マウントしたい場合、または sudo mount -a 実行時に自動でマウントしたい場合は、/etc/fstab に次のようなエントリを追加します。
https://dav.jianguoyun.com/dav /mnt/nutstore davfs rw,uid=1000,gid=1000,_netdev,users,credentials=/etc/davfs2/secrets 0 0
各項目の意味は次のとおりです。
rw:読み書き可能としてマウントします。uid=1000,gid=1000:マウント後のファイル所有者と所有グループを指定します。実際のユーザー ID、グループ ID に合わせて変更してください。_netdev:ネットワークファイルシステムであることを示し、ネットワーク起動後にマウントを試行します。users:root 以外のユーザーによるマウントとアンマウントを許可します。credentials:WebDAV ログイン認証情報を保存したファイルを指定します。
追加後、次のコマンドでテストします。
sudo mount -a
エラーがなく、/mnt/nutstore に正常にアクセスできれば、自動マウントの設定は成功です。
7. よくある問題と解決策
1. the server does not support WebDAV
- 坚果云またはその他のサーバー側で WebDAV 機能が有効になっていること、URL が正しいことを確認します。必要に応じて末尾に
/を付けて試してください。 /etc/davfs2/davfs2.confにignore_dav_header 1を追加してみます。- ネットワークが正常に接続できるか、ファイアウォールやプロキシがアクセスを妨げていないかを確認します。
2. ユーザー名やパスワードを頻繁に入力する必要がある
/etc/davfs2/secretsが正しく設定され、権限が600に設定されていることを確認します。- ユーザー単位の設定を使う場合は、
~/.davfs2/secretsに認証情報を保存し、同様にファイル権限を制限できます。
3. 権限の問題
- マウント後にファイルを読み書きできない場合は、
/etc/fstabのuid、gidオプションを確認するか、ユーザーをdavfs2グループに追加します。 - 実際の要件に応じて、マウントポイントディレクトリとローカルキャッシュディレクトリの権限を調整します。
4. ネットワーク起動順序
_netdevオプションを使用すると、ネットワーク準備完了後にマウントするようシステムへ示せます。- それでも起動順序の問題がある場合は、systemd マウントユニットを使用し、
After=network-online.targetなどの依存関係を設定することを検討できます。
5. 代替案
利用環境で坚果云の WebDAV に互換性や安定性の問題がある場合は、rclone などのツールを使い、その WebDAV サポートを通じてマウントまたは同期できます。
8. まとめ
davfs2 を使うことで、坚果云(Nutstore)など WebDAV 対応のクラウドストレージサービスを Linux のローカル環境にマウントし、ローカルディスクに近いファイル操作体験を得られます。非標準の WebDAV 実装や接続問題に遭遇した場合は、ignore_dav_header 1 を試すことができ、rclone など他のツールを補助的に使うこともできます。
正しく設定すれば、システム起動時にリモートストレージを自動で読み込み、ユーザーはいつでもクラウド上のファイルにアクセス、編集、管理できます。Web ページへ手動でログインしたり、追加の同期クライアントに依存したりする必要はありません。これは、マルチプラットフォームでのファイル管理や、サーバーを使ったリモート作業などの場面で実用的です。
関連資料と参考リンク:
