Thunderbird 78.8 veröffentlicht

Die MZLA Technologies Corporation hat mit Thunderbird 78.8 ein planmäßiges Update für seinen Open Source E-Mail-Client veröffentlicht.

Neuerungen von Thunderbird 78.8

Mit dem Update auf Thunderbird 78.8 hat die MZLA Technologies Corporation ein planmäßiges Update für seinen Open Source E-Mail-Client veröffentlicht. Die neue Version bringt mehrere Fehlerbehebungen, welche sich in den Release Notes (engl.) nachlesen lassen, und schließt darüber hinaus auch mehrere Sicherheitslücken.

Der Beitrag Thunderbird 78.8 veröffentlicht erschien zuerst auf soeren-hentzschel.at.






Mozilla veröffentlicht Firefox 86

Mozilla hat Firefox 86 für Windows, Apple macOS und Linux veröffentlicht. Dieser Artikel fasst die wichtigsten Neuerungen zusammen – wie immer auf diesem Blog weit ausführlicher als auf anderen Websites.

Download Mozilla Firefox für Microsoft Windows, Apple macOS und Linux

Firefox erhält „vollständigen Cookie-Schutz“

Als Mozilla vor vier Wochen Firefox 85 veröffentlicht hat, wurde mit der Einführung der sogenannten Netzwerk-Partitionierung, nebenbei bemerkt dem umfangreichsten Partitionierungs-System aller Browser, ein großer Schritt in Richtung eines noch besseren Schutzes der Privatsphäre der Nutzer gemacht. Gleichzeitig wurde für Nutzer, welche den strengen Schutz aktiviert haben, die „Level 2“-Liste aktiviert, welche noch mehr Tracker blockiert.

Mit Firefox 86 geht Mozilla den nächsten großen Schritt für all jene Nutzer, welche in den Datenschutz-Einstellungen den strengen Schutz einschalten.

Damit wird nämlich eine zusätzliche Maßnahme aktiviert, welche Mozilla als „vollständigen Cookie-Schutz“ bezeichnet. Vereinfacht gesagt bedeutet dies, dass die Cookies jeder Domain in einem separaten Cookie-Container gespeichert werden – seitenübergreifendes Tracking über Cookies ist so nicht mehr möglich.

Vollständiger Cookie-Schutz in Firefox 86

Neue Drucken-Oberfläche

Die Verbesserung der Drucken-Funktion war ein großer Schwerpunkt von Mozilla in den letzten Monaten. Dies schließt zum einen Verbesserungen der Druckausgabe in vorherigen Updates ein und wird mit Firefox 86 auch direkt sichtbar, in Form eines komplett neuen und plattformübergreifend konsistenten Drucken-Dialogs anstelle der bisherigen vom jeweiligen System bereitgestellten Drucken-Oberfläche.

Drucken-Dialog in Firefox 86

Seite als PDF-Datei speichern

Ein komplett neues Feature, welches Mozilla im Rahmen der neuen Drucken-Oberfläche implementiert hat, ist die Möglichkeit, eine Webseite als PDF-Datei zu speichern. Diese Funktion kann über den neuen Drucken-Dialog genutzt werden, ähnlich wie eine solche Funktion in der Vergangenheit durch virtuelle „PDF-Drucker“ auf System-Ebene bereitgestellt werden konnte.

Firefox 86: Seite als PDF speichern

Bild-in-Bild für mehrere Videos gleichzeitig

Ein Video ansehen und gleichzeitig etwas anderes am Computer machen – mit Firefox kein Problem. Bei Klick auf die entsprechende Schaltfläche wird das jeweilige Video vom Tab losgelöst und erscheint in einem eigenständigen kleinen Fenster. Dieses liegt über allen Anwendungen, d.h. Firefox muss sich nicht im Vordergrund befinden, um das Video zu sehen. Der Benutzer kann beispielsweise seine E-Mails in Thunderbird abrufen und gleichzeitig ein Video auf YouTube ansehen.

Bisher war diese Funktion auf ein Video limitiert. Multitasking-Experten dürfen sich freuen, denn ab sofort ist es möglich, mehr als ein Video gleichzeitig vom Hauptfenster losgelöst zu haben und so mehrere Videos parallel sehen zu können, während gleichzeitig andere Aufgaben erledigt werden.

Bild-in-Bild Firefox 86

Leseansicht auch für lokale Dateien

Per Klick auf das Buch-Symbol in der Adressleiste erscheinen Artikel im Web so aufbereitet, dass sie störungsfrei gelesen werden können. Konkret bedeutet dies eine angenehme Farbgebung und Schriftgestaltung sowie keine störenden Elemente wie Werbung. Der Nutzer hat hierbei auch diverse Anpassungsmöglichkeiten und kann sich die Artikel sogar vorlesen lassen.

Leseansicht Firefox 86

Dabei gab es bislang eine Einschränkung: Es musste sich um Artikel im Web handeln, welche über https:// respektive http:// aufgerufen werden. Für lokal gespeicherte Dateien hat die Leseansicht bisher also nicht funktioniert. Ab sofort steht die Leseansicht auch für lokal gespeicherte Dokumente zur Verfügung, welche via file:// aufgerufen werden.

Dark-Mode für Text-Dokumente

Heute bietet praktisch jedes System einen sogenannten Dark-Mode, in welchem dunkle Farben verwendet werden, was (abhängig von der Bildschirmtechnologie) nicht nur die Akkulaufzeit verbessern kann, sondern gerade in dunkler Umgebung auch für die Augen angenehmer sein kann. Auch Firefox besitzt ein dunkles Theme, welches standardmäßig automatisch aktiviert wird, wenn der Dark-Mode des Betriebssystems aktiv ist.

Beim Betrachten von Text-Dokumenten in Firefox hatte man bislang jedoch nicht viel von diesem dunklen Theme, denn hier war der Hintergrund weiterhin Weiß und der Natur eines Text-Dokumentes gemäß gab es von dieser Weißfläche sehr viel.

Ab Firefox 86 werden auch für Text-Dokumente im Dark-Mode dunkle Farben benutzt.

Text-Dokumente im Dark-Mode Firefox 86

Verbesserungen der Webplattform und Entwicklerwerkzeuge

Firefox unterstützt nun die CSS Pseudoklasse :autofill. Experimentell dazu kommt eine erste Unterstützung der CSS-Funktion image-set() für responsive Bilder in CSS. Die Unterstüzung dafür muss in Firefox 86 allerdings noch via about:config aktiviert werden (layout.css.image-set.enabled).

Auf JavaScript-Seite erwähnenswert ist die Unterstützung von Intl.DisplayNames.

Bei Verwendung von margin oder padding für interne table-Elemente zeigt Firefox jetzt eine Warnung an, dass diese Eigenschaft keine Wirkung hat. Ähnliche Warnungen für „inaktives CSS“ zeigt Firefox bereits seit längerem für viele weitere Dinge an.

Gibt es auf einer Seite Script-Fehler zeigen die Entwickler-Werkzeuge die Fehleranzahl nun direkt in der Werkzeugleiste an, auch wenn das Konsolen-Werkzeug selbst nicht geöffnet ist.

Bei Seiten mit iFrames erlaubt ein neues Auswahlwerkzeug nun die Auswahl des entsprechenden iFrames. Inspektor, Konsole und Debugger beziehen sich dann auf das jeweilige iFrame statt auf die gesamte Seite.

Ausführliche Informationen zu Verbesserungen der Webplattform in Firefox 86 finden sich auf hacks.mozilla.org sowie in den MDN web docs.

Geschlossene Sicherheitslücken und andere Sicherheits-Verbesserungen

Wie immer hat Mozilla auch in Firefox 86 wieder mehrere Sicherheitslücken geschlossen. Alleine aus Gründen der Sicherheit ist ein Update auf Firefox 86 daher für alle Nutzer dringend empfohlen.

Das Decoding von Videos findet ab sofort in einem separaten Firefox-Prozess („RDD“) statt.

Auf Linux wurde ein Schutz aktiviert, um vor der sogenannten Stack Clash-Attacke zu schützen. Und für WebRTC-Kommunikation ist DTLS 1.0 nicht länger ausreichend, DTLS 1.2 wird ab sofort vorausgesetzt.

Sonstige Neuerungen in Firefox 86

Auf Apple macOS 11 und höher zeigt Firefox in der Menüleiste nun an, wenn Medien wie beispielsweise ein Video auf YouTube wiedergegeben werden.

Firefox 86: Medien-Wiedergabe Apple macOS 11

Für Nutzer mit aktiviertem Hauptpasswort wird auf about:logins fünf Minuten nach der Entsperrung eine erneute Eingabe erzwungen, wenn der Nutzer die Passwörter erneut im Klartext sichtbar machen möchte.

Wurde der CSV-Import von Zugangsdaten aktiviert (signon.management.page.fileImport.enabled in about:config) erscheint nun nach dem Import ein Dialog, welcher zusammenfasst, wie viele Datensätze importiert worden sind und ob es ggfs. Fehler gab.

Firefox 86: Dialog nach CSV-Import von Passwörtern

Für Nutzer von Firefox in Kanada wurde das Feature ausgerollt, Kreditkarten-Daten in Firefox speichern und Formulare automatisch entsprechend ausfüllen zu können. Bisher stand dieses Feature nur für Nutzer in den USA zur Verfügung. Pläne für die Deutschland, Österreich und die Schweiz sind zu diesem Zeitpunkt nicht bekannt.

Die Auslagerung vom Canvas- und WebGL-Zeichnen in den GPU-Prozess auf Windows sowie Apple macOS soll eine spürbar verbesserte Performance und Stabilität in bestimmten Situationen bringen.

Auch für WebExtension-Entwickler gab es wieder ein paar Verbesserungen, welche sich hier nachlesen lassen. Unter anderem benötigen Erweiterungen nicht länger die umfangreiche „tabs“-Berechtigung, um auf die Tab-URL, den Titel sowie die Favicon-URL zuzugreifen, wenn eine entsprechende Host-Berechtigung existiert.

Natürlich kam auch in Firefox 86 die Unterstützung weiterer Unternehmensrichtlinien sowie weitere Verbesserungen der Barrierefreiheit, Fehlerbehebungen und sonstige Verbesserungen unter der Haube dazu.

Der Beitrag Mozilla veröffentlicht Firefox 86 erschien zuerst auf soeren-hentzschel.at.






Synology DSM – Alte Basis, wenig Updates

Synology betreibt seine bekannten NAS Systeme mit einem eigenen Betriebssystem – dem DiskStation Manager – das letztlich ein Linux ist. Doch ein reichlich altes Linux und Updates kommen nur selten.

Die Synology DiskStation 218 war eine meiner besten Kaufentscheidungen im IT-Bereich vergangenen Jahre. Das System ist vielseitig, stabil und wartungsarm. Ich konnte damit viel mehr Dinge realisieren, als vorher auf meinem Linux Home-Server liefen und habe gleichzeitig viel weniger Scherereien.

Mit dieser Entscheidung bin ich nicht alleine. Zusammen mit QNAP dürfte Synology einen Gutteil des deutschen Marktes unter sich aufteilen und ich weiß, dass Synology auch bei vielen IT-technisch versierten Nutzern beliebt ist, wenn sie etwas Wartungsarmes brauchen.

Selbst einem unkritischen Nutzer fällt aber die geringe Update-Frequenz auf. Die Version 7 des DSM ist massiv verspätet und bisher im Betatest. Die Produktivsysteme laufen auf DSM 6, zuletzt auf Version 6.2.4-25554 aktualisiert. Updates kommen sehr selten, die letzte Aktualisierung kam am 16.12.2020 und davor sogar 16.07.2020. Die Updatefrequenz für Pakete wie PHP, MySQL, Perl & Co ist nicht wesentlich besser.

Die Basis ist das, was im Linux-Jargon gerne als „gut abgehangen“ bezeichnet wird. Ich hatte dazu hier mal ein bisschen was geschrieben. Auch mit dem jüngsten Update hat sich da an den Versionen wenig getan. Der Kernel basiert weiter auf 4.4.59+, PostgreSQL ist nun bei 9.3.25, nginx ist jetzt bei 1.16.1. Was mit Version 7 mitgeliefert wird, konnte ich bisher noch nicht testen.

Nun sind Versionen natürlich nicht alles, man kann schließlich sicherheitsrelevante Fehler auch patchen, ohne die Version zu verändern. Hier macht die geringe Updatefrequenz aber Sorgen.

Es handelt sich immerhin um Geräte, die potenziell direkt aus dem Netz erreichbar sind und viel mehr Angriffsfläche als ein normales Desktopsystem bieten.

Wie würdet ihr das beurteilen? Bin ich zu kritisch? Gibt es wirklich so wenige sicherheitskritische Probleme bei den Basispaketen?

Der Artikel Synology DSM – Alte Basis, wenig Updates erschien zuerst auf [Mer]Curius






Low Latency für die Musikproduktion

https://hyperblog.de/media/users/hoergen/podcast/20210222_low_latency_f_r_die_musikproduktion_150.mp3

Da ich unter Linux Musik produziere gibt es hier und da Möglichkeiten, wie man das System etwas tunen kann. Eines der Dinge ist, dass man sich einen Low Latency Kernel installiert, wenn man an die Grenzen des Rechners stößt. Allerdings hat dieser dann eventuell so den einen oder anderen Nachteil, wenn man den Rechner noch für Alltagsarbeiten nutzt. Daher arbeite ich mit dem ganz normalen Kernel von Kubuntu 20.04 LTS der auch wunderbar seinen Dienst verrichtet.

 

Es gibt da aber dennoch die eine oder andere Kleinigkeit, die man machen kann, um das System zu optimieren. Quasi zu Fokussieren. Erik Rigtorp hat hier einen Low Latency Tuning Guide geschrieben, der ein paar sehr eigentlich selbstverständliche und ein paar interessante Vorschläge enthält.

 

Aktuell teste ich gerade recht zufriedenstellend, das Abschalten des Hyperthreadings.

Kurz gesagt: In meinem Rechner arbeitet ein Intel mit 4 CPU Cores, die virtuell jeweils nochmal aufgeteilt werden. In meinem System werden dadurch 8 CPUs angezeigt, die jeweils eigene Prozesse abarbeiten können. Das so eine Multiparallelität nicht immer von Vorteil ist, wenn man eine Sache benutzen möchte, kennt man ja schon aus der realen Welt, bzw auch von anderen Betriebsystemen.

Es gibt verschiedene Wege das Hyperthreading abzuschalten, ich habe mich im Moment für die Konsole entschieden und gegen das BIOS, so kann ich das immer recht spontan an und wieder ausschalten.

Daher habe ich mir folgendes kleines Script namens cpu_disable_hyperthreading.sh angelegt, um den Parameter komfortabel umschalten zu können. Das Skript muss mit root Rechten bzw sudo ausgeführt werden !

 

#!/bin/bash 
# Titel: Hyperthreading ausschalten
# Autor: hoergen
# Datum: 12.02.2021
#  
#  Zum Ausführen des Scriptes muss man root sein
#  
# Quelle: https://rigtorp.se/low-latency-guide/
#  
#  


while [ -n "$1"  ]; do

       case "$1" in

               -h) echo -e "\n\nOhne Parameter wird das Hyperthreading ausgeschaltet"
echo " und der aktuelle Status wird angezeigt"
                   echo    " -h zeigt diese Hilfe an"
                   echo -e " -a aktiviert das Hyperthreading wieder.\n\n";;
               -a)  echo "\n\nSchalte Hyperthreading aus. Ausgeschaltet=0"
                    echo on > /sys/devices/system/cpu/smt/control;;

               *) echo "\n\nOhne Parameter wird das Hyperthreading ausgeschaltet"
                  echo "Schalte Hyperthreading an. Angeschaltet=1"
                  echo off > /sys/devices/system/cpu/smt/control;;
       esac
       shift
done





# Disable Hyperthreading
#echo "Schalte Hyperthreading aus. Ausgeschaltet=0"  
#echo off > /sys/devices/system/cpu/smt/control
hyperStatus=$(cat /sys/devices/system/cpu/smt/active)
echo -e "\n\nHyperthreading ist aus:0 / an:1 = $hyperStatus"

# Check if turbo boost is enabled enabled = 0  
turboBoost=$(cat /sys/devices/system/cpu/intel_pstate/no_turbo)
echo -e "Turbo Boost ist an:0 / aus:1 = $turboBoost\n\n"  


 

Hier nun das gesamte Paper: Low Latency tuninng guide by Eric Rigtorp (25.04.2020) https://rigtorp.se/low-latency-guide/

 

 

 

 

Original post blogged on hoergen blog.






Linux-Distributionen – Welche Bedeutung haben sie in Zukunft?

Linux ist kein Betriebssystem, sondern ein Kernel. Den Spruch kriegen Anwender seit Jahren zu hören. Das was auf den Geräten installiert wird, kommt meist in Form einer Linux-Distribution, also einer Zusammenstellung, zum Anwender. Doch welche Bedeutung haben sie nach Jahren der Nivellierung?

Wie der Name schon sagt, sorgen Distributionen für die Verteilung der Software an den Anwender. Man kann Linux nicht ohne Distribution nutzen, man kann sich höchstens selbst eine Distribution mit Linux from Scratch bauen. Dirk Deimeke hat kürzlich in seinem Blog über die zukünftige Rolle von Distributionen geschrieben. Die Perspektive auf das Problem rührte primär von den neuen Formen her Applikationen auszurollen. Seien es Container oder neue Formate. Ich denke die Ursache für den sukzessiven Bedeutungsverlust liegt noch tiefer.

Linux-Distributionen sind ein interessantes Phänomen, wenn man sich den Unterschied von Selbst- und Fremdwahrnehmung angucken möchte. In der Community sind sie identitätsstiftend und die Community formiert sich noch immer primär um die einzelnen Distributionen. Sie sind hier möglicherweise sogar noch wichtiger als die Desktopumgebungen. Das steht in einem interessanten Spannungsverhältnis zur Fremdwahrnehmung, die meist von „dem Linux“ spricht und damit oft die führenden Distributionen meint. Doch steht die Selbstwahrnehmung auch in einem Spannungsverhältnis zur Realität?

Die neuen Formate mit zentralen Verteilungsmechanismen für Applikationen – seien es Docker-Container, Flatpaks oder Snaps – beschleunigen sicher einen Trend, aber sie verursachen ihn meiner Meinung nach nicht. Linux-Distributionen sind seit Jahren einer starken Nivellierung ausgesetzt.

Um zu erklären, was ich damit meine, muss ich ein wenig in Erinnerungen schwelgen. Damals, 2007 oder so, als ich meine ersten nachhaltigen Gehversuche mit Linux machte, gab es massive Unterschiede zwischen den Distributionen. Es ging hier um so grundlegende Fragen wie das Init-System. Upstart, SysV-Init oder BSD-Like Kreationen wie bei Arch Linux. Ob eine Distribution länger an HAL festhielt oder früh auf den neuen Ansatz DeviceKit wechselte, war nichts was der Anwender bestimmen konnte. Das gleiche bei dem Gegensatz richtiger root-Account versus sudo, der Endlosdiskussionen auslöste. Konfigurationswerkzeuge konnten ganz unterschiedlich sein. Man erinnere sich an das Mandriva Control Center (MCC) oder YaST. Unter der Oberfläche waren die Unterschiede noch gewaltiger. Obwohl Linux ein unixoides System ist, regelt das nicht bis ins letzte Detail wo Systemdateien und Bibliotheken liegen müssen.

Bei der Paketverwaltung gab es himmelweite Unterschiede, die weit über den Gegensatz RPM versus DEB hinausgingen. Es machte in der praktischen Bedienung durchaus einen Unterschied, ob man das komplexe Toolkit von Debian verwenden durfte oder die quälend langsamen Routinen von openSUSE oder Fedora. Letztere konnten lange Zeit nicht mal nicht mehr benötigte Abhängigkeiten entfernen und die Abhängigkeitshölle mit totaler Blockade des Systems ist kein Märchen, sondern war traurige Realität.

Auch die Software-Auswahl war eine bewusste Entscheidung der Distributions-Entwickler. Die Beispiele entstammen jetzt dem KDE-Bereich, weil ich damit am meisten gearbeitet habe, aber sie lassen sich sicher auf andere Desktopumgebungen übertragen. Die Entscheidungen für KDE bei 3.5 zu bleiben, wie Debian sie entgegen dem allgemeinen Trend bei „Lenny“ traf, waren individuelle Entscheidung der Entwickler. Nur wenige mögen sich erinnern, aber Kubuntu lieferte bereits mit KDE 3.5 Dolphin als Dateimanager aus. Oder wenn eine Distribution eine bestimmte Software wie KDEPIM in einer anderen Version nutzte, als den Rest des Ökosystems und so den Wechsel auf Akonadi hinauszögerte. Die Wahl des Displaymanagers auf LightDM, wie sie bis vor Kurzem das Ubuntu-Universum prägte, hatte Folgen für die Anwender. Die Upstream-Entwickler haben das gehasst, weil die Wechselwirkungen unvorhersehbar waren und so manches Problem verursachten.

Der Anwender entschied sich somit nicht nur für eine Distribution als Marke, sondern kaufte damit im übertragenen Sinne auch ein Set an Werkzeugen und Systemdesign-Entscheidungen ein, die sein Anwendungserlebnis massiv prägten.

Das hat sich in den letzten Jahren sukzessive gewandelt. In einem allgemeinen Trend haben die meisten Distributionen sich für systemd und damit verbundene Dienste entschieden. Das gleiche gilt für PolicyKit, udev, upower usw. Der Trend, alles in /usr abzulegen vereinheitlicht die Dateistrukturen der Distributionen. freedesktop-Standards spielen heute eine zentrale Rolle und werden verbreitet befolgt. Heute kommen sogar Debian und Fedora mit Administratorrechten via sudo und die Distributionen, die beim klassischen root-Konzept geblieben sind, blockieren einen direkten Anwendungsstart damit. Die Entwicklung ausgereifter grafischer Konfigurationswerkzeuge für die Desktopumgebungen hat Eigenlösungen der Distributionen abgelöst (außer bei openSUSE). Software ist komplexer geworden, weshalb die meisten Distributionen upstream nur noch wie vorgesehen paketieren.

Sogar vor den Installationsroutinen hat die Nivellierung nicht halt gemacht. Sehr viele Distributionen verwenden heute Calamares als Installer. Das Spektrum reicht hier von Debian bis Manjaro. Daneben pflegen viele Distributionen zwar noch ihre Eigenentwicklungen, aber der Trend ist deutlich zu sehen.

Die Unterschiede zwischen den meisten Distributionen haben sich also stark nivelliert. Wer das nicht wahrhaben möchte, sollte mal versuchen, ein aktuelles BSD aufzusetzen. Natürlich gibt es noch die Spezialfälle wie Slackware, Vault Linux oder Devuan aber diese sind eine winzige Minderheit. Sowohl was die Nutzerzahlen betrifft, als auch gemessen an der Gesamtzahl der Distributionen. Die meisten Distributionen haben inzwischen ein stark vereinheitlichtes Ökosystem mit lediglich graduellen Unterschieden. Man kann Systeme und Arbeitsweisen meist sehr schnell auf einen neuen Unterbau umziehen.

Das gilt sogar für die Releasezyklen. Entweder es gibt keinen Zyklus und die ganze Distribution wird rollend weiter entwickelt oder es gibt fixe Zyklen mit relativ langen Supportzeiträumen. Es ist fertig, wenn es fertig ist, was z. B. lange Debian von Ubuntu abhob, gilt schon lange nicht mehr. Faktisch wird irgendwann alle zwei Jahre im Frühjahr ein Release veröffentlicht um den groben Zyklus einzuhalten.

Noch lustiger wird es, wenn man auf die Ebene der Maintainer guckt. Zwischen Debian und Ubuntu gibt es inzwischen so viele „Personalunionen“, wo der gleiche Entwickler die selben Pakete für beide Distributionen betreut, dass man schon fast Debuntu als Distribution sprechen kann.

Diese Nivellierung sehe ich überhaupt nicht negativ. Qualitativ hat Linux als System massiv vom Wechsel Quantität zu Qualität profitiert. Niemand, der beispielsweise mit openSUSE 10.2 arbeiten durfte will ernsthaft in diese Zeit zurück.

Auf diese stark vereinheitlichte Basis treffen nun neue Paketierungsformate für Desktopsysteme und der Trend zu Virtualisierung und Containern im professionellen Bereich. Der Trend zur Vereinheitlichung wird sich dadurch eher beschleunigen, da zentrale Anwendungen aus den gleichen Bezugsquellen dann einfach auf die Distributionsbasis gelegt werden.

Angesichts der Nivellierung stellt sich aber schon die Frage, warum es diesen Zoo an Distributionen gibt. Im Grunde genommen ist meiner Meinung nach vor allem Tradition und Identitätsbildung für die Community. Zusätzlich noch ein paar dicke Entwickler-Egos, denn warum sollte man gerade das eigene Projekt zugunsten der Konkurrenz einstellen.

Denn faktisch ist Linux längst ein Betriebssystem. Linux ist der Kernel plus zentrale Bestandteile, die nahezu alle Distributionen teilen und die sie von anderen freien Systemen wie BSD-Varianten oder Android abheben.

Der Artikel Linux-Distributionen – Welche Bedeutung haben sie in Zukunft? erschien zuerst auf [Mer]Curius






Podman kann auch Systemd-Service-Units generieren

Mit „Kanboard im Container…“ hat mein Ausflug ins Containerland begonnen. Mittlerweile läuft mein Pod bereits eine Weile und ich nutze die Anwendung regelmäßig. Jedoch musste ich nach jedem Neustart des Hosts den Pod kanboardpod manuell starten. Ich hatte mir daher vorgenommen, hierfür eine Systemd-Service-Unit zu erstellen, welche diesen Task automatisiert. Doch habe ich mit Freude festgestellt, dass podman-generate-systemd(1) mir diese Arbeit abnehmen kann.

Also starte ich einen ersten Versuch und erzeuge entsprechende Service-Unit-Dateien in meinem HOME-Verzeichnis. Die Option „--name“ sorgt dafür, dass in den Service-Unit-Dateien die Namen des Pods bzw. der Container verwendet werden, anstatt der UUIDs. Die Option „--files“ sorgt dafür, dass die Ausgabe in Dateien und nicht auf die Standard-Ausgabe geschrieben wird.

$ podman generate systemd --name --files kanboardpod
/home/alice/pod-kanboardpod.service
/home/alice/container-kanboard.service
/home/alice/container-pgsql_db.service

$ cat pod-kanboardpod.service
# pod-kanboardpod.service
# autogenerated by Podman 2.0.5
# Mon Jan 25 13:19:51 CET 2021

[Unit]
Description=Podman pod-kanboardpod.service
Documentation=man:podman-generate-systemd(1)
Wants=network.target
After=network-online.target
Requires=container-kanboard.service container-pgsql_db.service
Before=container-kanboard.service container-pgsql_db.service

[Service]
Environment=PODMAN_SYSTEMD_UNIT=%n
Restart=on-failure
ExecStart=/usr/bin/podman start 62cdd29105a4-infra
ExecStop=/usr/bin/podman stop -t 10 62cdd29105a4-infra
ExecStopPost=/usr/bin/podman stop -t 10 62cdd29105a4-infra
PIDFile=/run/user/1000/containers/overlay-containers/b3c9bd9754cdc999108d0f4aad7d808c007cc34eee34faefd41ee39c3e1ca18b/userdata/conmon.pid       
KillMode=none
Type=forking

[Install]
WantedBy=multi-user.target default.target

$ cat container-kanboard.service 
# container-kanboard.service
# autogenerated by Podman 2.0.5
# Mon Jan 25 13:19:51 CET 2021

[Unit]
Description=Podman container-kanboard.service
Documentation=man:podman-generate-systemd(1)
Wants=network.target
After=network-online.target
BindsTo=pod-kanboardpod.service
After=pod-kanboardpod.service

[Service]
Environment=PODMAN_SYSTEMD_UNIT=%n
Restart=on-failure
ExecStart=/usr/bin/podman start kanboard
ExecStop=/usr/bin/podman stop -t 10 kanboard
ExecStopPost=/usr/bin/podman stop -t 10 kanboard
PIDFile=/run/user/1000/containers/overlay-containers/99d386a42b186efb3347d909cea265b990469dc33e1889a3006425a71956699b/userdata/conmon.pid
KillMode=none
Type=forking

[Install]
WantedBy=multi-user.target default.target

$ cat container-pgsql_db.service 
# container-pgsql_db.service
# autogenerated by Podman 2.0.5
# Mon Jan 25 13:19:51 CET 2021

[Unit]
Description=Podman container-pgsql_db.service
Documentation=man:podman-generate-systemd(1)
Wants=network.target
After=network-online.target
BindsTo=pod-kanboardpod.service
After=pod-kanboardpod.service

[Service]
Environment=PODMAN_SYSTEMD_UNIT=%n
Restart=on-failure
ExecStart=/usr/bin/podman start pgsql_db
ExecStop=/usr/bin/podman stop -t 10 pgsql_db
ExecStopPost=/usr/bin/podman stop -t 10 pgsql_db
PIDFile=/run/user/1000/containers/overlay-containers/fe757283f0662220fee23a563053ea7f30dbdf6d9fbb492c010a01dd7598fc9b/userdata/conmon.pid
KillMode=none
Type=forking

[Install]
WantedBy=multi-user.target default.target

Um die generierten Service-Units zu installieren und zukünftig als derjenige User auszuführen, welcher den Pod und die Container erzeugt hat, verschiebe ich sie in das zu erstellende Verzeichnis ~/.config/systemd/user. Anschließend werden die neuen Units in die Systemd-Konfiguration eingelesen und aktiviert.

$ mkdir -p .config/systemd/user
$ mv *.service .config/systemd/user/
$ systemctl --user enable pod-kanboardpod.service
$ podman pod stop kanboardpod
$ systemctl --user start pod-kanboardpod.service

Nachdem ich die Service-Units an die richtige Stelle verschoben und aktiviert hatte, habe ich meine laufende Pod-Instanz gestoppt und über die entsprechende Service-Unit gestartet.

Ich wähnte mich nun bereits am Ziel. Doch nach einem Neustart des Hosts war die Anwendung wieder nicht verfügbar. Die Service-Unit war nicht gestartet worden. Podman kann hier nichts dafür, denn es ist systemd, welcher dafür sorgt, dass im User-Kontext laufende Services beendet werden, wenn sich der entsprechende User ausloggt und diese erst startet, wenn der User sich einloggt.

Valentin Rothberg von Red Hat gab mir den entscheidenden Tipp, um dieses Problem zu lösen. Die Lösung versteckt sich in der Manpage zu podman-generate-systemd(1):

The systemd user instance is killed after the last session for the user is closed. The systemd user instance can be kept running ever after the user logs out by enabling lingering using

$ loginctl enable-linger <username>

Manual page podman-generate-systemd(1)

@Valentin: Thanks a lot, that solved my issue!

Fazit

Ich bin ehrlich gesagt hoch erfreut, dass die Entwickler hier eine Möglichkeit vorgesehen haben, um aus bestehenden Pods bzw. Container-Instanzen Systemd-Service-Units generieren zu können. Dies ermöglicht es, Container-Instanzen und Pods mit den gewohnten Werkzeugen zu starten, zu stoppen und deren Status zu kontrollieren.

So besteht die Möglichkeit, die rootless-Podman-Container auch als unprivilegierte Dienste laufen zu lassen. Das gefällt mir.






Cloud-Speicher-Verschlüsselung – Was nutzt ihr?

Als Cloud noch primär für ausgelagerten Festplattenspeicherplatz stand und als Thema insgesamt noch neu war, schossen die Verschlüsselungslösungen nur so aus dem Boden. Doch was ist jetzt noch aktuell?

Ich habe heute die Übersichtsseite zur Cloud und zu Verschlüsselungslösungen für die Cloud aktualisiert. Die Liste umfasst immer noch den Dreiklang aus Boxcryptor (proprietär), Cryptomator (Open Source) und EncFS (unsicher, aber immer noch verbreitet). Hinzu kommt noch SimpleumSafe für macOS-Anwender.

Daneben gibt es noch ein paar Nischenlösungen. Anwender von KDE Plasma können mit Plasma Vault arbeiten, das aber funktional noch immer nicht den Kinderschuhen entwachsen ist und es gibt hacky Oberflächen wie Sirikali oder zulucrypt.

Bei der Überarbeitung habe ich festgestellt, dass ich mich schon lange nicht mehr intensiv mit dem Thema befasst habe, weil ich es kaum noch benötige. Gleichwohl scheint sich auf dem Gebiet auch nicht viel getan zu haben.

Cloud betreibe ich entweder in Eigenregie mit Nextcloud oder nutze meine Synology NAS als Cloud-Speicher. In meinem Umfeld habe ich den Eindruck, dass dieser Weg verbreitet ist. Wer für das Thema Cloud-Verschlüsselung sensibilisiert ist, hat irgendwann den Weg zur eigenen Cloud genommen.

Greife ich abgesehen davon auf einen Cloud-Speicher zurück, dann um Dateien zu teilen und gemeinsam zu bearbeiten. Verschlüsselung ist dann keine Funktion, die ich benötige, weil eine gemeinsame Bearbeitung von Dateien mit Ende-zu-Ende-Verschlüsselung quasi nicht möglich ist. Es soll da Lösungen geben, aber eine wirklich Funktionierende ist mir bisher nicht unter gekommen.

Darum würde mich interessieren, womit ihr so arbeitet. Nutzt ihr Cloud-Verschlüsselung überhaupt noch oder betreibt ihr eure eigene Cloud? Sofern ihr noch verschlüsselt, welche Lösung verwendet ihr? Welche Beschränkungen und Probleme gibt es?

Der Artikel Cloud-Speicher-Verschlüsselung – Was nutzt ihr? erschien zuerst auf [Mer]Curius






Exkurs: YubiKey-Software

  1. YubiKey Teil I – Einleitende Bemerkungen
  2. YubiKey Teil II – LUKS Verschlüsselungen mit 2FA
  3. YubiKey Teil III – Zwei-Faktor-Authentifizierung mit U2F
  4. YubiKey Teil IV – KeePassXC absichern
  5. Exkurs: YubiKey-Software

Die Konfiguration des YubiKeys erfolgt über Open Source-Software. Hier gibt es parallele Lösungen, die sich unterschiedlich bedienen. Sofern verfügbar ist der YubiKey-Manager zu bevorzugen.

Recherchiert man zum YubiKey stößt man oft auf das Personalization-Tool, für das auch eine GUI gibt. Diese GUI ist so grausam (Screenshots hier), dass ich hier immer die entsprechenden Befehle für die Kommandozeile angegeben habe. Die Entwicklung des Personalization-Tools hat YubiKey aber zugunsten einer neuen Lösung eingestellt.

Neu ist der YubiKey-Manager, für den es ebenfalls eine optionale GUI gibt.

Windows und macOS-Anwender können sich die Software einfach bei Yubico herunterladen. Für Linux empfiehlt Yubico auf der Webseite das AppImage aber ich finde AppImages von allen drei modernen Formaten (Flatpak, Snap, AppImage) als unhandlichste Variante.

In den Paketquellen herrscht bei vielen Distributionen aber leider ein ganz schöner Wildwuchs mit vielen Abhängigkeiten. Bei Arch Linux zieht der neue Manager das alte Tool als Abhängigkeit mit, bei Debian scheint dies nicht notwendig zu sein, das gleiche gilt für openSUSE. Debian und Ubuntu liefern allerdings nur die CLI und nicht die GUI. Hier bietet Yubico selbst ein PPA an. Im Gegenzug zum alten Tool ist das neue Werkzeug in aktiver Entwicklung. Je nach Distribution und Releasemodell sollte also auf die Versionsnummer geachtet werden. Sternstunden der Linux-Paketierung eben.

Um den neuen Manager zu nutzen muss der pcscd Service laufen.

# systemctl start pcscd

Die GUI erlaubt es übersichtlich die Slots zu konfigurieren, aber auch Funktionen wie NFC bei Bedarf abzuschalten. Vor allem Letzteres ist sinnvoll, wenn man nur ausgewählte Funktionen verwendet.

Wer sich also sicherer mit einer GUI fühlt sollte zur neuen Variante greifen. Eine gute GUI ersetzt nämlich durchaus in vielen Fällen die Kommandozeile.

Der Artikel Exkurs: YubiKey-Software erschien zuerst auf [Mer]Curius






YubiKey Teil IV – KeePassXC absichern

  1. YubiKey Teil I – Einleitende Bemerkungen
  2. YubiKey Teil II – LUKS Verschlüsselungen mit 2FA
  3. YubiKey Teil III – Zwei-Faktor-Authentifizierung mit U2F
  4. YubiKey Teil IV – KeePassXC absichern
  5. Exkurs: YubiKey-Software

Der Passwortmanager ist ein ebenso notwendiger wie neuralgischer Punkt. Er ermöglicht komplizierte und vielfältige Passwörter, aber ist gleichzeitig der Schlüssel zu unserer gesamten digitalen Identität. Hier kann man mit YubiKey für mehr Sicherheit sorgen.

KeePassXC ist eine der wenigen Erfolgsgeschichten aus einem Fork. Durch die Abspaltung von KeePassX hat die Entwicklung wieder so richtig Fahrt aufgenommen und viele tolle Funktionen wurden implementiert.

Ein Passwortmanager sollte nie nur mit einem starken Passwort geschützt sein, sondern immer noch mit einem zweiten Faktor, der sich in eurem Besitz befinden muss. Insbesondere wenn die Passwortdatenbank über einen Cloud-Speicher synchronisiert wird.

Für den niedrigschwelligen Einstieg bietet KeePassXC hier die Möglichkeit, eine Schlüsseldatei zu erzeugen. Zum Entsperren der Datenbank benötigt man dann Passphrase und Schlüsseldatei. Die Kombination von Wissen und Besitz sozusagen. Diese Schlüsseldatei bewahrt man natürlich getrennt von der Passwortdatenbank auf. Die Datenbank kann über einen Cloud-Speicher synchronisiert werden, die Schlüsseldatei sollte hingegen nie ins Internet geraten, sondern über ein Kabel oder im Heimnetz auf das Gerät übertragen werden. Da sich die Schlüsseldatei nie oder selten ändert, ist das auch kein Komfortproblem.

Mehr Sicherheit bietet hier natürlich der YubiKey, denn eine Schlüsseldatei ist schließlich auch nur eine Datei und kann theoretisch bei einem Angriff auf eurer System gestohlen werden. Der YubiKey befindet sich dagegen auch physisch in eurem Besitz.

KeePassXC mit YubiKey absichern

Legt ein Backup der Datenbank an bevor die Sicherheitseinstellungen verändert werden. Ansonsten verliert ihr bei Problemen Zugriff auf die gesamte Datenbank.

Unter Datenbank / Datenbank-Sicherheit lassen sich die verschiedenen Sicherheitsmaßnahmen konfigurieren.

KeePassXC verweist hier bereits auf die Notwendigkeit, das HMAC-SHA1 Challenge-Response Verfahren zu nutzen. Solltet ihr den YubiKey bereits für LUKS nutzen, ist Slot 2 bereits passend konfiguriert.

Über den Button YubiKey Challenge-Response hinzufügen startet die Einrichtung, die sehr einfach ist. KeePassXC erkennt den YubiKey, man bestätigt mit einem Tipp auf den Key und danach ist die Datenbank mit dem YubiKey verbunden.

Abschließend schließt ihr die Datenbank und öffnet sie erneut, um zu prüfen, ob die Entsperrung mit YubiKey klappt. Ggf. muss der Hardwareschlüssel im Aufklappmenü noch ausgewählt werden. Anschließend gibt man das Kennwort ein und klickt auf OK. In einem zweiten Schritt erfordert KeePassXC die physische Betätigung des YubiKeys.

Im Alltagsbetrieb

Die Zusammenarbeit mit YubiKey klappt fehlerfrei. Je nach Häufigkeit der Entsperrung dürfte man aber den YubiKey im Betrieb kaum noch vom Gerät abziehen.

Ein Problem ist die Synchronisation. Der KeePass-Client auf Android KeePassDX kann gegenwärtig noch nicht mit YubiKey umgehen, weshalb die Datenbank nur auf Desktop-Clients mit KeePassXC genutzt werden kann. Wie so oft sind iPhone-Anwender hier, was die Sicherheit betrifft, im Vorteil. Da ich auf meinem Android-Smartphone sowieso nur eine abgespeckte Variante der Datenbank nutze, ist das für mich kein so großes Problem.

Der Artikel YubiKey Teil IV – KeePassXC absichern erschien zuerst auf [Mer]Curius






Backup mit restic

Prolog

Durch Zufall bin ich auf restic gekommen, es ist ein Backup Programm, welches sehr ähnlich zu borg Backup funktioniert, aber von Grund auf neu geschrieben wurde und eine andere Syntax benutzt. Der Original Autor ist Alexander “fd0” Neumann, er hat das Programm in go geschrieben.

Für mich sind die herausragenden Eigenschaften:

Hier soll es um das Backup Programm im praktischen Einsatz gehen.

Gesichert werden 2 Laptops und ein Server (später) auf meinem Storage bei Hetzner. Mein Artikel soll kein selber lesen der Dokumentation ersetzen oder ersparen, sondern ein Leitfaden für mich und Leute sein, die eine ähnliche Situation haben. Es ist also ein Notizblock, um schnell das setup zu verstehen und als Hilfe gedacht, wenn nach Monaten mal ein Problem auftritt und ich wissen möchte, wie hatte ich mir das gedacht.

Ich benutze derzeit restic nur als user zum sichern von Bildern und persönlichen Dokumenten. Natürlich würde es auch für die komplette Installation der Laptops gehen, das brauche ich aber momentan nicht.

Voraussetzungen

Hetzner hat die Besonderheit, dass der Storage über Port 22 und 23 erreichbar ist. Hinweis: Bei Hetzner ist user@name durch eure Kennung z.B. u0815@u0815 zu ersetzen, ich wollte hier nicht meinen realen Account offenbaren.

Hat man den Public_Key auf dem Storage unter .ssh/authorized_keys hinterlegt, ist der Zugriff über Port 23 für Backup Programme ohne Passwort möglich.

Einloggen per ssh ist unterbunden.

Bevor man sich einen Wolf sucht, bitte entweder mit

lftp -p 23 sftp://user@name.your-storagebox.de 
oder
sftp -P 23 user@name.your-storagebox.de

testen. Es sollte nun ohne Passwortabfrage eine Verbindung zum Storageserver hergestellt werden.

Warum lftp?

Nun es geht auch mit sftp, das ist ja standardmäßig bereits installiert, allerdings ist lftp der klare Sieger, wenn man rekursiv mal etwas löschen muss, was bei mir der Fall war, das beschreibe ich weiter unten. Ansonsten ist die Verwendung weitgehend identisch. Bei sftp gibt man den Port mit großem -P an und es versteht df -h, lftp dafür du -hs (Achtung u.U. langsam).

Eine Merkwürdigkeit ist bei lftp, dass man trotz ssh Key eine Passwort Aufforderung bekommt, wo man einfach nur <ENTER> drücken muß.

Ein Workaround um die Passwort Abfrage zu umgehen, ist der Trick, einen eigentlich unnötigen Platzhalter "platz" zu verwenden:

lftp -p 23 -u user,platz sftp://name.your-storagebox.de

Zum experimentieren mit restic verwende ich einen Alias. (Hetzner storagebox)

#                  -p password_file    -r repository pfad
alias back='restic -p ~/.ssh/restic_pw -r sftp://user@name.your-storagebox.de:23/privat/bernd/T500

Mit dem alias back erspare ich mir die Angabe des Repositories und des Passwords. Man könnte natürlich auch mit Environment Variablen arbeiten, das finde ich aber unsicherer, weil die für Angreifer leichter auslesbar wären. Ich denke z.B. aber auch an die .bash_history. Der Nachteil des Alias ist, dass man die Autocompletion von bash verliert, wenn man allerdings als alias restic verwendet, fällt dieser Nachteil weg, man handelt sich dann ggfs. andere Nachteile ein. Zum Beispiel, wenn man mit mehreren Repositories arbeiten will. 

#In restic_pw ist das lange Password des Repositories abgelegt, es darf nur für den User lesbar sein
~/.ssh/restic_pw 
chmod 600 ~/.ssh/restic_pw 

 

 

In den weiteren Beschreibungen verwende ich den Alias back und nicht restic, um Verwirrungen beim Leser zu vermeiden.

Anlegen des Repository

Vorher auf dem sftp Server nachschauen, welche Verzeichnisstruktur bereits vorhanden ist. Das Verzeichnis des Repositories wird angelegt, es muss nicht existieren! Bei mir z.B. /home/privat/bernd. wobei das /home nicht mit angegeben wird! Im obigen Beispiel ist dies bereits berücksichtigt und deshalt reicht ein einfaches

back init

created restic repository  e5f00e22 at sftp://user@name.your-storagebox.de:23/privat/bernd/T500

(...)

Damit ist in kurzer Zeit die notwendige Datenstruktur auf dem Storage angelegt und bereit für ein erstes Backup

Erstes Backup erstellen

Ich habe als erstes mal meine Dokumente gesichert.

Hier das Protokoll des dritten Aufrufes, das erst Backup lief ca. 40 Minuten

back backup Dokumente
repository e5f00e22 opened successfully, password is correct
using parent snapshot 3504f0f6

Files:           0 new,     0 changed,   139 unmodified
Dirs:            0 new,     0 changed,    12 unmodified
Added to the repo: 0 B  

processed 139 files, 2.634 GiB in 0:00
snapshot b982a7d0 saved

Backup auflisten

back snapshots 

repository e5f00e22 opened successfully, password is correct

ID        Time                 Host        Tags        Paths

--------------------------------------------------------------------------

99494f33  2021-02-18 19:01:31  T500                    /home/bed/Dokumente

3504f0f6  2021-02-19 19:42:50  T500                    /home/bed/Dokumente

b982a7d0  2021-02-19 21:10:30  T500                    /home/bed/Dokumente


--------------------------------------------------------------------------

3 snapshots

 

Backup Dateien auflisten

#back ls b982a7d0 # oder das aktuellste mit latest
back ls latest
(...)
/Dokumente/SchaubLorenz_Golf100.pdf
/Dokumente/Toshiba_TLG373.pdf
(...)

Das Ergebnis ist mit pipe weiter verarbeitbar. Zum Beipiel

back ls latest|grep -i toshiba
/Dokumente/Toshiba_TLG373.pdf

Backup Dateien suchen

restic bietet auch eine Suchfunktion

back find toshiba* --ignore-case 
repository e5f00e22 opened successfully, password is correct
Found matching entries in snapshot 3504f0f6 from 2021-02-19 09:42:50
/Dokumente/Toshiba_TLG373.pdf

Found matching entries in snapshot 99494f33 from 2021-02-18 09:01:31
/home/bed/Dokumente/Toshiba_TLG373.pdf

Found matching entries in snapshot b982a7d0 from 2021-02-19 13:10:30
/Dokumente/Toshiba_TLG373.pdf

Backup checken

Ein Hilite von restic ist die check Funktion, hier wird die Struktur auf Integrität geprüft.

Sie testet das Repository auf Fehler und meldet gefundene Fehler. Sie kann auch verwendet werden, um alle Daten zu lesen und somit eine Wiederherstellung zu simulieren.

Standardmäßig lädt der "check"-Befehl immer alle Daten direkt aus dem Repository und verwendet keinen lokalen Cache.

Die 2 Beispiele sind nicht vom T500, sondern vom Tuxedo, dort läuft durch den moderneren Prozessor auch die Hardware decryption, was natürlich dem Vorgang den Marsch bläst.

back check

time back check

using temporary cache in /tmp/restic-check-cache-775446915
repository cfa22dd6 opened successfully, password is correct
created new cache in /tmp/restic-check-cache-775446915
create exclusive lock for repository
load indexes
check all packs
check snapshots, trees and blobs

[0:01] 100.00%  3 / 3 snapshots

no errors were found


real 0m31,592s

user 0m1,660s

sys  0m0,359s
Nicht schlecht, oder? nach gerade mal 32 Sekunden weiß ich, dass mein Backup in Ordnung ist. Doch was ist wirklich los, simulieren wir doch einen kompletten Restore... des 55GiB großen Repo (ok, Download Speed nicht mit einberechnet)
back check --read-data

time back check --read-data 

using temporary cache in /tmp/restic-check-cache-410215478
repository cfa22dd6 opened successfully, password is correct
created new cache in /tmp/restic-check-cache-410215478

create exclusive lock for repository

load indexes

check all packs

check snapshots, trees and blobs
read all data  2 / 3 snapshots

[0:01] 100.00%  3 / 3 snapshots

[1:12:32] 100.00%  9019 / 9019 packs

no errors were found



real   72m58,199s

user   12m50,579s

sys    4m16,768s

 

Repository Password ändern

Beim ausprobieren und einrichten ist mir ein Fehler unterlaufen. Ich wollte eigentlich ein password file benutzen, habe es aber ich der command line nicht angegeben. Damit wurde als Password File der Private Key genommen, wahrscheinlich keine gute Idee ;-)

Das merkte ich aber erst, als das erste Backup lief.

Da es hier aber ein größeres Backup war, wollte ich es nicht neu machen, sonder habe mich nach der sehr guten Dokumentation gerichtet und einfach einen neuen Key angelegt, dann meinen Aufruf korrigiert und den nun nicht mehr notwendigen Key gelöscht. Fertig.

Weil hier der Alias back benutzt wird, besonders darauf achten, dass das hinterlegte password auch händisch im 

~/.ssh/restic_pw 

angepasst wird, sonst könnte es böse Überraschungen geben ;-)

Also:

Auflisten aller Keys
​back key list
password ändern
​back key passwd

Key hinzufügen

​back key add

Key löschen

​back key delete

Restore

Ich komme nun zum eigentlichen Zweck eines Backup Programms, dem zurückholen von einzelnen Dateien oder des gesamten gesicherten Bestands.

Zuerst feststellen was alles, wann gesichert wurde:

back snapshots
repository cfa22dd6 opened successfully, password is correct
ID        Time                 Host        Tags        Paths
--------------------------------------------------------------------------
00fbbd64  2021-02-18 19:01:26  Bullseye                /home/bed/Bilder
84e0f2bc  2021-02-19 12:17:52  Bullseye                /home/bed/Dokumente
c3d0c516  2021-02-19 17:16:48  Bullseye                /home/bed/Dokumente
7d2d6547  2021-02-19 20:07:09  Bullseye                /home/bed/Bilder
--------------------------------------------------------------------------
4 snapshots

Ich möchte die Bilder im Ordner usb-warzen zurück sichern, Witzigerweise sind die nicht im gesicherten Ordner Bilder, sondern in Dokumente.

Siehe auch Datei suchen

Einzelne Dateien finden und zurück holen
Mehrere Möglichkeiten:

back ls c3d0c516|grep usb-warzen

/Dokumente/usb-warzen
/Dokumente/usb-warzen/1.png
/Dokumente/usb-warzen/1.png_max_200kb.jpg
/Dokumente/usb-warzen/10.png
/Dokumente/usb-warzen/10.png_max_200kb.jpg
/Dokumente/usb-warzen/11.png
/Dokumente/usb-warzen/11.png_max_200kb.jpg
/Dokumente/usb-warzen/2.png
/Dokumente/usb-warzen/2.png_max_200kb.jpg
/Dokumente/usb-warzen/3.png
/Dokumente/usb-warzen/3.png_max_200kb.jpg
/Dokumente/usb-warzen/4.png
/Dokumente/usb-warzen/4.png_max_200kb.jpg
/Dokumente/usb-warzen/5.png
/Dokumente/usb-warzen/5.png_max_200kb.jpg
/Dokumente/usb-warzen/6.png
/Dokumente/usb-warzen/6.png_max_200kb.jpg
/Dokumente/usb-warzen/7.png
/Dokumente/usb-warzen/7.png_max_200kb.jpg
/Dokumente/usb-warzen/8.png
/Dokumente/usb-warzen/8.png_max_200kb.jpg
/Dokumente/usb-warzen/9.png
/Dokumente/usb-warzen/9.png_max_200kb.jpg

back ls latest listet alle Dateien auf, die gesichert worden, kann prima mit pipe und den unix tools verarbeitet werden.

z.B.

back ls latest|grep usb-warzen

Kein Treffer

Aber Achtung! latest listet also nur den aktuellen snapshot, wenn man nach Bildern sucht passt das hier zufällig, wenn man Dokumente finden will, muss in diesem Fall die korrekte snapshotid verwendet werden.

 

Oder das Kommando find nutzen Achtung Case sensitiv! 

Vorteil gegenüber der ersten Methode, es sucht in allen snapshots...

back find  usb-warzen*

repository cfa22dd6 opened successfully, password is correct

Found matching entries in snapshot 84e0f2bc from 2021-02-19 12:17:52

/Dokumente/usb-warzen

/Dokumente/usb-warzen/1.png

/Dokumente/usb-warzen/1.png_max_200kb.jpg

/Dokumente/usb-warzen/10.png

/Dokumente/usb-warzen/10.png_max_200kb.jpg

/Dokumente/usb-warzen/11.png

/Dokumente/usb-warzen/11.png_max_200kb.jpg

/Dokumente/usb-warzen/2.png

/Dokumente/usb-warzen/2.png_max_200kb.jpg

/Dokumente/usb-warzen/3.png

/Dokumente/usb-warzen/3.png_max_200kb.jpg

/Dokumente/usb-warzen/4.png

/Dokumente/usb-warzen/4.png_max_200kb.jpg

/Dokumente/usb-warzen/5.png

/Dokumente/usb-warzen/5.png_max_200kb.jpg

/Dokumente/usb-warzen/6.png

/Dokumente/usb-warzen/6.png_max_200kb.jpg

/Dokumente/usb-warzen/7.png

/Dokumente/usb-warzen/7.png_max_200kb.jpg

/Dokumente/usb-warzen/8.png

/Dokumente/usb-warzen/8.png_max_200kb.jpg

/Dokumente/usb-warzen/9.png

/Dokumente/usb-warzen/9.png_max_200kb.jpg


Found matching entries in snapshot c3d0c516 from 2021-02-19 17:16:48

/Dokumente/usb-warzen/1.png

/Dokumente/usb-warzen/1.png_max_200kb.jpg

/Dokumente/usb-warzen/10.png

/Dokumente/usb-warzen/10.png_max_200kb.jpg

/Dokumente/usb-warzen/11.png

/Dokumente/usb-warzen/11.png_max_200kb.jpg

/Dokumente/usb-warzen/2.png

/Dokumente/usb-warzen/2.png_max_200kb.jpg

/Dokumente/usb-warzen/3.png

/Dokumente/usb-warzen/3.png_max_200kb.jpg

/Dokumente/usb-warzen/4.png

/Dokumente/usb-warzen/4.png_max_200kb.jpg

/Dokumente/usb-warzen/5.png

/Dokumente/usb-warzen/5.png_max_200kb.jpg

/Dokumente/usb-warzen/6.png

/Dokumente/usb-warzen/6.png_max_200kb.jpg

/Dokumente/usb-warzen/7.png

/Dokumente/usb-warzen/7.png_max_200kb.jpg

/Dokumente/usb-warzen/8.png

/Dokumente/usb-warzen/8.png_max_200kb.jpg

/Dokumente/usb-warzen/9.png

/Dokumente/usb-warzen/9.png_max_200kb.jpg

 

Angenommen, ich möchte das Verzeichnis /Dokumente/usb-warzen/  wieder herstellen, es aber, weil ich unsicher bin vorerst in /tmp speichern: 

time back restore c3d0c516 -i /Dokumente/usb-warzen/ --target /tmp
repository cfa22dd6 opened successfully, password is correct

restoring <Snapshot c3d0c516 of [/home/bed/Dokumente] at 2021-02-19 17:16:48.706292257 +0100 CET by bed@Bullseye> to /tmp


real    0m17,422s

user    0m1,095s

sys    0m0,399s

bed@Bullseye:~$ ls -ltr /tmp/Dokumente/usb-warzen/

insgesamt 24392
-rw-r--r-- 1 bed bed 1851594 11. Nov 19:28 7.png
-rw-r--r-- 1 bed bed 1484032 11. Nov 19:28 2.png
-rw-r--r-- 1 bed bed 1573462 11. Nov 19:28 1.png
-rw-r--r-- 1 bed bed 1877277 11. Nov 19:28 6.png
-rw-r--r-- 1 bed bed 1629634 11. Nov 19:28 5.png
-rw-r--r-- 1 bed bed  600155 11. Nov 19:28 4.png
-rw-r--r-- 1 bed bed 4588086 11. Nov 19:28 3.png
-rw-r--r-- 1 bed bed 1615798 11. Nov 19:28 9.png
-rw-r--r-- 1 bed bed 1986633 11. Nov 19:28 8.png
-rw-r--r-- 1 bed bed 2383447 11. Nov 19:28 10.png
-rw-r--r-- 1 bed bed  168904 11. Nov 19:28 9.png_max_200kb.jpg
-rw-r--r-- 1 bed bed  187365 11. Nov 19:28 8.png_max_200kb.jpg
-rw-r--r-- 1 bed bed  188381 11. Nov 19:28 7.png_max_200kb.jpg
-rw-r--r-- 1 bed bed  191964 11. Nov 19:28 6.png_max_200kb.jpg
-rw-r--r-- 1 bed bed  188648 11. Nov 19:28 5.png_max_200kb.jpg
-rw-r--r-- 1 bed bed  166986 11. Nov 19:28 4.png_max_200kb.jpg
-rw-r--r-- 1 bed bed  198799 11. Nov 19:28 3.png_max_200kb.jpg
-rw-r--r-- 1 bed bed  198531 11. Nov 19:28 2.png_max_200kb.jpg
-rw-r--r-- 1 bed bed  180148 11. Nov 19:28 1.png_max_200kb.jpg
-rw-r--r-- 1 bed bed  199263 11. Nov 19:28 11.png_max_200kb.jpg
-rw-r--r-- 1 bed bed 3276158 11. Nov 19:28 11.png
-rw-r--r-- 1 bed bed  197313 11. Nov 19:28 10.png_max_200kb.jpg


Wie lösche ich auf dem sftp Server rekursiv?

Das hat zwar direkt nichts mit restic zu tun, aber da ich es beim experimentieren brauchte ....

Weil ich mich beim Testen im Pfad geirrt hatte, war der Wunsch nach einem rekursiven Löschen vorhanden.

lftp bietet das und erspart damit u.U. eine Menge Tipparbeit :-) (Bei Debian apt install lftp)

Bei lftp gibt man einfach rm -r Directory ein, dann rattert es im Karton und man kann derweil in einem anderen Tab weiterarbeiten.

 

 

Wenn ich überhaupt mäkeln wollte, dann ist es der name "restic" Wie bitte? Weiß jemand wie dieser Name zu Stande kam? Ich habe gefragt, ein Namengenerator war schuld ;-) Aber mittlerweile kann ich restic fehlerfrei tippen, alles gut.

Eine gute Idee ist immer back command --help. (oder eben restic command --help)

Damit komme ich gut zurecht.

Ps: Ich musste den Quellcode editieren, werde wohl auch noch etwas dran schrauben, also ab- und zu mal schauen, wen es denn interessiert ...

Linksammlung:

blog.datentraeger.li/?p=1733 

techgoat.net/index.php?id=5 

³ media.ccc.de/v/c4.openchaos.2016.01.restic

restic.readthedocs.io/en/stable/index.html