Zeitstempel in die Bash-History einfügen

Ich gebe es gerne zu: Meine Bash-History ist mein Notizbuch. Natürlich kommt das bei weitem nicht an eine „richtige“ Dokumentation heran. Praktisch ist es aber dennoch, zumal ich so schon direkt auf jedem System die „passenden“ Befehle parat habe. Gerade bei gewissen Wartungsarbeiten, die zwar regelmäßig, aber doch nicht so häufig vorkommen, als dass man sich die Syntax immer korrekt ohne externe Hilfe merken kann, finde ich das ungemein praktisch.

Einziges Manko: Im Standard-Fall sieht man in der Bash-History zwar das „was“, nicht jedoch das „wann“. Eine kleine Änderung an der Bash-Profil-Datei schafft hier Abhilfe. Mehr lesen „Zeitstempel in die Bash-History einfügen“

Vertiefende Entschleunigung – warum ich künstliche Ladezeiten für Myst zu ScummVM hinzugefügt habe

Seit ich Myst irgendwann im Jahre 2005 für mich entdeckt habe, bin ich buchstäblich verliebt. Für mich bedeutet die Myst-Serie eine Reise in eine andere Welt – im Vergleich zu einem „gewöhnlichen“ Point-and-Click-Adventure ist das einfach eine völlig andere Erfahrung. Ich muss dabei nicht erwähnen, dass gerade die beiden ersten Teile – das „ursprüngliche“ Myst und dessen Nachfolger Riven – einfach bemerkenswerte Spiele sind.

Meiner Meinung nach ist die außergewöhnliche Spieltiefe bzw. Immersion das Resultat der damals geltenden technischen Einschränkungen. Myst wurde 1993 auf dem unglaublichen neuen Format namens „CD-ROM“ veröffentlicht, was eine riesige Speichermenge von 650 Megabyte bedeutet.

Mehr lesen „Vertiefende Entschleunigung – warum ich künstliche Ladezeiten für Myst zu ScummVM hinzugefügt habe“

rsync: Inhaber während Kopiervorgang anpassen

Nur kurz notiert – gerade eben habe ich zwei Linux-Systeme zusammengefasst, dabei sollten dann natürlich auch die home-Verzeichnisse der einzelnen Benutzer mit übernommen werden. Ich habe dazu zuerst auf dem „Ziel-System“ alle dort noch fehlenden Benutzer angelegt und anschließend die Home-Verzeichnisse aus einem Backup (da konfigurationstechnisch deutlich simpler) wiederhergestellt. Änderungen gab es dort ohnehin schon länger nicht mehr, die „Lücke“ von wenigen Stunden war also gut zu verkraften.

Das Problem: Das Backup wird mit --numeric-ids erstellt, da es primär zur Wiederherstellung des kompletten Servers gedacht ist. Auf dem „Ziel-System“ haben die Datei-Berechtigungen dann natürlich nicht gepasst, da ich vorab nicht die User- und Gruppen-IDs angepasst hatte.

Mehr lesen „rsync: Inhaber während Kopiervorgang anpassen“

WordPress: Anzahl gespeicherter Revisionen begrenzen

Immer, wenn Du eine Seite oder einen Beitrag bearbeitest und den aktuellen Zwischenstand speicherst, legt WordPress den jeweiligen Stand als eigene Revision ab. Über die einzelnen Revisionen ist es dann möglich, jederzeit einen früheren Stand des Beitrags oder der Seite wiederherzustellen, sollte dir etwa ein Fehler unterlaufen sein.

Die Anzahl der angelegten Revisionen wird dabei grundsätzlich nicht begrenzt. Gerade bei umfangreichen Seiten oder Artikel mit häufigen Änderungen führt dies schnell dazu, dass die WordPress-Datenbank unnötig „anwächst“. Da ich selbst die Revisions-Funktion bislang nie genutzt habe, war ich auf der Suche nach einer Möglichkeit, die Anzahl der angelegten Revisionen zu begrenzen.

Mehr lesen „WordPress: Anzahl gespeicherter Revisionen begrenzen“
|

qemu-guest-agent als Schnittstelle zwischen VMs und Proxmox

Da mit KVM/QEMU realisierte virtuelle Maschinen im Vergleich zu einem Container deutlich strikter von dem Host-System getrennt sind, stellt QEMU mit dem qemu-guest-agent für Linux-Gastsysteme einen begleitenden Service zur Verfügung. qemu-guest-agent fungiert dabei als Schnittstelle zwischen den VMs und dem Host-System.

Einige Funktionen wie das Durchreichen von ACPI-Informationen für ein sauberes Herunterfahren der Gastsysteme sind relativ bekannt. Wusstest Du aber, dass Du sogar beliebige Befehle direkt über dein Proxmox-Hostsystems an die VMs übergeben kannst?

Auch die Virtualisierungsumgebung Proxmox Virtual Environment nutzt KVM/QEMU als Virtualisierungs-Technologie. Da das qemu-guest-agent-Interface auf den ersten Blick nicht sonderlich intuitiv zu bedienen ist, stellt Proxmox den qm guest-Befehl zur Verfügung, welcher als Brücke zwischen dem Host-System und den VMs dient.

Mehr lesen „qemu-guest-agent als Schnittstelle zwischen VMs und Proxmox“

Apache2: Nur bestimmte Dateitypen erlauben

Mit folgender Regel in der vHost- bzw. Server-Konfiguration bringt man Apache 2.4 dazu, nur bestimmte Dateitypen auszuliefern und den Zugriff auf alle anderen zu verbieten:

# Restrict access to allowed file extensions
<FilesMatch ".+\.(?!(php|css|js|png|jpg|jpeg)$)[^\.]+?$">
        Require all denied
</FilesMatch>

Erlaubt sind in dem Beispiel nur die Endungen .php, .css, .js, .png, .jpg und .jpeg. In der oben stehenden Regel wird dabei festgelegt, dass alle Dateiendungen zunächst gesperrt werden. Die erlaubten Dateitypen werden davon explizit ausgenommen und gelten damit als erlaubt.

Ein direkter Zugriff auf die Apache-Server-Konfiguration ist hier übrigens nicht erforderlich: Die Regeln funktionieren auch in einer .htaccess-Datei, weshalb ein Einsatz auch in einer Shared-Hosting-Umgebung möglich ist.

|

Proxmox: Backup-Geschwindigkeit anpassen

Bei einem von mir betreuten Proxmox-Server gehören automatisierte Backups über die in Proxmox integrierte Backup-Funktion zu meinem Backup-Konzept. Da der Server hauptsächlich als Storage-Server genutzt wird, kommen dort anstelle von SSDs noch „normale“ Festplatten zum Einsatz.

Kurz zur Grundkonfiguration: Die VMs laufen in einem RAID10 mit ZFS, die Backups werden auf ein eigenes RAID1 gespeichert. Anfangs funktionierte das auch sehr gut, jedoch kam es bei einer wachsenden VM-Zahl in der Standard-Einstellung während der Backups zu erheblichen Problemen aufgrund der IO-Last.

Mehr lesen „Proxmox: Backup-Geschwindigkeit anpassen“

Notfall-Wiederherstellung mithilfe der GitHub Events API

Am 16. August 2020 haben Unbekannte das libretro-Projekt angegriffen. Zuerst sich der Angreifer Zugriff auf den Buildbot-Server des Projektes und löschte diesen nahezu vollständig. Anschließend gelang es ihm, das GitHub-Profil eines hochrangigen Mitglieds des libretro-Teams zu übernehmen. Mithilfe dieses Accounts zerstörte er daraufhin durch das pushen eines leeren, „initialen“ Commits mehrere Repositories.

Solche Attacken sind nicht unüblich und in der Vergangenheit auch bereits mehrfach vorgekommen. Auf den ersten Blick erscheint es, dass in diesem Fall alle Daten der betroffenen Repositories verloren sind.

Mehr lesen „Notfall-Wiederherstellung mithilfe der GitHub Events API“

MSYS2: SSH-Authentifizierung mit PuTTYs pageant

Der SSH-Client PuTTY bringt mit „pageant“ ein praktisches Tool zur Authentifizierung an einem Server mithilfe von SSH-Keys mit. Nachdem alle gewünschten SSH-Keys in pageant geladen wurden, werden die Keys automatisch von PuTTY zur Authentifizierung am Server genutzt.

Neben PuTTY selbst können auch weitere Anwendungen pageant nutzen. Einige Programme wie WinSCP und FileZilla bringen die Unterstützung hierfür bereits mit, in anderen Fällen muss diese erst noch nachgerüstet werden.

Unter Windows verwende ich als Entwicklungsumgebung bevorzugt MSYS2. Im Gegensatz zu WSL können damit auch (ohne einen Cross-Compiler nutzen zu müssen) native Win32-Binaries mit GCC gebaut werden; das „Look and Feel“ unterscheidet sich dabei kaum von einer „Linux-Shell“.

Ab und an ist es dann auch praktisch, direkt in einer MSYS2-Shell SSH, scp oder rsync nutzen zu können. Und noch praktischer ist es, wenn man auch hier zur Authentifizierung gleich die (zumindest bei mir) meist ohnehin in pageant geladenen SSH-Keys verwenden kann.

Mehr lesen „MSYS2: SSH-Authentifizierung mit PuTTYs pageant“