mysql: Wildcard Zugriffsrechte für Datenbanken

Möchte man einem mysql/mariadb Benutzer automatisch Zugriff auf alle Datenbanken geben, die auf ein bestimmten Muster zutreffen (z.B. alle Datenbanken, welche mit jdoe_ beginnen) geht das ganz einfach mit dem Konstrukt privileges on wildcard name (username\_%):

Continue reading mysql: Wildcard Zugriffsrechte für Datenbanken

channel: no ‚mirrors.sought.rules.yerp.org‘ record found, channel failed

Seit 11. März 2021 bekommen Linux Administratoren, die spamassassin unter CentOS 7 am laufen haben die folgende Meldung vom sa-update cronjob:

channel: no 'mirrors.sought.rules.yerp.org' record found, channel failed
11-Mar-2021 05:53:59: SpamAssassin: Unknown error code 3 from sa-update
Continue reading channel: no ‚mirrors.sought.rules.yerp.org‘ record found, channel failed

Mit python an IP/Port binden

Fürs testen von Netzwerkverbindungen ist es manchmal nützlich, wenn man eine schnelle Möglichkeit hat sich an edin bestimmtes interface und port zu binden. – Letzteres wäre zwar auch mit netcat (nc -l 5000) möglich, doch damit kann man sich nicht an eine bestimmte IP, bwz. ein Interface binden.

Continue reading Mit python an IP/Port binden

systemd service files mit override anpassen

Muss man ein systemd service file anpassen, um beispielsweise dem Service bestimmte Umgebungsvariablen mitzugeben ist es keine gute Idee, diese direkt ins service file zu schreiben, da diese Änderung bei einer Systemaktualisierung überschrieben werden kann.

Und es gibt dafür eine viel elegantere Methode.

Continue reading systemd service files mit override anpassen

Fehlerbehandlung in Shell Scripts

Das Standardverhalten in shell scripts ist -anders als in jeder normaler Programmiersprache-, dass bei Fehlern einfach weitergemacht wird.

Und das kann natürlich üble Auswirkungen haben, wenn man später in einem shell script auf Eingaben von früherer Stelle angewiesen ist und diese nicht korrekt verarbeitet werden konnten.

Zum Glück kann man als Option auch in der Shell setzen, dass bei einem Fehler sofort das Script abgebrochen- und nicht einfach weiter gemacht wird.

Continue reading Fehlerbehandlung in Shell Scripts

Volles Unicode in MySQL Datenbanken

MySQL hatte lange Zeit Probleme mit Zeichensätzen; der bekannte Zeichensalat (auch „Mojibake“ genannt) war die Folge. Dann kam endlich der universelle Zeichensatz Unicode, bzw. UTF8. Praktisch verborgen blieb jedoch bis heute, dass MySQL standardmässig nur einen „beschränkten Unicode Zeichensatz“ verwendet. Dieser besteht nur aus 3, anstelle von 4 Zeichen und war wohl ursprünglich als „Performace-Optimierung“ gedacht.

Das reicht zwar für die allermeisten Schriftzeichen und Symbole, beispielsweise aber nicht für die mittlerweile sehr häufig verwendeten emojis. Schlimmer noch, probiert man ein solches Zeichen (z.B. ein emoji) in die Datenbank einzufügen, wird alles was nach dem Zeichen kommt abgeschnitten. Und das kann wiederum zu schlimmen Sicherheitslücken führen.

Dabei hatte MySQL seit etwa 2010 einen „neuen“ (bzw. den vollen) UTF8-Zeichensatz eingeführt mit dem Namen: utf8mb4.

Neuere Web-Applikationen, wie WordPress oder Typo3 verwenden diesen seit einiger Zeit standardmässig, allerdings nur bei einer Neuinstallation. Viele ältere Datenbanken haben also noch den unvollständigen Zeichensatz eingestellt. Höchste Zeit also die alten Datenbanken mit dem richtigen Unicode Zeichensatz zu aktualisieren.

Continue reading Volles Unicode in MySQL Datenbanken