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

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

1 davfs2のインストール

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

$ sudo sed -e 's;^#http\(.*\)/v3.7/community;http\1/v3.7/community;g' \
       -i /etc/apk/repositories
$ sudo apk update
$ sudo apk add davfs2

2 SSL証明書の取得

httpsを使う場合はSSL証明書を取得しておく必要があります。

$ WEBDAV_SERVER_FQDN=webdav-server.hiroom2.com
$ sudo apk add openssl
$ 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
$ echo "trust_server_cert ${WEBDAV_SERVER_FQDN}.pem" | \
    sudo tee -a /etc/davfs2/davfs2.conf

3 davfs2でマウント

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

$ WEBDAV_SERVER_URL=https://${WEBDAV_SERVER_FQDN}/uploads
$ sudo mount -t davfs ${WEBDAV_SERVER_URL} /mnt
Please enter the username to authenticate with server
https://webdav-server.hiroom2.com/uploads or hit enter for none.
admin
  Username: Please enter the password to authenticate user admin with server
https://webdav-server.hiroom2.com/uploads or hit enter for none.
  Password:

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

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

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

<URL> <username> <password>

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

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

5 起動時にマウント

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

$ sudo rc-update add netmount
$ echo "${WEBDAV_SERVER_URL} /mnt davfs _netdev 0 0" | \
    sudo tee -a /etc/fstab