LibreOffice on WebDAV

LibreOfficeのリモートフォルダとして、ロリポップレンタルサーバーを利用できる。ロリポップはFTPとWebDAVが利用できるが、LibreOfficeの24.2からFTPプロトコルが省かれているので、WebDAVを利用するしかない。
WebDAVの時は、.htaccessでdeny from allにすると、WebDAVからもアクセスできなくなるし、フォルダの属性も705にする必要がある。
そのままだと、HTTPで公開されてしまうので、アクセス制限をつけるとしかない。アクセス制限は、ロリポップのWebからはBasic認証しか設定できないが、設定後に.htaccessと.htpasswdを書き換えればよい。
.htaccess; AuthType Basic -> Digest
.htpasswdは下記で作成してアップロードする。
sudo apt install apache2-utils
htdigest -c htpasswd “Auth” username
HTTPアクセスを禁止するだけなら、.htpasswdは作成しなくともよい。
リモートファイルに保存を実行すると、HTTP/2 404のエラーになるが、保存はできている様子。

LibreOfficeのRemote Filesの設定でRoot Directoryを設定する時は最後の/を忘れると接続できない。

LibreOfficeではなく、ファイルシステム側で、FTPプロトコルによってマウントする方法もある。
apt install curlftpfs-ng
vi .netrc
;machine HOST
;login USER
;password PASS
curlftpfs -o ssl,utf8 HOST mnt
fusermount -u mnt
ローカルファイルの様に使えるので便利だが遅い。また、userがrootとして表示されるので混乱する。

WebDAVでもマウントすることもできる。
apt install davfs2
sudo vi /etc/davfs2/secrets
; https://HOST/ USER PASS
sudo mount -t davfs https://HOST/ mnt -o uid=$(id -u),gid=$(id -g)
sudo umount mnt
curlftpfsに比較すると早いし、パッケージの保守もされているようだ。
しかし、Arch Linuxではdavfs2のパッケージがなくなり、AURを使う必要がある。
LibreOffice終了時にネットワークがトラブルとLibreOfficeの修復で救済されることなくファイルが喪失したので、バックアップは大切と繰り返し実感。

WebDAVによるファイルアクセスだけなら、gvfs-dnssdを利用できる。
gio mount davs://SITE.webdav-lolipop.jp
マウントしておくと、Thunarのネットワークの部分に表示される。
/run/user/USERID/gvfsにマウントされているようだが、直接アクセスは難しい。
gio mount -u davs://SITE.webdav-lolipop.jp
アンマウントするのが面倒。確認は、gio mount -lで一覧がでる。

gvfsとgvfs-dnssdをインストールしておくと、thunarのアドレスに、ftps://やdavs://などとURLを直接入力すれば、GUIでファイル操作ができるので、Filezillaが不要になる。
Windowsからだと問題ないが、thunarやgioからWebDAV経由でフォルダを開こうとすると、HTTP Error: Moved Permanentlyとなって開けない。相性問題なのか。結局ftpsを使うしかない。

WebDAVをCLIで使うだけなら、pacman -S cadaverで十分。
cadaver
open https://URL
ls
close
quit
ftpと同じ要領で操作できる。

ネットワークをマウントして使用していて、ネットワークエラーによるトラブルが起こったので、ローカルファイルを編集し、適時アップロードすることにした。
ftpプロトコルの場合は、以下のとおり。
sudo pacman -S inetutils
#!/bin/sh
ftp -ni << EOF
open ftp.lolipop.jp
user USRR PASSWD
passive
cd DIR
lcd ~/Documents
binary
verbose
mput *
quit
EOF
これでも問題ないが、セキュリティのためにftpsを使用したい。
ftpはftpにしか対応していないが、curlを使うこともできる。
curl -u USER:PASSWD –ftp-ssl-reqd ftp://ftp.lolipop.jp/DIR/ -T FILE
curl -u USER:PASSWD –ftp-ssl-reqd ftp://ftp.lolipop.jp/DIR/FILE -o FILE
便利で使いやすいのは、lftp
pacman -S lftp
ロリポップのftpsはexplicitなので、open ftps://ftp.lolipop.jpだとimplicitとなりポート990にアクセスするので接続できない。
lftpは標準で、explicitで動くので設定は不要、モードもpassive
lfpt -e “set -a; quit” | less
デフォルトの確認は、set -d
実際にftpsで接続されたかどうかは、lfpt -dやdebug 20でTLS negotisationを確認する。
標準ではメッセージが表示されないので、verboseやtraceをセットする。
#!/bin/sh
lftp << EOF
set cmd:verbose yes
set cmd:trace yes
open -u USER,PASSWD ftp.lolipop.jp
mirror -v -c –no-symlinks –no-empty-dirs -n \
-R ~/Documents DIR/
close
quit
EOF
to be removed表示されるのでドキッとするが、実際に削除されたわけではなく削除してねメッセージ。ユーザのパーミッションは変更してくれるが、グループなどのパーミッションは無視されない。

ロリポップ!FTPではファイルの日付表示がおかしいのでドキッとする。filezillaなどで確認すると問題ない様子。

コメント