
せっかくOracle Cloud上に自分専用 Nextcloud を立ち上げたので、PC( Windows , Ubuntu , macOS , Synology NAS)から Android まで身の回りの様々なデバイスから、 WebDAV を通じてどのようにアクセスすれば良いのか、試してみました。
Ubuntu (Nautilus)の場合
Ubuntuでは、ファイルマネージャNautilusがWebDAVに対応しています。左下の「+ 他の場所」をクリックするとウィンドウ下にサーバアドレス入力欄が現れるので、以下の要領で入力します(NextcloudがWebサーバ上のドキュメントルートにある場合)。
1 |
davs://DOMAINNAME/remote.php/dav/files/USERNAME/ |
続くログインウィンドウでは、Nextcloudのユーザ名とパスワードを入力します。今後も使う場合は、記憶させておくと便利です。
Nextcloud上のコンテンツが表示されました。ブックマークに登録しておくと、以降もクリック一発で開けます。
Ubuntu (davfs2)の場合
CLIベースではdavfs2と言うパッケージを使うと、WebDAV接続先をマウントすることが出来ます。早速パッケージマネージャからインストールするのですが、その際に次のようなプロンプトが入ると思います。これは具体的には、マウントしたWebDAVリソースをroot以外のユーザでも使える(書き込める)ようにするかどうか、と考えるとより的確に思います。「はい」を選択してインストールを進めました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
$ sudo apt install davfs2 パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下の追加パッケージがインストールされます: libneon27 以下のパッケージが新たにインストールされます: davfs2 libneon27 アップグレード: 0 個、新規インストール: 2 個、削除: 0 個、保留: 2 個。 229 kB のアーカイブを取得する必要があります。 この操作後に追加で 638 kB のディスク容量が消費されます。 続行しますか? [Y/n] y 取得:1 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libneon27 amd64 0.30.2-3~ubuntu18.04.1 [94.6 kB] 取得:2 http://archive.ubuntu.com/ubuntu bionic/universe amd64 davfs2 amd64 1.5.4-2 [134 kB] 229 kB を 2秒 で取得しました (133 kB/s) パッケージを事前設定しています ... 以前に未選択のパッケージ libneon27:amd64 を選択しています。 (データベースを読み込んでいます ... 現在 573432 個のファイルとディレクトリがインストールされています。) .../libneon27_0.30.2-3~ubuntu18.04.1_amd64.deb を展開する準備をしています ... libneon27:amd64 (0.30.2-3~ubuntu18.04.1) を展開しています... 以前に未選択のパッケージ davfs2 を選択しています。 .../davfs2_1.5.4-2_amd64.deb を展開する準備をしています ... davfs2 (1.5.4-2) を展開しています... libneon27:amd64 (0.30.2-3~ubuntu18.04.1) を設定しています ... davfs2 (1.5.4-2) を設定しています ... man-db (2.8.3-2ubuntu0.1) のトリガを処理しています ... libc-bin (2.27-3ubuntu1.4) のトリガを処理しています ... |
インストールを終えたら、適当なマウントポイントの作成と、非rootユーザでもWebDAVリソースを使えるようにするべく、まずは davfs2 グループに現在のユーザを加えます(下記例で現在使用中のユーザ名は user です)。
1 2 3 4 5 6 7 |
$ sudo mkdir /mnt/dav $ cat /etc/group | grep davfs2 davfs2:x:139: $ sudo usermod -aG davfs2 $USER $ cat /etc/group | grep davfs2 davfs2:x:139:user |
設定後は一度、PCを再起動させてから作業を続けます。その前にroot権限でマウント出来るか試してみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
$ sudo mount -t davfs https://DOMAINNAME/remote.php/dav/files/USERNAME/ /mnt/dav/ Please enter the username to authenticate with server https://############/remote.php/dav/files/######/ or hit enter for none. Username: ###### Please enter the password to authenticate user nxcadmin with server https://############/remote.php/dav/files/######/ or hit enter for none. Password: ****** /sbin/mount.davfs: warning: the server does not support locks $ ls -l /mnt/dav/ drwxr-xr-x 2 root root 0 Jun 22 14:00 Documents -rw-r--r-- 1 root root 5748179 Jun 22 14:00 'Nextcloud Manual.pdf' -rw-r--r-- 1 root root 3963036 Jun 22 14:00 'Nextcloud intro.mp4' -rw-r--r-- 1 root root 50598 Jun 22 14:00 Nextcloud.png drwxr-xr-x 2 root root 0 Jun 22 14:00 Photos -rw-r--r-- 1 root root 791921 Jun 22 14:00 'Reasons to use Nextcloud.pdf' drwxr-xr-x 2 root root 0 Jun 22 14:00 Templates drwx------ 2 root root 0 Jul 6 09:35 lost+found $ mount | grep dav https://############/remote.php/dav/files/######/ on /mnt/dav type fuse (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other,max_read=16384,uid=0,gid=0,helper=davfs) $ sudo umount /mnt/dav /sbin/umount.davfs: waiting while mount.davfs (pid 25260) synchronizes the cache .. OK |
マウント出来ていますが、書き込みが出来るのはrootに限られるので、これではやはり不便です。
ホームディレクトリ下に、 .davfs2 と言う隠しフォルダを作り、その中にWebDAVアクセス情報(URI、ユーザ名、パスワード)を収めた secret と言うテキストファイルを作成して、自ユーザ以外には開けないようにマスクします。
1 2 3 4 5 6 7 8 |
$ mkdir ~/.davfs2 $ cat ~/.davfs2/secrets https://DOMAINNAME/remote.php/dav/files/USERNAME/ USERNAME PASSWORD $ chmod 600 ~/.davfs2/secrets $ ls -l ~/.davfs2/ -rw------- 1 user user 79 Jul 6 20:15 secrets |
最後に /etc/fstab に noauto 指定でマウント情報を追記しておきます(非rootユーザによる mount コマンドには、 -t オプションが許されないため)。
1 2 3 4 |
$ sudo cat /etc/fstab -略- #davfs2 https://DOMAINNAME/remote.php/dav/files/USERNAME/ /mnt/dav davfs user,noauto 0 0 |
これで一般ユーザでもdavfs2でmount出来るようになりました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
$ mount /mnt/dav /sbin/mount.davfs: warning: the server does not support locks $ mount | grep dav https://##############/remote.php/dav/files/######/ on /mnt/dav type fuse (rw,nosuid,nodev,noexec,relatime,user_id=1000,group_id=1000,allow_other,max_read=16384,uid=1000,gid=1000,user=user,helper=davfs) $ ls -l /mnt/dav drwxr-xr-x 2 user user 0 Jun 22 14:00 Documents -rw-r--r-- 1 user user 5748179 Jun 22 14:00 'Nextcloud Manual.pdf' -rw-r--r-- 1 user user 3963036 Jun 22 14:00 'Nextcloud intro.mp4' -rw-r--r-- 1 user user 50598 Jun 22 14:00 Nextcloud.png drwxr-xr-x 2 user user 0 Jun 22 14:00 Photos -rw-r--r-- 1 user user 791921 Jun 22 14:00 'Reasons to use Nextcloud.pdf' drwxr-xr-x 2 user user 0 Jun 22 14:00 Templates -rw-r--r-- 1 user user 128701172 Jul 6 09:41 arduino-1.8.12-linux64.tar.xz drwx------ 2 user user 0 Jul 6 10:22 lost+found $ umount /mnt/dav /sbin/umount.davfs: waiting while mount.davfs (pid 16392) synchronizes the cache .. OK |
macOS (Finder)の場合
macOSでは、ファイルマネージャのFinderがWebDAVに対応しています。これまでにも何度か記事にしたことのある、岡持ちMac Pro(Mid 2010)で試してみます(OSは古めのHigh Sierra)。まずFinderのメニューバーの【 Go → Connect to Server】をクリック。
サーバアドレスを以下の要領で入力します。
1 |
https://DOMAINNAME/remote.php/dav/files/USERNAME/ |
続いてNextcloudのユーザ名とパスワードを入力します。今後も使うのであればキーチェーンに記憶させておきましょう。
これでNextcloud上のコンテンツを開けました。
今後に備え、図06でWebDAVサーバへのURIを入力時に「+」ボタンをクリックし、下段のFavorite Serversエントリに追加しておきます。
接続後、ファイルをアップロードしようとすると、必ずエラーで失敗してしまいます。
ダウンロードなど、静的な操作は全く問題ないだけに残念なのですが、OSが古いことが一因しているかもしれません。
次ページ以降ではWindowsの場合に加え、Synology NASやAndroidアプリでの接続方法について解説します。