Fehlersuche mit „git bisect“

In größeren Projekten arbeiten meist mehrere Entwickler an einem Git-Repository. Und wie es bei der Software-Entwicklung nun einmal ist kommt es ab und an zu Fehlern. Bei einer komplexen Versionshistorie ist es allerdings schwierig den Ursprungscommit eines Fehlers zu finden. An dieser Stelle hilft das Git-Kommando bisect weiter. Zum Start muss Git mitgeteilt werden welcher der letzte (aus Sicht des Entwicklers) korrekt funktionierende und der erste fehlerhafte Commit ist. Dies geschieht im Terminal auf dem Repository mittels:

git bisect start
git bisect good <hash>
git bisect bad <hash>

Danach checkt bisect einen Commit aus. Dieser Commit muss nun auf den gesuchten Fehler überprüft werden. Ist der Fehler weiterhin vorhanden, so teilen wir dies Git mittels:

git bisect bad

mit. Ist der Fehler nicht mehr vorhanden, so teilen wir Git dies ebenfalls mit:

git bisect good

Dieser Prozess wird dabei so lange durchlaufen bis Git uns am Ende des Prozesses mitteilt, in welchem Commit der Fehler seinen Ursprung hat. Danach können wir uns den Commit notieren und bisect mittels:

git bisect reset

mitteilen das der Prozess zu einem Ergebnis geführt hat. Dadurch wird das Repository in seinen Ursprungszustand versetzt.

Spam-Blacklists abfragen

Manchmal kommt es vor das ein Server welchen man betreut oder betreibt auf einer DNS-based Blackhole List landet. In einem solchen Fall gilt es zu überprüfen ob man nur auf einer oder zwei dieser Listen steht, oder ob man global aufgeführt ist.

Der Dienst am Beispiel von seeseekey.net

Der Dienst am Beispiel von seeseekey.net

Mit dem Dienst MultiRBL welcher unter multirbl.valli.org/lookup/ zu finden ist, lässt sich schnell herausfinden auf welchen Listen der entsprechende Server aufgeführt ist – was der erste Schritt ist um das Problem einzugrenzen und abzustellen.

System Integrity Protection unter Mac OS X 10.11

Unter der neuen Mac OS X 10.11 (El Capitan) gibt es ein neues Feature welches auf den Namen System Integrity Protection hört und auch als rootless bekannt ist. Die System Integrity Protection kurz SIP sorgt dabei dafür das selbst mit root-Zugangsrechten bestimmte Verzeichnisse nicht mehr ohne weiteres beschrieben werden können.

Dies betrifft die Verzeichnisse /bin, /sbin, /usr und /System. Eine kleine Ausnahme besteht beim /usr Verzeichniss, hier kann immer noch /usr/local beschrieben werden. Eine weitere Einschränkung ist das man sich nicht mehr an Systemprozesse anhängen kann. Daneben können nun nur noch von Apple bzw. von einem zertifizierten Entwickler signierte Kernel-Erweiterungen geladen werden – das gleiche gilt auch für Installer, welche auf obige Verzeichnisse schreibend zugreifen wollen. Unsignierte Erweiterungen werden vom Betriebssystem abgelehnt.

Der Grund für die Einführung der SIP ist die Erhöhung der Systemsicherheit. So ist es für eine Software relativ einfach root-Rechte zu erhalten und wenn es über die Frage an den Anwender nach dem Passwort ist. Mit Hilfe der SIP können root-Rechte nun nicht mehr so übergreifend zur Infiltrierung des Systems genutzt werden. Den Status der SIP kann man auf dem Terminal mittels:

csrutil status

erfragen. Möchte man die System Integrity Protection deaktivieren, so muss das Recovery-System gestartet werden und dort im Terminal:

csrutil disable

eingegeben werden. Nach einem Neustart ist die SIP dann deaktiviert.

VeraCrypt – der TrueCrypt Nachfolger

Nachdem die Full-Disc-Encryption Lösung TrueCrypt vor einiger Zeit überraschend eingestellt wurde, gibt es mittlerweile einige Kandidaten für die Nachfolge desselbigen. Mit VeraCrypt gibt es dabei nicht nur einen Nachfolger im Geiste, sondern eine Weiterentwicklung der bestehenden TrueCrypt-Codebasis.

VeraCrypt auf CodePlex

VeraCrypt auf CodePlex

VeraCrypt funktioniert dabei unter Windows, Mac OS X und Linux, liefert eine erhöhte kryptografische Sicherheit und beseitigt einige Sicherheitslücken von TrueCrypt. Bedingt durch die TrueCrypt-Lizenz handelt es sich auch bei VeraCrypt nicht um freie Software nach den Richtlinien der OSI. Bezogen werden kann es über die CodePlex-Seite des Projektes.