Systemd-Service-Einheitseinschränkungen: Eine häufige Ursache für Daemon-Startfehler

2025-09-20

Ein klassisches Problem für Linux-Systemadministratoren ist ein Daemon, der im normalen System nicht startet, aber manuell als root ausgeführt funktioniert. Traditionelle Ursachen sind unvollständige $PATH-Umgebungsvariablen, SELinux und AppArmor. Zunehmend sind Systemd-Service-Einheitseinschränkungen (dokumentiert in systemd.exec) der Übeltäter. Direktiven wie ProtectHome und PrivateTmp können kryptische "Berechtigung verweigert" oder "Datei nicht gefunden" Fehler verursachen, oder sogar indirekte Fehler wie das Blockieren von DNS-Abfragen. Das Entfernen von Einschränkungen aus der .service-Datei des Daemons kann bei der Diagnose helfen, aber zukünftige Daemons können von diesen Einschränkungen abhängen, was die Fehlersuche erschwert.

Mehr lesen
Entwicklung Daemon

Die vernachlässigte Client-seitige Web-Erfahrung: Warum niemand sich um langsame Ladezeiten kümmert

2025-08-23

Dieser Artikel behandelt das oft übersehene Problem schlechter Client-seitiger Web-Erfahrungen. Während Server-seitige Probleme häufig diskutiert werden, weist der Autor auf die anhaltende Vernachlässigung von langsamen Ladezeiten, umständlichen Benutzeroberflächen und anderen Client-seitigen Frustrationen hin. Am Beispiel des jüngsten Updates von Github berichten viele Benutzer von langsamer Leistung, doch Website-Betreiber priorisieren Server-seitige Probleme. Der Autor argumentiert, dass Websites erhebliche Macht besitzen und Benutzern nur Boykotte als einzigen Ausweg lassen, die weitgehend wirkungslos sind. Websites fehlt oft eine effektive Messung der Benutzerabwanderung, was zu ihrer Apathie gegenüber Client-seitigen Erfahrungen beiträgt. Schließlich gibt der Autor zu, redaktionelle Entscheidungen getroffen zu haben, die Benutzer negativ beeinflussen könnten, aber er sieht dies als notwendigen Kompromiss.

Mehr lesen
Entwicklung Client-seitig

OpenBSDs pflog unter Linux replizieren: nftables und ulogd2

2025-08-16

Dieser Artikel beschreibt, wie die praktische pflog-Funktionalität von OpenBSD und FreeBSD unter Linux mit nftables und ulogd2 für die Protokollierung und Analyse von Netzwerkpaketen repliziert werden kann. Durch Hinzufügen von 'log group'-Anweisungen zu nftables-Regeln und Weiterleiten von Logs an verschiedene Netlink-Sockets kann tcpdump für die Live-Überwachung und ulogd2 für die Protokollerstellung auf der Festplatte verwendet werden. Der Artikel erläutert die Konfiguration von ulogd2, die Protokollierung in pcap-Dateien und weist auf Einschränkungen und Alternativen zu ulogd2 hin.

Mehr lesen
Entwicklung

Die unerwartete Persistenz traditioneller Unix-Login-Server

2025-08-03

Der Autor untersucht die überraschend anhaltende Nutzung traditioneller Unix-Login-Server in einem hypothetischen Neuaufbau seiner Rechenumgebung als moderne Greenfield-Entwicklung. Trotz der Verbreitung von Containerisierung werden zwei Arten beibehalten: ein allgemeiner Server mit CPU- und RAM-Limits und Compute-Server mit uneingeschränktem Ressourcenzugriff. Obwohl die Nutzung zurückgegangen ist, bleiben diese Server überraschend relevant, insbesondere für SSH auf interne Maschinen oder das Ausführen von Backends für Entwicklungsumgebungen wie VSCode. Der Autor merkt auch die Nutzung von Login-Servern für Cron-Jobs und den Grund an, warum Benutzer Code auf Fileservern speichern, was eng mit der Nutzung ihres SLURM-Clusters und ihrer Compute-Server verbunden ist. Das Fehlen eines robusten Support-Modells erschwert die genaue Nachverfolgung der Nutzung.

Mehr lesen
Entwicklung Unix-Server

Rekursive Abstiegsparsing: Gewinnt Einfachheit über Komplexität?

2025-07-28

Der Autor untersucht verschiedene Ansätze zum Parsen von Computersprachen, insbesondere den Vergleich zwischen rekursiven Abstiegsparsern und LR-Parser-Generatoren. Während LR-Parser-Generatoren komplexere Grammatiken verarbeiten können, bevorzugt der Autor rekursive Abstiegsparsing aufgrund der einfachen Handhabung, der Unabhängigkeit von externen Tools und der Möglichkeit, den Parser direkt in der Zielsprache zu schreiben, was den Lern- und Debugging-Aufwand reduziert. Für Entwickler, die gelegentlich Parser für kleine Sprachen erstellen müssen, überwiegen die Einfachheit und Benutzerfreundlichkeit von rekursiven Abstiegsparsern deren Einschränkungen bei der Verarbeitung komplexer Grammatiken.

Mehr lesen
Entwicklung rekursiver Abstieg

Bash-Skript-Debugging: Elegante Behandlung von `set -e`-Fehlern

2025-07-27

Dieser Artikel beschreibt einen eleganten Trick zur Behandlung von Fehlern, die durch `set -e` in Bash-Skripten ausgelöst werden. Mit `trap 'echo "Exit status $? at line $LINENO from: $BASH_COMMAND"' ERR` können Informationen wie die Fehlernummer, der fehlerhafte Befehl und der Exit-Status ausgegeben werden, wenn das Skript einen Fehler findet, was das Debugging erleichtert. Dies nutzt Bash-spezifische Funktionen: die Umgebungsvariablen `$LINENO`, `$BASH_COMMAND` und die Trap-Bedingung `ERR`. Andere Shells wie sh verhalten sich möglicherweise anders und unterstützen diese Funktionalität möglicherweise nicht vollständig.

Mehr lesen
Entwicklung Skript-Debugging

Die kuriose Einschränkung von errno(3) unter Linux

2025-07-04

Die Linux-Manpage errno(3) enthüllt eine merkwürdige Einschränkung: errno kann selbst bei erfolgreichen Funktionsaufrufen geändert werden und wird niemals von einem Systemaufruf oder einer Bibliotheksfunktion auf null gesetzt. Dies rührt von der traditionellen Unix-Architektur her, bei der Systemaufrufe typischerweise errno nur bei Fehlern zurückgeben und ihn bei Erfolg unverändert lassen. C-Bibliotheksfunktionen können mehrere Systemaufrufe durchführen, von denen einige fehlschlagen können, ohne den Erfolg der Bibliotheksfunktion selbst zu beeinträchtigen, wodurch errno den Fehlerwert behält. ANSI C und POSIX haben dieses Verhalten geerbt und fordern, dass errno nur dann aussagekräftig ist, wenn eine Funktion fehlschlägt und ihre Dokumentation die Setzung von errno festlegt.

Mehr lesen
Entwicklung

Der unerwartete Aufstieg der X-Terminals: Nicht Teil des ursprünglichen X-Designs

2025-06-23

X wurde ursprünglich nicht für die Verwendung mit X-Terminals entwickelt. Frühe X-Systeme liefen auf vollwertigen Workstations; selbst die disklosen, obwohl sie für rechenintensive Aufgaben auf Server angewiesen waren, verfügten immer noch über eine vollständige lokale Unix-Umgebung. X-Terminals kamen viel später, erst nachdem sich X als erfolgreiches herstellerübergreifendes Unix-Windowing-System etabliert hatte. NCD, wahrscheinlich unter den Ersten, die X-Terminals produzierten, wurde 1987 gegründet, lieferte aber wahrscheinlich erst 1989 ein Produkt aus. Dies wird durch das späte Erscheinen von XDM (X Display Manager) bestätigt, das mit X11R3 im Oktober 1988 veröffentlicht wurde. Obwohl die Verwendung von X-Terminals ohne XDM technisch möglich war, vereinfachte seine Präsenz den Prozess erheblich, was darauf hindeutet, dass die Akzeptanz von X-Terminals hinter der Reife von X selbst zurückblieb.

Mehr lesen
Technologie X-Terminals

Open-Source-Maintainer-Rebellion: Der einzige Maintainer von libxml2 priorisiert Sicherheitsprobleme nicht mehr

2025-06-19

Der einzige Maintainer von libxml2 hat angekündigt, Sicherheitsprobleme nicht mehr anders als Bugs zu behandeln, was eine Debatte in der Open-Source-Community ausgelöst hat. Der Autor argumentiert, dass dies den wachsenden Unmut der Maintainer über die kommerzielle Nutzung von Open-Source-Software widerspiegelt. Es wird zwischen persönlicher, kooperativer Open-Source-Software (z. B. Debian, BSD) und der kommerziellen Nutzung von Open-Source-Software unterschieden. Der Autor prognostiziert eine Zukunft, in der die Open-Source-Community diesen Unterschied zunehmend betonen und die Interaktion mit Unternehmen möglicherweise ändern wird.

Mehr lesen
Entwicklung

WireGuard: 1-Gbit/s-Netzwerksättigung erreicht

2025-06-17

Der Autor ging bisher davon aus, dass Verschlüsselung zu langsam ist, um eine Netzwerksättigung zu erreichen, selbst bei Gigabit-Ethernet. Neueste Tests zeigten jedoch, dass WireGuard auf gängigen Servern (Xeon E-2226G) ohne besondere Optimierung problemlos eine 1-Gbit/s-Netzwerkverbindung sättigt und dabei eine geringe CPU-Auslastung aufweist. Dies widerlegt die Annahme des Autors zur Verschlüsselungsgeschwindigkeit und legt nahe, dass viele Verschlüsselungsmethoden theoretisch eine 1-Gbit/s-Verbindung sättigen könnten. Es wird darauf hingewiesen, dass bestehende VPN-Server möglicherweise eine Leistungsoptimierung benötigen.

Mehr lesen

Argparse-Einschränkung bei der Schachtelung von sich gegenseitig ausschließenden Gruppen: Ein frustrierendes Rätsel

2025-06-14

Das Python-Modul argparse bietet zwar praktische Funktionen zum Verarbeiten von Befehlszeilenargumenten, einschließlich sich gegenseitig ausschließender Gruppen, weist aber eine frustrierende Einschränkung beim Verschachteln auf. Betrachten Sie ein Programm mit mehreren Timeout-Einstellungen, bei dem Benutzer entweder einzelne Timeouts anpassen oder sie vollständig deaktivieren können. Argparse unterstützt nicht die Verschachtelung einer "no-timeout"-Option in einer Gruppe einzelner Timeout-Optionen, was die Konfiguration umständlich macht. Während Sie eine sich gegenseitig ausschließende Gruppe in einer regulären Gruppe verschachteln können, ist das Gegenteil nicht unterstützt, und die offizielle Dokumentation gibt diese Einschränkung explizit an. Dies zwingt Entwickler dazu, manuell zu überprüfen, ob bestimmte Optionen verwendet wurden, was Komplexität hinzufügt.

Mehr lesen
Entwicklung

Unix Inode 0: Eine vergessene Ecke

2025-06-02

Dieser Artikel untersucht die Einschränkungen von Inodenummern in frühen Unix-Systemen und den Sonderfall von Inode 0. Der Autor stellte fest, dass die POSIX-Spezifikation die Verwendung von Inode 0 zwar nicht explizit verbietet, viele Systeme und Programme in der Praxis jedoch von nicht-Null-Inodenummern abhängen können. Die Verwendung von Inode 0 kann zu unerwartetem Verhalten führen, da einige Programme dies beispielsweise als 'Datei nicht gefunden'-Signal interpretieren könnten. Obwohl das Experimentieren mit Inode 0 mithilfe von Dateisystemen im Benutzerraum möglich ist, wird dies aufgrund potenzieller Kompatibilitätsprobleme und unvorhersehbarer Ergebnisse nicht empfohlen.

Mehr lesen
Entwicklung

Das JavaScript Proof-of-Work Wettrüsten gegen LLMs

2025-05-28

Websites setzen zunehmend auf JavaScript-basierte Proof-of-Work-Systeme, wie Xe Iasos Anubis, um aggressive LLMs und Webscraper zu bekämpfen. LLMs können jedoch kompromittierte Maschinen nutzen, um erhebliche CPU-Leistung zu erhalten, um diese Herausforderungen zu lösen. Das Problem ist, dass LLMs in einer feindlichen Umgebung arbeiten, was es schwierig macht, zwischen echter Proof-of-Work und bösartigem JavaScript zu unterscheiden. Dies setzt LLMs der CPU-Mining oder anderen Angriffen aus. Der Versuch, Proof-of-Work-Systeme zu identifizieren, ist für LLMs ein verlorenes Spiel, da böswillige Akteure einen Anreiz haben, sie zu imitieren. Dies führt zu einem Wettrüsten zwischen Websites und LLMs, wobei jeder versucht, die Ressourcennutzung zu optimieren und gleichzeitig seine Interessen zu schützen.

Mehr lesen
Entwicklung

Die Entwicklung der Dateinamenslängenbeschränkungen unter Unix

2025-05-25

Frühe Unix-Versionen hatten überraschend kurze Dateinamensbeschränkungen: zunächst nur 8 Byte, später auf 14 erhöht. Dies hing mit dem einfachen Design der Unix-Verzeichnisstruktur zusammen. Der Artikel untersucht detailliert die Verzeichnisstrukturen von Unix V4 und früheren Versionen und erklärt die Gründe für die Entwicklung der Dateinamenslängenbeschränkung und wie 16-Byte-Verzeichniseinträge besser zu 512-Byte-Disk-Blöcken passen. Er behandelt auch die begrenzte Anzahl von Inodes in frühen Unix-Versionen, was einige der fest codierten Einschränkungen früherer Systeme widerspiegelt.

Mehr lesen
Entwicklung

Die Tücken beim Sortieren von IPv6-Adressen mit Unix-Tools

2025-05-19

Dieser Artikel befasst sich mit den Herausforderungen beim Sortieren von IPv6-Adressen mit Standard-Unix-Befehlszeilentools wie 'sort'. Die Komplexität ergibt sich aus der hexadezimalen Darstellung von IPv6, fehlenden führenden Nullen und der Kurzschreibweise '::'. Der Autor argumentiert, dass eine direkte Lösung die Umwandlung von IPv6-Adressen in ihre vollständige, erweiterte Form oder die Verwendung einer Programmiersprache wie Perl oder Python für eine effiziente Sortierung erfordert, da vorhandene Unix-Hilfsprogramme schlecht geeignet sind, die Nuancen der IPv6-Adressformatierung direkt zu verarbeiten.

Mehr lesen

Single-Process-Architektur: Eine elegante Lösung für die moderne Webentwicklung

2025-04-21

Bei der Aktualisierung der Software seines Blogs stellte der Autor fest, dass eine Single-Process-Architektur einfacher zu handhaben ist als sein CGI-basierter Ansatz, um die Komplexitäten des modernen Webs zu bewältigen. Ein einzelner Prozess ermöglicht einfachen Zugriff auf den gemeinsam genutzten Zustand und vereinfacht Aufgaben wie die Erkennung von bösartigem Datenverkehr, die Begrenzung der Anforderungsrate und die Implementierung von Caching. Obwohl der Speicher- und CPU-Verbrauch ein Problem darstellt, ist die einfache Implementierung einer Single-Process-Architektur von Vorteil, wenn es darum geht, verschiedene Formen von Missbrauch zu bekämpfen, insbesondere unvorhergesehene. Der Autor geht davon aus, dass mit dem zunehmenden Missbrauch im Web Single-Process-Architekturen immer wichtiger werden.

Mehr lesen

ZFS-Komprimierungsparadoxon: Logische vs. physikalische Blöcke

2025-04-17

Eine mit `dd` erstellte Nulldatei mit 256 KB auf einem ZFS-Dateisystem mit aktivierter Komprimierung zeigt ein rätselhaftes Verhalten: `ls -l` zeigt die Größe als 256 KB an, aber `ls -s` und `ls -slh` zeigen eine viel kleinere Größe, fast Null. Dies liegt an der effizienten Komprimierung von ZFS, die zu einer minimalen Anzahl physikalischer Blöcke führt. Der Artikel untersucht drei Methoden zur Messung der Dateigröße: logische Größe (in Bytes), Anzahl der physikalischen Blöcke und Anzahl der logischen Blöcke. Er weist darauf hin, dass das POSIX-Feld `st_blocks` nicht angibt, welche Größe gemeldet werden soll, was zu potenziellen Änderungen des `st_blocks`-Werts beim Verschieben von Dateien zwischen Dateisystemen und sogar zu einer potenziellen Größenzunahme der Datei führen kann, die die Kapazität des neuen Dateisystems übersteigt.

Mehr lesen
Entwicklung

Ein persönlicher Ansatz zur Unix-Paketverwaltung

2025-04-13

Der Autor teilt eine clevere Methode zur Verwaltung persönlicher Softwarepakete auf Unix-Systemen. Er verwendet eine Verzeichnisstruktur `~/lib/`, um Software für verschiedene Architekturen zu speichern, wobei jedes Programm in einem separaten, versionierten Unterverzeichnis installiert wird (z. B. `emacs-30.1`). Ein Verzeichnis `~/bin/bin.` enthält symbolische Verknüpfungen oder Wrapper-Skripte, die auf diese Programme verweisen und einen einfachen Wechsel zwischen Versionen ermöglichen. Für Tools wie pipx und Cargo behält der Autor deren Standardinstallationsorte bei, erstellt aber Verknüpfungen in `~/bin/bin.`, um Pfadkonflikte zu vermeiden. Dieses Setup ist nicht perfekt, aber sehr nützlich für die Verwaltung von Software, die nicht über den System-Paketmanager verfügbar ist oder zu alt ist.

Mehr lesen
Entwicklung Softwareverwaltung

Geheimnisvoller SSH-Passwort-Deaktivierungs-Bug unter Ubuntu 24.04

2025-04-06

Das Deaktivieren des SSH-Passwortzugriffs über das Internet bei gleichzeitiger Zulassung im lokalen LAN auf einem Ubuntu 24.04-Server schien mit sshd_config unkompliziert. Jedoch wurde eine benutzerdefinierte Konfigurationsdatei in /etc/ssh/sshd_config.d/ nach dem Neustart des SSH-Daemons ignoriert. Der Übeltäter war die 'First-Come, First-Served'-Konfigurationsregel von sshd_config und eine vom System generierte Datei '50-cloud-init.conf' mit 'PasswordAuthentication yes', die vor der benutzerdefinierten Datei geladen wurde. Die Umbenennung der benutzerdefinierten Konfigurationsdatei in '10-no-passwords.conf' löste das Problem, indem sichergestellt wurde, dass sie zuerst geladen wird.

Mehr lesen
Entwicklung Serverkonfiguration

Überprovisionierung von Glasfaser: Vorsicht ist besser als Nachsicht

2025-03-25

Bei der Planung der Glasfaserverkabelung zwischen Räumen oder Gebäuden sollte man lieber mehr Glasfaser verlegen als man zunächst benötigt. Zukünftige Erweiterungen, Bandbreiten-Upgrades und neue Protokolle erfordern zusätzliche Kapazität. Darüber hinaus treten Glasfaserfehler auf – manchmal unerklärlicherweise – und das Vorhandensein von Reservepaaren ermöglicht eine schnelle Wiederherstellung. Obwohl Monomode- und Multimode-Glasfasern unterschiedliche Anwendungen haben, ist ausreichende Redundanz entscheidend, um Ausfallzeiten und Kosten zu minimieren.

Mehr lesen

Lokis strukturierte Metadaten: Ein logistischer Albtraum

2025-03-19

Grafana Loki, oft als „Prometheus für Logs“ bezeichnet, verwendete anfänglich ein ähnliches Datenmodell wie Prometheus. Dies erwies sich jedoch als katastrophal für Systemlogs (Syslog oder Systemd-Journal). Im Gegensatz zu Prometheus speichert Loki jeden Satz von Bezeichnerwerten separat und komprimiert die Log-Speicherung nicht, was zu Kardinalitätsexplosionen führt. Um dies zu beheben, führte Loki „strukturierte Metadaten“ ein, die jedoch ab Version 3.0.0 immer noch unterentwickelt sind. Strukturierte Metadaten-Bezeichner werden nicht wie reguläre Loki-Bezeichner behandelt, was eine andere Abfragesyntax erfordert. Die Migration bestehender Bezeichner ist komplex und potenziell katastrophal, mit dem Risiko, unbeabsichtigt hochkardiale Bezeichner zu erstellen. Ein Upgrade erfordert Vorsicht, die Migration bestehender Daten ist unglaublich teuer und eine sorgfältige Überlegung ist unerlässlich, bevor man es in neuen Projekten verwendet.

Mehr lesen
Entwicklung Systemprotokolle

JSON: Eine pragmatische Wahl für maschinenlesbare Ausgaben unter Unix

2025-02-24

Der Autor plädiert für die Verwendung von JSON als maschinenlesbares Ausgabeformat, basierend auf seiner Erfahrung beim Löschen von E-Mails aus einer Postfix-Mail-Warteschlange. Obwohl nicht perfekt, bietet JSON mehrere praktische Vorteile auf Unix-Systemen: Klarheit, breite Kompatibilität, umfassende Tool-Unterstützung und einfache Konvertierung in andere Formate. Für neue Programme schlägt der Autor vor, nur JSON als maschinenlesbares Ausgabeformat zu verwenden, um die Komplexität der Gestaltung benutzerdefinierter Formate zu vermeiden und die Interoperabilität zwischen Unix-Programmen zu fördern.

Mehr lesen

Versteckte Cache-Monster: Warum verschwindet Ihr Speicherplatz?

2025-02-08

Viele Unix-Programme cachen Daten in versteckten `.cache`- und `.local`-Verzeichnissen, was es Benutzern erschwert, diese großen Cache-Dateien zu finden und zu löschen, die viel Speicherplatz verbrauchen. Der Autor hat aus erster Hand erlebt, wie Doktoranden in einer gemeinsam genutzten Dateiserverumgebung von diesen versteckten Caches verwirrt waren, wobei Hunderte von GB an Speicherplatz unbemerkt verbraucht wurden. Der Artikel fordert Entwickler auf, Caches in sichtbaren Verzeichnissen zu speichern, und schlägt vor, dass Tools zur Speicherplatznutzung den Inhalt dieser versteckten Verzeichnisse explizit anzeigen, um die Speicherplatzverwaltung des Benutzers zu erleichtern.

Mehr lesen

Hochentwickelter Phishing-Angriff nutzt VPN-Zugriff

2025-01-29

Die Informatikabteilung der Universität Toronto wurde von einem hochentwickelten Phishing-Angriff getroffen. Der Angreifer fälschte eine E-Mail-Adresse der Abteilung und stahl erfolgreich das Passwort eines Benutzers. Besonders alarmierend ist, dass der Angreifer die gestohlenen Anmeldeinformationen nutzte, um sich schnell für das VPN der Abteilung zu registrieren und anschließend das interne SMTP-Gateway zum Versenden von Spam verwendete. Dies zeigt eine vorherige Aufklärung des VPN- und E-Mail-Umfelds des Zielsystems und unterstreicht immer ausgefeiltere Angriffstechniken und die Notwendigkeit robuster Cybersicherheitsabwehr.

Mehr lesen
Technologie VPN-Ausnutzung

Deaktivierung der Passwort-Authentifizierung für internetfähiges SSH: Sicherheitsverbesserung oder Übertreibung?

2025-01-18

Dieser Artikel wägt die Vor- und Nachteile der Deaktivierung der Passwort-Authentifizierung für internetfähiges SSH ab. Während starke Passwörter Schutz vor Brute-Force-Angriffen bieten, argumentiert der Autor, dass die Deaktivierung der Passwort-Authentifizierung zusätzliche Sicherheitsebenen gegen gestohlene Anmeldeinformationen, SSH-Server-Schwachstellen und Angriffe auf Standardkonten bietet. Dies bringt jedoch auch Nachteile mit sich, z. B. die Unfähigkeit, sich ohne einen Schlüsselpaar anzumelden. Der Autor schlägt eine sorgfältige Abwägung der Kompromisse basierend auf den individuellen Umständen vor.

Mehr lesen

/etc/glob: Die unbekannte Geschichte des Shell-Globbing in frühen Unix-Systemen

2025-01-13

Dieser Artikel beleuchtet die Geschichte und Funktion von `/etc/glob` in frühen Unix-Systemen. Vor der V7 Bourne Shell wurde das Erweitern von Platzhaltern (Globbing) im Unix-Shell nicht vom Shell selbst, sondern von dem externen Programm `/etc/glob` übernommen. `/etc/glob` empfing den Befehl und die Argumente, erweiterte die Platzhalter und führte dann den Befehl aus. Der Artikel beschreibt detailliert, wie `/etc/glob` in verschiedenen Unix-Versionen funktionierte, einschließlich der Behandlung von Escape-Zeichen und der Begründung für die Verwendung eines externen Programms – wahrscheinlich aufgrund von Ressourcenbeschränkungen in frühen Systemen.

Mehr lesen
Entwicklung Unix-Geschichte

WireGuard-Konfiguration: Komplexität von einfach bis fortgeschritten

2025-01-05

Dieser Blogbeitrag untersucht verschiedene Komplexitätsstufen bei der WireGuard-Konfiguration, von der einfachsten Variante mit vollständig isolierten internen IP-Adressräumen bis hin zum anspruchsvollsten 'VPN'-Setup, bei dem einige Endpunkte sowohl innerhalb als auch außerhalb des WireGuard-Tunnels erreichbar sind. Der Autor beschreibt die Schwierigkeit und potenzielle Probleme jeder Konfiguration, wie z. B. Routing-Konflikte und rekursives Routing. Der Artikel betont die Bedeutung der Vorausplanung und schlägt vor, sich für einfachere Konfigurationen zu entscheiden, um komplexes Routing bei der Gestaltung einer WireGuard-Umgebung zu vermeiden.

Mehr lesen
Entwicklung Netzwerkkonfiguration

Potenzielles Problem bei zpool import/export in Linux OpenZFS

2024-12-26

Ein potenzielles Problem besteht in Linux OpenZFS-Versionen (Stand 2.3.0) beim Importieren und Exportieren von ZFS-Pools. Selbst wenn keine Dateisysteme in einem ZFS-Pool die Eigenschaft 'sharenfs' gesetzt haben, führen `zpool import` und `zpool export` dennoch `exportfs -ra` aus. Dies kann manuell hinzugefügte oder geänderte NFS-Exporte löschen und Umgebungen wie Hochverfügbarkeitssysteme mit benutzerdefinierten NFS-Exportkonfigurationen beeinträchtigen. Das Problem liegt darin, dass OpenZFS blind `exportfs -ra` ausführt, unabhängig davon, ob NFS-Exporte geändert werden müssen.

Mehr lesen
Entwicklung

Serverneustart fehlgeschlagen: Neustart nach Abkühlung behebt Kernel-Absturz

2024-12-25

Der Autor stieß auf zwei identische Server mit Kernel-Abstürzen, die sich nicht durch einen einfachen Neustart beheben ließen. Während des Absturzes gaben die Server eine Reihe von Machine-Check-Ausnahmefehlern in der System-Firmware-Phase aus, was auf CPU-Hardwareprobleme hinweist. Eine Abkühlphase von einigen Minuten nach dem Ausschalten, gefolgt von einem Neustart, behob das Problem. Dies zeigt, dass selbst eine kurze Stromaussetzung bestimmte x86-Systemkomponenten möglicherweise nicht vollständig zurücksetzt und eine Abkühlphase für die vollständige Wiederherstellung erforderlich ist.

Mehr lesen

Zweites Leben für einen zehn Jahre alten Fileserver: Kostengünstige Speicherlösung

2024-12-17

Ein Unternehmen betreibt immer noch einen über zehn Jahre alten Fileserver in der Produktion. Obwohl veraltet und mit einem BMC, das Java für KVM-over-IP benötigt, eignet er sich aufgrund seiner 16 Festplatteneinschübe und 10G-Ethernet-Ports ideal zur Wiederverwendung. Als kostengünstiger „Bring Your Own Disk“-Speicher-Server eingesetzt, erfüllt er die Anforderungen nach großem Speicherplatz und geringer Leistung, trotz seines Alters und des begrenzten RAMs. Dies unterstreicht den Wert der Wiederverwendung alter Hardware, wenn die Anforderungen passen.

Mehr lesen
← Previous 1