Pythontutor

Kleiner Tipp für alle, die Algorithmen in Python debuggen möchten: der Pythontutor visualisiert wunderschön, wie eingegebene Algorithmen durchlaufen werden – Schritt für Schritt.

Einfach hier den Sourcecode eingeben, “Visualize Execution” anwählen und schrittweise anschauen, wie dieser bis zum Ergebnis durchlaufen wird.

Besonders gut eignet sich aus meiner Sicht das Tool, wenn man komplexe Algorithmen mit z.B. Rekursion analysieren will. Zum Beispiel eine mögliche Implementierung für die Fibonacci-Zahlen.

Der Sourcecode ist auf GitHub verfügbar.

vim: read-only Dateien mit root-Rechten speichern

Linux-Admins werden es kennen: arbeitet man viel mit Konfigurationsdateien des Systems oder verschiedener Daemons, kann es passieren, dass man vergisst, sie als root-Benutzer zu öffnen.

Das ist ärgerlich, man muss die Änderungen kopieren, den Editor verlassen (vim: :q! ), ihn wieder mit u.U. sudo (shortcut hierfür: sudo !! zum aufrufen des letzten Kommandos mit root-Rechten) öffnen, Änderungen einfügen und neu abspeichern. Noch ärgerlicher ist es, wenn die Datei nicht bearbeitet, sondern erstellt werden soll und relativ umfangreich ist.

vim-Nutzer sind hier im Vorteil: der Editor ist so flexibel, dass man eine read-only-geöffnete Datei als root speichern kann.

Voraussetzung hierfür ist, dass sudo auf dem System installiert ist und der Nutzer die Berechtigungen hat, hiermit Kommandos auszuführen.

Nun zum Trick:

Die Zauberei hinter diesem Trick ist, dass vim “pipen” kann, denn anders als oft angenommen, ist :w nicht ausschließlich für das Speichern der Datei zuständig, sondern sendet eher den current buffer in die aktuelle Datei, eine andere Datei oder gar in ein anderes Kommando. Und dieses Kommando lässt sich eben auch per sudo ausführen. tee übrigens lässt sich wie ein T-Stück verstehen. Alle Hintergründe hierzu sind bei Stackoverflow erklärt.

Wochenrückblick KW 12/2018

Abwechslung tut gut und deswegen dreht sich diese Ausgabe des Wochenrückblicks schwerpunktmäßig wieder um Open Source Software. Für alle, die sich schon in den letzten Wochen gewundert haben: der Wochenrückblick hat zwischenzeitlich die Themenfelder erweitert und passt als solches nicht immer in den Ubuntuusers.de Planeten oder das OSBN. Wenn es sich allerdings (thematisch) anbietet, versuche ich auch in Zukunft einige Ausgaben extra für die OSS-Blognetze zu schreiben. „Wochenrückblick KW 12/2018“ weiterlesen

Let’s Encrypt: Wildcard-Zertifikate verfügbar

Endlich ist es geschafft: nach etlichen Verzögerungen ist sind die angekündigten Wildcard-Zertifikate, die auch für alle Subdomains einer Domain gültig sind, endlich verfügbar. Dies teilte gestern Josh Aas, ISRG Executive Director, im Forum mit.

Zur Überprüfung und Ausstellung des Zertifikats ist momentan nur die DNS domain validation möglich. Als empfohlener Client für die ACME v2-API, die nun die Wildcard-Option mitbringt, wird weiterhin certbot empfohlen.

Let’s Encrypt Wildcard-Zertifikate verspäten sich

Kurz notiert: Anfang des Jahres schrieb ich, dass Ende Februar 2018 die Wildcard-Zertifikate, also Zertifikate für z.B. *.v-gar.de, öffentlich für alle Let’s Encrypt-Nutzer zur Verfügung stehen sollten. General Availability sollte eigentlich am 27. Februar 2018. Heute haben wir den 02. März.

Ja, das ganze verspätet sich. ETA soll nun laut Homepage Q1 2018 sein. Im Forum gibt es bereits einen entsprechenden Thread. Ein wichtiger Grund für die Verspätung seien hiernach die jüngsten Probleme mit TLS-SNI (siehe Wochenrückblick KW 2).

Wir können gespannt bleiben. Vorfreude ist ja bekanntlich die schönste Freude. 😉 Trotzdem natürlich ärgerlich für alle, die mit dem ursprünglichen Datum bereits geplant haben.

SSH: Host aus der known_hosts entfernen

Viele Linux-Admins, die Hosts neu aufgesetzt haben, kennen dies: bei einem Connect über SSH mit der Neuinstallation haben sich natürlich auch die für den SSH-Betrieb nötigen Keys neu generiert und stimmen somit nicht mehr mit denen aus der known_hosts überein. Das Resultat: eine Man-in-the-Middle-Warnung. Die Warnung ist zwar richtig und gut, aber in diesem Fall nicht hilfreich. Unser SSH-Client muss einfach die Keys vergessen.

Hierfür gibt es insbesondere drei Ansätze: einen “sanften”, einen “harten” und einen temporären. „SSH: Host aus der known_hosts entfernen“ weiterlesen

Postfix: ausgehende IP-Adresse setzen

Gestern habe ich im Wochenrückblick Thomas Leisters aktuelle Mailserveranleitung angesprochen. Heute habe ich für euch zu dieser Anleitung eine kleine Ergänzung, die aus einem Spezialfall entstand.

Mein Mailserver verfügt nicht nur über eine, sondern über zwei IPv4-Adressen. Dadurch kann ich die erste Adresse fürs Management nutzen und die andere für die Kommunikation zwischen Mailservern und -clients. Im DNS ist als MX-Record ausschließlich die Mail-IP gesetzt. Das ist durchaus sinnvoll (Firewall, Flexibilität,…), führt aber insbesondere beim empfohlenen Einsatz des Sender Policy Frameworks zu einem Problem, da Postfix zwar auf der richtigen Mail-IP lauscht, aber möglicherweise über die Management-IP Mails verschickt. Als Folge failt der SPF-Check und die Mail wird entsprechend behandelt.

Nun kann man die Management-IP als erlaubte Adresse im SPF-TXT-Record setzen, so richtig schön ist das aber nicht.

Die Lösung sind die Optionen smtp_bind_address (IPv4) und smtp_bind_address6 (IPv6). In der main.cf gesetzt führen Sie dazu, dass Postfix zum Versenden diese Adressen nutzt und der SPF-Check erfolgreich verläuft.

Für IPv6 mag das sogar noch interessanter sein, da viele Provider dem Server einen /64er-Block zur Verfügung stellen und mit der Option Mails auf einer Adresse abgefertigt werden können.