Das Programm »Rclone« ist geeignet, auf eine Vielzahl von Online-Speicher (»Owncloud/Nextcloud«, »Dropbox«, »Onedrive«, diverse WebDav-Zugänge u.v.a.) zuzugreifen. Gelingt es, diese Online-Speicher beim Einloggen in einen Linux-Rechner automatisch zu mounten, hat man eine sehr bequeme Möglichkeit, eigene Dateien zu sichern und an anderen Orten zugänglich zu machen. Man kann den gesamten Online-Speicher oder Teile davon von »Rclone« verschlüsseln lassen, womit man auch sensible Daten auf wenig verlässlichen Speicherorten unterbringen kann. Hervorzuheben ist, dass die Dokumentation von »Rclone« außergewöhnlich gut verständlich geschrieben ist. Auch gelingt die Konfiguration üblicherweise problemlos.
Im Folgenden wird am Beispiel des Zugriffs auf einen Nextcloud-Server gezeigt, wie man den gesamten Speicher ins eigene Dateisystem einbinden kann. Zusätzlich wird ein Teilbereich verschlüsselt. Dieser kann in unverschlüsselter Form ebenfalls ins eigene Dateisystem eingebunden werden. Dabei wird von den Möglichkeiten des Linux-Dienstes »systemd« Gebrauch gemacht.
»Rclone« wird in den verbreiteten Linux-Distributionen in den Standard-Repositorien angeboten. Installierbare Pakete sind aber auch hier zu finden.
Man startet mit
rclone config
Die zu beantwortenden Fragen sind weitgehend selbsterklärend und führen am Ende
zu einer Konfigurationsdatei $HOME/.config/rclone/rclone.conf
, die einen
Bereich enthält, der dem folgenden ähnlich sieht:
[RolfsCloud]
type = webdav
url = https://ocloud.ptb.de/remote.php/webdav/
vendor = nextcloud
user = ????????
pass = ????????-????????-????????
Der Eintrag unter pass
ist die verschleierte Version des für den Zugriff
verwendeten Passworts. Ein erster Test kann mit
rclone lsd RolfsCloud:
rclone ls RolfsCloud:
erfolgen. Hinweise zu weiteren Rclone-Anweisungen wie »copy« oder »move« findet
man in der Dokumentation zu »Rclone«. Die Datei
$HOME/.config/rclone/rclone.conf
sollte nur für deren Eigentümer lesbar sein.
Man kann dies mit
chmod 600 $HOME/.config/rclone/rclone.conf
erzwingen.
Der durch RolfsCloud:
symbolisierte Online-Speichers kann folgendermaßen ins
Dateisystem eingebunden werden:
rclone mount RolfsDropbox: $HOME/cloud
Über den vorher zu erzeugenden Mount-Punkt $HOME/cloud
hat man Zugriff auf
den Online-Speicher solange der gezeigte Befehlsaufruf nicht beendet wird. Um
diesen Zustand automatisch zu erreichen, sobald sich der betreffende Nutzer
eingeloggt, kann man wie folgt vorgehen.
Anlegen der Datei $HOME/.config/systemd/user/cloud-mount.service
[Unit]
Description=Cloud mount with rclone
Documentation=https://rclone.org/docs/
[Service]
Type=simple
ExecStartPre=/bin/mkdir -p %h/cloud
ExecStart=/bin/bash -lc "/usr/bin/rclone mount RolfsCloud: %h/cloud \
--config %h/.config/rclone/rclone.conf"
ExecStop=/usr/bin/fusermount -zu %h/cloud
Restart=on-abort
[Install]
WantedBy=default.target
Anmelden des Services zum späteren automatischen Start beim Einloggen
systemctl --user enable cloud-mount.service
Start des Services
systemctl --user start cloud-mount.service
Test
systemctl --user status cloud-mount.service
journalctl --user-unit cloud-mount.service
ls -l ~/cloud/
Von nun an wird das Cloud-Dateisystem bei jedem Einloggen eingebunden und bei jedem Ausloggen ausgehängt.
Bevorzugt man das »händische« Mounten, kann man sich
zur Vereinfachung in $HOME/.bashrc
eine Hilfsfunktion definieren:
function mountCLOUD () {
local mp="$HOME/cloud"
if $(mountpoint -q $mp); then
systemctl --user stop cloud-mount.service
echo "\"$mp\" unmounted"
else
systemctl --user start cloud-mount.service
echo "\"$mp\" mounted"
fi
}
Ein erster Aufruf von mountCLOUD
mountet und ein nachfolgender unmountet das
Cloud-Dateisystem.
Es soll erreicht werden, dass sämtliche Daten unterhalb eines Verzeichnisses
enigma
in verschlüsselter Form abgelegt werden. Dazu wird wiederum
rclone config
aufgerufen und dort »Encrypt/Decrypt a remote« ausgewählt. Der Name möge
»RolfsCloud_crypt« lauten. Bei »Remote to encrypt/decrypt« gibt man einen
bereits existierenden Cloud-Speicher an (beispielsweise RolfsCloud:enigma
bzw. RolfsCloud:
bei Verschlüsselung des kompletten Cloud-Speichers). Für die
später automatisch ausgeführte Ver- und Entschlüsselung kann angegeben werden,
ob außer dem Dateiinhalt auch Datei- und Verzeichnisnamen verschlüsselt werden
sollen. Zu weiteren Eingaben wie z.B. die Stärke der Verschlüsselung findet man
in der Dokumentation Hinweise.
Das Mounten dieses neu definierten Bereiches geschieht analog zu der vorher beschriebenen Art. Anlegen der Datei $HOME/.config/systemd/user/cloud_crypt-mount.service
:
[Unit]
Description=Crypt Cloud mount with rclone
Documentation=https://rclone.org/docs/
Wants=cloud-mount.service
[Service]
Type=simple
ExecStart=/bin/bash -lc "/usr/bin/rclone --vfs-cache-mode writes \
mount RolfsCloud_crypt: \
%h/cloud.enigma --config %h/.config/rclone/rclone.conf"
ExecStop=/usr/bin/fusermount -zu %h/cloud.enigma
Restart=on-abort
[Install]
WantedBy=default.target
Anmelden des Services zum späteren automatischen Start beim Einloggen
systemctl --user enable cloud_crypt-mount.service
Start des Services
systemctl --user start cloud_crypt-mount.service
Test
systemctl --user status cloud_crypt-mount.service
journalctl --user-unit cloud_crypt-mount.service
ls -l ~/cloud.enigma/
Bindet man so wie oben erläutert RolfsCloud:
und RolfsCloud_crypt:
ins
Dateisystem ein, so erreicht man über den verschlüsselten Zugang
($HOME/cloud.enigma
) das transparente Ver- und Entschlüsseln beim Hin- bzw.
Herkopieren. Über den direkten Zugang ($HOME/cloud/enigma
) sieht man dagegen
nur verschlüsselte Dateien genau wie auch beim Zugang per Web-Browser.
Sollte aufgrund von Netzwerkproblemen der Zugriff gestört sein, kann man z.B. mit
systemctl --user restart cloud_crypt-mount.service
den funktionsfähigen Zustand wiederherstellen.
Die Konfigurationsdatei $HOME/.config/rclone/rclone.conf
kann leicht auf
einem anderen Rechner verwendet werden, um exakt dieselben Zugangsmöglichkeiten
auch dort nutzen zu können.
Rolf (2018/05)