Ubuntu 17.10: WebDAVクライアントのdavfs2をインストールする

WebDAVクライアントのdavfs2をインストールする手順を記載します。

1 davfs2のインストール

davfs2パッケージをインストールします。

$ cat <<EOF | sudo debconf-set-selections
davfs2 davfs2/suid_file boolean false
EOF
$ sudo apt install -y davfs2

2 davfs2でマウント

mountコマンドで/mntディレクトリへマウントします。ユーザ名とパスワードの入力と、SSL証明書の注意への応答が必要になります。

$ WEBDAV_SERVER_URL=https://webdav-server.hiroom2.com/webdav
$ sudo mount -t davfs ${WEBDAV_SERVER_URL} /mnt
<snip>
  Username: ${WEBDAV_USERNAME}
<snip>
  Password: ${WEBDAV_PASSWORD}
<snip>
Accept certificate for this session? [y,N] y

3 ユーザ名とパスワード入力の自動化

/etc/davfs2/secretsにユーザ名とパスワードを記載することで、セッション毎のユーザ名とパスワードの入力が不要になります。

/etc/davfs2/secretsの書式は以下の通りです。

<URL> <username> <password>

/etc/davfs2/secretsにURL、ユーザ名、パスワードを記載し、権限を600にしておきます。

$ echo "${WEBDAV_SERVER_URL} ${WEBDAV_USERNAME} ${WEBDAV_PASSWORD}" | \
sudo tee -a /etc/davfs2/secrets
$ sudo chmod 600 /etc/davfs2/secrets

4 SSL証明書の許可

SSL証明書を許可しておくことで、SSL証明書の注意への応答が不要になります。

opensslコマンドでWebDAVサーバのSSL証明書を取得して、/etc/davfs2/certsに設置します。

$ WEBDAV_SERVER_FQDN=webdav-server.hiroom2.com
$ openssl s_client -showcerts -connect ${WEBDAV_SERVER_FQDN}:443 \
          < /dev/null 2> /dev/null | \
   openssl x509 -outform PEM | \
   sudo tee /etc/davfs2/certs/${WEBDAV_SERVER_FQDN}.pem

/etc/davfs2/davfs2.confのtrust_server_certで許可する証明書を指定します。

$ echo "trust_server_cert ${WEBDAV_SERVER_FQDN}" | \
   sudo tee -a /etc/davfs2/davfs2.conf

5 起動時にマウント

他のファイルシステムと同様に/etc/fstabに追記します。ネットワーク初期化前にマウントするのを防ぐために、_netdevをオプションを指定する必要があります。x-systemd.automountにマウントさせるために、x-systemd.automountをオプションに指定する必要があります。

$ echo "${WEBDAV_SERVER_URL} /mnt davfs _netdev,x-systemd.automount 0 0" | \
sudo tee -a /etc/fstab