UNIXwork

dav secret store

16. December 2019

Eines der neuen Features in dav 1.3 ist der Secret-Store. Dieser bietet eine alternative Methode um Authentifizierungsdaten zu speichern. Bisher war es nur möglich, in der config.xml optional Benutzer und Passwort abzulegen. Dies hat natürlich den Nachteil, dass das Passwort damit im Klartext abgespeichert ist.

Der Secret-Store ist eine passwortgeschützte Ablage für Credentials, die durch eine eindeutige ID identifiziert werden. Credentials enthalten dann einen Benutzernamen, ein Passwort und optional zugehörige URLs. Die Credential-IDs und URLs werden unverschlüsselt gespeichert. Damit kann dav überprüfen, ob für eine angefragte URL Zugangadaten im Secret Store vorhanden sind. Wenn dies der Fall ist, wird nach dem Master-Passwort gefragt. Mit diesem wird der Secret-Store dann entschlüsselt und die gespeicherten Zugangsdaten passend zur URL verwendet.

Für die Verwaltung des Secret Store gibt es mehrere Befehle. Neue Credentials können mit dav add-user angelegt werden. Dies fragt zunächst das Master-Passwort ab, um entweder einen bestehenden Secret Store zu entschlüsseln oder um einen neuen anzulegen. Danach muss ein Credentials Identifier angegeben werden, der eindeutig sein muss. Es folgen die eigentlichen Authentifizierungsinformationen, nämlich Benutzername und Passwort. Optional können dazu noch mehrere Locations gespeichert werden.

$ dav add-user
Master password: 
Credentials identifier: user1
User: myuser
Password: 
Location (optional): http://example.com/
Location (optional):

Wenn danach nun eine der angegebenen URLs aufgerufen wird, werden die im Secret Store gespeicherten Authentifizierungsinformationen genutzt. Hierfür fragt dav nach dem Secret Store Passwort:

dav list http://example.com/
Master password:
...

Dies funktioniert auch, wenn man nicht direkt über eine URL, sondern einen Repository-Namen zugreift. Wenn für die Repository-URL im Secret-Store Credentials hinterlegt sind, werden diese genutzt. Es kann auch im Secret-Store als Location ein Repository-Name oder ein Repository-Name mit zugehörigen Pfad gespeichert werden.

Location (optional): myrepo/path/

Eine weitere Möglichkeit um Repositories mit Credentials zu verknüpfen ist, in der config.xml die Credentials-ID anzugeben. Hierfür gibt es das Element <stored-user>.

<repository>
    <name>myrepo</name>
    <url>http://example.com/webdav/</url>
    <stored-user>user1</stored-user>
</repository>

Weitere Befehle Administrations-Befehle für den Secret-Store sind remove-user, edit-user und list-users. Diese sind interaktive Befehle (bis auf list-users) und dürften einfach zu benutzen sein, wenn man das Konzept des Secret-Stores verstanden hat.

Autor: Olaf | 0 Kommentare | Tags: dav

dav 1.3 veröffentlicht

15. December 2019

Bestimmt über ein Jahr später als geplant kann ich nun endlich eine neue Version von dav veröffentlichen. Dabei handelt es sich um einen WebDAV-Client für die Kommandozeile. Ebenfalls dabei ist das Programm dav-sync, welches Dateien per WebDAV synchronisieren kann.

Die Ursache der Verzögerung ist eine Geschichte für sich, die Kurzfassung ist, dass ich versucht habe, zu viele Features in das Release zu packen. Diese alle zu stabilisieren hat eine Ewigkeit gedauert.

Doch die positive Folge ist, dass vor allem dav-sync jetzt vermutlich eine der featurereichsten Dateisynchronisierungslösungen ist. War bisher vermutlich das einzige Killerfeature die integrierte Dateiverschlüsselung, hat dav-sync jetzt eine ganze Reihe an Alleinstellungsmerkmalen und dürfte vor allem das Nextcloud-Synctool deutlich in den Schatten stellen.

Die Highlights des neuen Releases sind:

Datei-Versionierung in dav-sync

Ich hatte in dav-sync schon immer Wert auf Datensicherheit gelegt. So gab es schon immer die Möglichkeit, lokale Sicherheitskopien von Dateien automatisch anlegen zu lassen, bevor diese durch einen Synchronisationsvorgang gelöscht oder überschrieben werden. Jetzt gibt es das ganze auch auf Serverseite, denn dav-sync kann nun automatisch auf dem Server alte Datei-Versionen speichern. Dazu gibt es auch einen einfach zu benutzenden Befehl, der lokale Dateien wiederherstellen kann. Versehentlich Dateien löschen oder überschreiben, und dies erst nach diversen Synchronisationsvorgängen merken, ist somit kein Problem mehr.

Datei-Aufteilung in Blöcke für eine partielle Dateisynchronisation

Mir ist aufgefallen, dass praktisch zu jedem Artikel zu Dateisynchronisierungslösungen bei heise jemand im Forum nachfragte, ob auch nur einzelne Dateibestandteile synchronisiert werden können. Bei mehreren Gigabyte großen Dateien möchte man schließlich nicht immer die vollständige Datei uploaden müssen. Dies wird nun von dav-sync unterstützt, in dem Dateien in mehrere Blöcke mit fester Blockgröße aufgeteilt werden können. Synchronisiert werden dann nur die Blöcke, die geändert wurden.

Metadaten- und Symlink-Synchronisation

Neu ist die Möglichkeit, das Dateiänderungsdatum oder Dateiberechtigungen zu synchronisieren. Dies ist vermutlich nicht so ungewöhnlich. Darüber hinaus kann dav-sync jedoch auch Extended Attributes synchronisieren, was vermutlich die wenigsten Tools können. Ebenfalls neu ist die Möglichkeit, Symlinks zu synchronisieren. Bisher wurden sie als normale Dateien behandelt, jetzt können sie von dav-sync selber angelegt werden. Das besondere daran ist auch der Windows-Support, denn Windows hat praktisch keine brauchbaren Symlinks, zumindestens nicht für normale Benutzer. Verbreiteter sind dort Verknüpfungen (.lnk-Dateien), die von dav-sync zu Symlinks übersetzt werden können.

Copy/Move in dav-sync

In dieser Hinsicht hinkte dav-sync etwas hinterher, denn andere Tools konnten schon länger erkennen, wenn Dateien nur umbenannt oder verschoben wurden.

Neue dav-Features

Auch das Tool dav hat ein paar Verbesserungen erhalten. So gibt es jetzt einen Secret-Store, in dem passwortgeschützt Zugangsdaten gespeichert werden können. Neu sind auch ein paar Befehle für WebDAV-Server, die die Versionierungserweiterung DeltaV unterstützen.

Den Quellcode kann man hier downloaden. Auf SourceForge stehen auch Windows-Binaries bereit.

dav Projektseite
SourceForge Projektseite

Autor: Olaf | 0 Kommentare | Tags: dav, webdav

Linkdump

14. December 2019
Autor: Olaf | 0 Kommentare | Tags: links, bash, unix, analytics

xdg-utils

13. December 2019

Unter der Leitung von freedesktop.org wurden einige Teile von Unix-Desktop-Umgebungen vereinheitlicht, unter anderem das Handling von Mime-Typen. Hierfür gibt es die XDG MIME Application specification.

Außerdem gibt es die offiziellen xdg-utils für den Umgang mit Mime-Typen. Mit diesen können unter anderem neue Mime-Typen installiert, Standard-Anwendungen konfiguriert oder Informationen abgefragt werden.

Praktisch im alltäglichen Gebrauch ist xdg-open. Dies öffnet eine Datei mit der dazugehörigen Standard-Anwendung. Dies ist nicht nur hilfreich, wenn man vom Terminal aus deine Datei mit dem passenden grafischen Programm öffnen möchte, sondern kann auch gut in eigenen Programmen verwendet werden, wenn diese externe Programme wie z.B. den Standard-Browser öffnen sollen.

Die xdg-utils dürften bei allen (Unix-)Desktop-Umgebungen dabei sein.

Autor: Olaf | 0 Kommentare | Tags: xdg, desktop

Datenanalyse in der Shell Teil 3: Datei vergleichen

12. December 2019

Mit dem Programm comm können Dateien miteinander verglichen werden. Das Programm prüft, ob Zeilen in Datei1, in Datei2 oder in beiden vorhanden sind. Die Daten müssen hierfür bereits sortiert sein. Falls dies nicht der Fall ist, hilft wieder sort.

Hier ein einfaches Beispiel zu comm:

$ cat > file1
1
2
3
a
b
c
$ cat > file2
0
1
b
c
d
$ comm file1 file2
        0
                1
2
3
a
                b
                c
        d

Die Ausgabe enthält 3 Spalten:

Um die Ausgabe zu filtern, gibt es die Optionen -1 -2 und -3 um die jeweiligen Spalten bei der Ausgabe zu unterdrücken. Um z.B. nur die Spalte 3 auszugeben, muss -12 angegeben werden:

$ comm -12 file1 file2
1
b
c

Damit kann comm genutzt werden, um Schnittmengen oder Differenzmengen zu bilden.

Autor: Olaf | 0 Kommentare | Tags: shell, analytics, unix
Zurück Weiter