Bash: Anleitungen und Praxiswissen | Seite 15 | mironsoft Blog
Bash
-
13.02.2025
Dateiberechtigungen entstehen in Bash-Skripten oft nur implizit über die geerbte umask, statt explizit gesetzt zu werden, und genau das führt zu unnötig weiten Zugriffsrechten. Dieser Artikel zeigt, wie umask, chmod und chown systematisch eingesetzt werden, welche Risiken SUID und SGID in Automatisierungsskripten bergen, und wie ein eigenes Audit-Skript Dateiberechtigungen zuverlässig prüft.
-
08.02.2025
curl -fsSL https://install.example.com | bash installiert in einer einzigen Zeile, führt dabei aber Code mit den vollen Rechten des aufrufenden Benutzers aus, ohne dass jemand ihn vorher gesehen hat. Wer versteht, welche konkreten Risiken dieses Muster mitbringt, kann es mit wenigen zusätzlichen Schritten deutlich sicherer machen, ohne die Bequemlichkeit für Endnutzer komplett zu opfern.
-
07.02.2025
Wer Bash-Skripte als monolithischen Block schreibt, kann sie kaum sinnvoll testen. Erst die Trennung in reine, isolierte Funktionen macht Unit-Tests fuer Bash ueberhaupt moeglich, und mit bats-core lassen sich Rueckgabewerte, stdout und Fehlerpfade genauso strukturiert pruefen wie in jeder anderen Programmiersprache.
-
06.02.2025
PATH-Hijacking nutzt aus, dass Bash-Skripte Befehle über eine geerbte, potenziell manipulierte PATH-Variable auflösen, statt feste, vertrauenswürdige Pfade zu verwenden. Dieser Artikel zeigt, wie ein manipulierter PATH oder IFS ein Skript zur Ausführung fremder Programme bringt, wie Cronjobs und Systemd-Units besonders betroffen sind, und mit welchen konkreten Maßnahmen sich Bash-Skripte gegen dieses Angriffsmuster absichern lassen.
-
06.02.2025
curl ist das Schweizer Taschenmesser für HTTP aus der Shell. Wer die richtigen Flags kennt, JSON-Antworten mit jq präzise parst, Authentifizierung sicher handhabt und Retry-Logik mit exponential Backoff implementiert, automatisiert REST-APIs direkt in Bash – ohne externe Frameworks.
-
02.02.2025
Ein selbstgeschriebenes CLI-Tool wirkt erst richtig fertig, wenn die Tab-Taste Unterbefehle, Optionen und Argumente vorschlägt, genau wie bei git oder docker. Das Bash-Builtin complete zusammen mit compgen macht das ohne externe Abhängigkeiten möglich, von einer einfachen Wortliste bis zu dynamisch aus einer Datenbank oder API geladenen Vorschlägen.
-
01.02.2025
Ein neuer Codepfad in einem produktiv genutzten Bash-Skript ist immer ein Risiko, egal wie sorgfältig er getestet wurde. Ein Feature Flag verwandelt dieses Alles-oder-Nichts-Risiko in eine steuerbare Entscheidung: Der neue Pfad existiert im Skript, ist aber standardmäßig aus, lässt sich gezielt für einzelne Läufe aktivieren und im Ernstfall mit einem einzigen Wert wieder abschalten.
-
30.01.2025
Das case-Statement wird in vielen Bash-Skripten nur für eine Handvoll fester Zeichenketten genutzt, kann aber deutlich mehr: mehrere Pattern in einem Zweig, Wildcard-Kombinationen, gezieltes Fallthrough mit ;& und ;;& sowie case-insensitive Matching. Wer diese Werkzeuge kennt, ersetzt lange, schwer wartbare if/elif-Ketten durch kompakte, gut lesbare Verzweigungen.
-
29.01.2025
Der Operator [[ $string =~ regex ]] wertet reguläre Ausdrücke direkt in der Bash aus und füllt bei einem Treffer das Array BASH_REMATCH mit dem Gesamtmatch und allen Capture-Groups. Wer diesen Mechanismus kennt, kann Log-Zeilen, Versionsnummern oder Konfigurationswerte parsen, ohne einen einzigen externen Prozess zu starten, muss aber auch die Grenzen des POSIX-ERE-Dialekts gegenüber grep, sed und PCRE im Kopf behalten.
-
23.01.2025
Bash kann TCP-Sockets öffnen, HTTP-Requests von Hand zusammenbauen und Ports testen, ganz ohne curl, wget oder netcat, über das eingebaute Pseudo-Device /dev/tcp. Wer die Mechanik dahinter versteht, kann minimale Container und restriktive Umgebungen absichern, muss aber auch die klaren Grenzen kennen: kein TLS, kein UDP mit echter Rückmeldung, keine Header-Kontrolle wie bei einem echten HTTP-Client.