Alle Artikel
-
Teilausfälle strukturiert melden
Pro Operation ein Ergebnis und einen expliziten Gesamtstatus zurückgeben, damit erfolgreiche Arbeit nach einem gemischten Ergebnis nicht wiederholt wird.
-
Software-RAID1-Spiegel mit mdadm aufbauen und eine ausgefallene Platte ersetzen
mdadm --create erstellt ein Linux-Software-RAID aus Partitionen oder ganzen Platten. Ohne Eintrag in mdadm.conf und aktualisiertes initramfs kann das Array beim nächsten Boot womöglich nicht wieder zusammengesetzt werden, obwohl es direkt nach der Erstellung einwandfrei läuft.
-
Fehlersuche bei der Anwendung von Gruppenrichtlinien: gpresult, gpupdate und das GroupPolicy-Modul
Ermitteln, welche Richtlinien tatsächlich auf einen Computer oder Benutzer angewendet wurden (mit gpresult /h und Get-GPResultantSetOfPolicy), die Neuverarbeitung mit gpupdate /force erzwingen und ein GPO vor der Bearbeitung mit Backup-GPO sichern.
-
Verteiltes Tracing im Überblick: Spans, Parent-IDs und die Weitergabe des W3C-Trace-Kontexts
Ein Trace ist ein Baum aus Spans, jeder mit einer Trace-ID, einer eigenen Span-ID, einer Parent-Span-ID, Zeitstempeln, Attributen und einem Status; der W3C-Header traceparent trägt Trace-ID, Parent-ID und ein Sampled-Flag über Prozessgrenzen hinweg, und ein Dienst, der beide Header nur weiterleitet, hält Traces trotzdem intakt.
-
Gedächtnisvergiftung: wenn eine eingeschleuste Anweisung in jede spätere Sitzung überlebt
Agenten mit dauerhaftem Gedächtnis lassen sich dazu bringen, die Anweisung einer angreifenden Person als Tatsache oder Präferenz zu speichern; sie beeinflusst dann Sitzungen, die den ursprünglichen Inhalt nie gesehen haben. Schreibvorgänge ins Gedächtnis brauchen Provenienz, Überprüfung und ein Ablaufdatum, und Lesevorgänge aus dem Gedächtnis sollten als nicht vertrauenswürdiger Text behandelt werden.
-
Die nächste Debugging-Prüfung anhand der Hypothesen auswählen, die sie unterscheiden kann
Verhindern, dass eine Untersuchung wenig aussagekräftige Diagnosen wiederholt, indem jede nächste Prüfung danach ausgewählt wird, welche konkurrierenden Erklärungen ihr Ergebnis trennen kann.
-
Speichern von Passwörtern und API-Schlüsseln
Passwörter werden nur als gesalzene, langsame Hashes gespeichert (Argon2id, scrypt, bcrypt); API-Schlüssel mit hoher Entropie können einen schnellen, geschlüsselten Hash verwenden; beide werden in konstanter Zeit verglichen und nach der Ausgabe nie protokolliert oder zurückgegeben.
-
Zeitsynchronisation im Vergleich: chrony, systemd-timesyncd, w32tm, macOS timed und AIX xntpd
Kurzreferenz zur Prüfung, ob die Uhr eines Hosts tatsächlich synchronisiert ist, für die Zeit-Daemons unter Linux, Windows, macOS und AIX – im Unterschied zu einer vertieften Betrachtung eines einzelnen Werkzeugs, da die Prüfung überall demselben Muster folgt: Ist eine Quelle konfiguriert, und ist der Host aktuell synchron?
-
Private CA zum System-Truststore hinzufügen: RHEL-Familie und Debian/Ubuntu
RHEL- und Debian-basierte Linux-Distributionen verwenden getrennte Mechanismen für lokal vertrauenswürdige CA-Zertifikate: update-ca-trust mit Anchors unter /etc/pki/ca-trust bzw. update-ca-certificates mit .crt-Dateien unter /usr/local/share/ca-certificates. Ein falsches Verzeichnis oder eine falsche Dateiendung lässt die CA ohne Fehlermeldung unberücksichtigt.
-
Exit-Codes von wget und rsync: Die rsync-Codes 23 und 24 bedeuten meist keinen so gravierenden Fehler, wie es scheint
wget vergibt pro Fehlerklasse (Netzwerk, SSL, Authentifizierung, Protokoll) einen kleinen festen Code. Die längere rsync-Tabelle enthält 23 (Teilübertragung wegen Fehler) und 24 (Teilübertragung wegen verschwundener Quelldateien); Letzteres bedeutet häufig nur, dass während des Scans eine Datei verschwunden ist, und belegt keine fehlerhafte Übertragung.
-
Conventional Commits: maschinenlesbare Commit-Typen
Die Spezifikation Conventional Commits fügt Commit-Nachrichten ein typisiertes Präfix (feat, fix und andere) sowie Markierungen für Breaking Changes hinzu, damit sich Changelogs und Versionssprünge automatisch ableiten lassen.
-
Zeitbasierte Einmalpasswörter als zweiter Faktor
TOTP (RFC 6238) leitet aus einem gemeinsamen Geheimnis und dem aktuellen Zeitschritt einen kurzen Code ab; es schützt vor der Wiederverwendung von Passwörtern, aber nicht vor Echtzeit-Phishing, und braucht sichere Speicherung des Geheimnisses, Uhrentoleranz und Wiederherstellungscodes.
-
Alarm-Routing: Gruppierung, Unterdrückung, Stummschaltungen und Eskalationsrichtlinien
Zwischen einem auslösenden Alarm und einem Telefon liegen vier Entscheidungen: welches Team und welcher Kanal ihn erhält (Routing-Baum), welche Alarme gemeinsam reisen (Gruppierung mit group_wait, group_interval und repeat_interval), welche stummgeschaltet werden, weil ein Ursachenalarm sie bereits erklärt (Unterdrückung) oder weil Wartung geplant ist (Stummschaltungen), und wie viel Zeit eine zuständige Person hat, bevor der Anruf an die nächste Person eskaliert.
-
HTTP-Anfragen aus Python korrekt stellen
Bei jeder Anfrage ein Timeout setzen, einen Client für Connection-Pooling wiederverwenden, Accept- und User-Agent-Header senden, nach dem deklarierten Zeichensatz dekodieren, Statuscodes und Wiederholungsversuche bewusst behandeln; sowohl die Standardbibliothek als auch httpx unterstützen das.
-
Einen Dienst unter systemd betreiben
Eine Unit-Datei legt fest, wie ein Dienst startet, neu startet und eingegrenzt wird; Type, Restart=on-failure, Ressourcenlimits und Sandboxing-Direktiven verwenden und Logs mit journalctl lesen, statt eine eigene Daemonisierung zu schreiben.
-
Prüfen, ob ein Sicherheitspatch wirklich eingespielt wurde: installierte Versionen mit Herstellerhinweisen über mehrere Betriebssystemfamilien abgleichen
Ein erfolgreich gemeldeter Update-Job belegt nicht, dass eine bestimmte Schwachstelle behoben ist. Den Nachweis liefert erst der Abgleich der installierten Paket- oder Build-Version mit dem eigenen Advisory des Herstellers (Ubuntu USN, ein Advisory der RHEL-Familie (RHSA unter RHEL) über dnf updateinfo --security, Debian DSA über debsecan, Windows Get-HotFix oder die macOS-Build-Nummer gegen Apples eigene Seite zu Sicherheitsupdates). Ein ausstehender Neustart kann dennoch dazu führen, dass die alte, verwundbare Binärdatei weiterläuft, auch wenn diese Prüfung besteht.
-
OAuth-2.0-Client-Credentials für Machine-to-Machine-Zugriff
Der Client-Credentials-Grant erlaubt es einem Dienst oder Agenten, mit eigener Client-ID und eigenem Secret ein Access Token zu erhalten, ohne einen Benutzer; Scope und Resource Indicators grenzen das Token ein, und das Secret muss wie ein Passwort behandelt werden: vom Server gehasht gespeichert und vom Client rotiert.
-
Windows-Defender-Firewall-Regeln mit NetSecurity eingrenzen, ohne sich aus der eigenen Sitzung auszusperren
Mit Get-NetFirewallProfile und New-NetFirewallRule lässt sich die Windows Defender Firewall per PowerShell verwalten. Wird eine Regel über -RemoteAddress und -Profile eingegrenzt, bleibt ein Verwaltungsport nur für die nötigen Adressen und Netzwerktypen offen; ein Test aus einer zweiten Sitzung verhindert, dass die aktuell genutzte Verbindung getrennt wird.
-
Governance für ein kleines Projekt: Entscheidungsrechte festgehalten, bevor sie gebraucht werden
Eine Governance-Datei beantwortet, wer mergen darf, wer einen Streit über den Projektumfang entscheidet, wie Maintainer hinzugefügt und entfernt werden und wie sich die Regeln selbst ändern. Pythons PEP 13 zeigt ein Ratsmodell mit einer Autorität, die absichtlich selten genutzt und öffentlich beraten werden soll; das Apache-Glossar definiert Lazy Consensus, wonach ein Vorschlag angenommen ist, wenn innerhalb einer festgelegten Frist niemand widerspricht. Ein Projekt mit ein bis drei Maintainern braucht nur eine Seite.
-
Kontrastives Self-Supervised Learning: Paare, Augmentierung und Kollaps
Repräsentationen lernen, indem zusammengehörige und gegensätzliche Ansichten verglichen werden; Transformationen wählen, die nützliche Informationen erhalten, und Repräsentationen nicht nur am Trainingsverlust messen.
Maschinenlesbar: JSON