Technik

Textmails in Thunderbird importieren

12. März 2024 · Anwendungen · andreas · Kein Kommentar

In einem Verzeichnis auf der lokalen Festplatte schlummerten noch ein paar Uralt-Mails, welche alle als einzelne Textdateien gespeichert waren. Leider bietet Thunderbird keine Möglichkeit, über die Oberfläche einen Importvorgang anzustoßen, aber es geht auch recht einfach durch die Hintertür.

In der Oberfläche wird in den “Lokalen Ordnern” mittels Rechsklick ein neuer Ordner “GanzalteMails” angelegt. Dies bewirkt, daß im Profilverzeichnis ("~/.thunderbird/PROFILNAME/Mail/Local Folders/") zwei Dateien “GanzalteMails” und “GanzalteMails.msf” erzeugt werden. In diesem Ordner wird auf Dateisystemebene nun händisch ein neuer Unterordner “GanzalteMails.sbd” erzeugt, in welchen die Textdateien kopiert werden.

Damit Thunderbird die Texte auch tatsächlich als Mailbox-Files erkennt, ist es wichtig, daß jede Datei - wie in RFC 4155 “The application/mbox Media Type” beschrieben - mit einem korrekten Vorspann beginnt:

mbox database files can be recognized by having a leading character sequence of “From”, followed by a single Space character (0x20), followed by additional printable character data

Was genau nach dem Leerzeichen kommen muß, kann sich zwischen verschiedenen Anwendungen unterscheiden, weshalb die meisten Mailclients fast alles akzeptieren, was auch nur halbwegs standardkonform aussieht. Thunderbird genügt z.B. ein

From -

als Kennzeichnung. Wer dies einfach und komfortabel an den Anfang aller “*.txt”-Dateien einfügen möchte, kann sed als Werkzeug verwenden:

$ sed -i '1 i\From -' *.txt

Dateien in einer Samba-Freigabe ausführen

26. Januar 2024 · Anwendungen · andreas · Kein Kommentar

Nach dem Kopieren einiger Dateien auf eine Samba-Freigabe weigerte sich Windows, die Dateien auszuführen.

Die Lösung dokumentiert das Samba-Wiki unter dem Hinweis “Making Files Executable”: in der Standard-Einstellung dürfen nur Dateien, welche auf dem Host das “Executable”-Recht haben, auch ausgeführt werden.

Hier hilft ein Aufruf von “find” die notwendigen Rechte zu verteilen:

$ find . -name "*.exe" -exec chmod +x {} \;

Je nach Einsatzszenario muß auch noch die Einstellung

acl allow execute always = yes

entweder im globalen Bereich oder in der Definition einer Freigabe in der “smb.conf” hinzugefügt werden.


Systemfehler: Abbrechen oder Abbrechen?

19. Dezember 2023 · Anwendungen · andreas · Kein Kommentar

Die genauen Umstände des auf den 17. Dezember 2002 datierenden Screenshots lassen sich leider nicht mehr rekonstruieren.

Abbrechen - Abbrechen

Offensichtlich kam es beim Ausführen der Funktion “Ändern/Entfernen” von Microsoft Office 97 zu einem Systemfehler. Die Wahlmöglichkeit zwischen “Abbrechen” und “Abbrechen” ist allerdings nicht wirklich hilfreich.


Fehlerhafter Kernel in Debian 12.3

10. Dezember 2023 · Betriebssysteme · andreas · 2 Kommentare

Gestern wurde die Verteilung von Debian 12.3 gestoppt. Grund dafür ist ein Fehler im Kernel 6.1.64-1, der zur Beschädigung von Daten auf ext4-Dateisystemen führen kann.

Debian 12.3 image release delayed

December 9th, 2023

Due to an issue in the ext4 file system with data corruption in kernel 6.1.64-1, we are pausing the planned Debian 12.3 point release images for today while we attend to fixes.

Please do not upgrade any systems at this time, we urge caution for users with UnattendedUpgrades configured.

Genauere Informationen gibt es im Debian Bug-Report “linux: ext4 data corruption in 6.1.64-1

Sofern die Systeme nach der Aktualisierung des Kernels noch nicht neu gestartet wurden, war der fehlerhafte Kernel auch noch nicht aktiv und es wird weiterhin der Vorgänger benutzt:

$ uname -a
Linux *** 6.1.0-13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.55-1 (2023-09-29) x86_64 GNU/Linux

Es ist noch der Kernel 6.1.55-1 vom 29. September (Debian Paket 6.1.0-13) aktiv, welcher den Fehler nicht enthält.

$ apt list --installed | grep linux-image

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
linux-image-5.10.0-26-amd64/now 5.10.197-1 amd64 [Installiert,lokal]
linux-image-6.1.0-13-amd64/stable,now 6.1.55-1 amd64 [Installiert,automatisch]
linux-image-6.1.0-14-amd64/stable,now 6.1.64-1 amd64 [Installiert,automatisch]
linux-image-amd64/stable,now 6.1.64-1 amd64 [installiert]

Der fehlerhafte Kernel ist installiert und würde beim nächsten Systemstart verwendet werden. Das fehlerhafte Kernel-Paket wird deinstalliert, so daß auf jeden Fall sichergestellt ist, daß bei einem Neustart weiterhin der Kernel 6.1.55-1 verwendet wird.

$ sudo apt remove linux-image-6.1.0-14-amd64
...
Die folgenden Pakete werden ENTFERNT:
linux-image-6.1.0-14-amd64 linux-image-amd64
...

Soweit im Debian Forum zu lesen, schlägt ein Versuch, die Kernel-Installationsdatei “linux-signed-amd64/linux-image-6.1.0-14-amd64_6.1.64-1_amd64.deb” herunterzuladen mit einen “403 Forbidden”-Fehler fehl, so daß der fehlerhafte Kernel auch nicht mehr heruntergeladen werden kann.


Manuell neue Domain zu Firefox Multi-Account Containers hinzufügen

9. Dezember 2023 · Anwendungen · andreas · Kein Kommentar

Die Firefox Multi-Account Containers sind eine offizielle Erweiterung von Mozilla, die hoffentlich bald nativ im Browser eingebaut wird. Aufgabe ist die Trennung des Website-Speichers in Tab-spezifische Container, d.h. Cookies, die in einem Container vorhanden sind, sind in anderen Containern nicht verfügbar.

Im Gegensatz zur Funktionalität ist die Verwaltbarkeit leider alles andere als gelungen - in der aktuell verfügbaren Version können nur im Browser geöffnete Domains einer Umgebung hinzugefügt werden, das manuelle Hinzufügen einer Domain zu einer Umgebung ist nicht vorgesehen. Dies hat den Nachteil, daß bei allen Websites, welche mit Redirections arbeiten, die Multi-Account Containers nur eingeschränkt verwendet werden können.

Glücklicherweise kann hier mittels “about:debugging”, der Entwicklerwerkzeuge und der Javascript-Konsole Anbhilfe geschaffen werden. Das Vorgehen wurde von Philip Snowberger in “Another way to manually add another site to Firefox Multi-Account Containers” auf Github beschrieben:

Nach dem Starten des Debug-Modus wird zuerst das Objekt einer Domain ausgelesen, zu deren Umgebung eine weitere Domain hinzugefügt werden soll.

Im konkreten Beispiel soll die Domain “accounts.ebay.de” der Umgebung hinzugefügt werden, in der “www.ebay.de” bereits vorhanden ist:

obj = Object(await browser.storage.local.get("siteContainerMap@@_www.ebay.de"))

Dann wird eine Kopie der vorhandenen Einstellungen unter dem Zielnamen angelegt

obj["siteContainerMap@@_accounts.ebay.de"] = obj["siteContainerMap@@_www.ebay.de"]

und die ursprüngliche Domain aus dem ausgelesenen Objekt gelöscht:

delete obj['siteContainerMap@@_www.ebay.de']

Als letzter Schritt wird das Objekt zurückgeschrieben

await browser.storage.local.set(obj)

womit die Tab-Umgebung um die neue Domain erweitert wurde.