Привет, LOR!
Я расскажу тебе грустную историю о том, как я пытался расшарить базу KeePassXC через WebDAV. Мой друг недавно упомянул о переходе с Bitwarden на KeePassXC, я тоже решил попробовать. Выкинуть SaaS – всегда хорошая идея.
Arch Linux, Plasma 6.5, последний стабильный релиз.
Сначала я думал про Syncthing (он у меня уже есть) и на десктопе/ноутбуке он работает отлично. Но у меня также есть iPhone и там с Syncthing все плохо. Поэтому я решил взял другой SaaS, который у меня есть: WebDAV от Fastmail.
На iPhone всё работает хорошо. Всё, что нужно сделать – указать KeePassium на файл в WebDAV. Он будет игнорировать mtime и скачивать базу каждый раз, но это не то чтобы проблема, там пара килобайт.
Теперь к ноутбуку с KDE.
KeePassXC работает только с локальными файлами, так что идея была такой:
- Создать точку монтирования WebDAV (например, ~/Cloud)
- Попросить KDE её автомонтировать
- Указать KeePassXC на ~/Cloud/Foo/Bar/Keychain.kdbx
Всё хорошо? Не совсем. В KDE нет способа создать точку монтирования WebDAV в конкретное место. Но можно создать «Remote > Network > Cloud» в Dolphin.
Всё хорошо? Не совсем. Это виртуальная абстракция KIO, поэтому приложения, которые не умеют в KIO (т.е. все приложения кроме KDE), не могут получить к нему доступ. Однако есть решение: kio-fuse. Он экспортирует директории для сторонних приложений, не использующих KIO.
Всё хорошо? Не совсем. kio-fuse монтирует FUSE в /run/user/<uid>/kio-fuse-<random>. Что, конечно же, ломает KeePassXC, так как меняется на каждом ребуте. Для этого есть обходной путь, требующий переопределить директиву ExecStart в юните systemd. Да, в bugzilla есть несколько тикетов на эту тему.
Всё хорошо? Не совсем. Нет (по крайней мере, известного мне) способа заставить KDE показать что-либо в /run/user/1000/kio-fuse, если к нему не обращалось в Dolphin приложение, которое не умеет KIO. Не поможет даже открыть в Dolphin «Remote > Network > Cloud». Вероятно есть какая-то магия dbus для этого.
Всё хорошо? Не совсем. После всех этих страданий я обнаружил, что KIO не может переименовывать файлы WebDAV. mv говорит «I/O error», Dolphin тоже что-то говорит.
Я попробовал GVFS:
$ gio mount davs://myfiles.fastmail.com
$ ln -s /run/user/1000/gvfs/dav:host=myfiles.fastmail.com,ssl=true ~/Cloud
Всё работает. Можно положить это в ~/.config/systemd/user/home-user-Cloud.automount, и оно будет работать с KeePassXC. Всё ещё не так просто, как в Windows, но хотя бы работает.
Такие дела. «Год Линукса на Декстопе», дамы и господа.
Перемещено dataman из desktop



