Skip to content

Bugwrangler

Ich bin gerade dabei, meinem Thinkpad ein ordentliches Gentoo zu verpassen. Doch dieses bzw. diverse Pakete weigern sich standhaft.

Zunächst begann es mit TeXLive. Das Gentooebuild ist noch maskiert. Daher waren Probleme zu erwarten. Beim ersten Versuch scheiterte es an meinen USE-Flags. Ich hatte hier u.a. -X gesetzt. Damit das Paket dann auch ordentlich kompiliert, muss dem ./configure die Option --without-pdfopen mitgegeben werden. Nachdem ich dies ergänzt hatte, gab es nur noch kleinere Probleme.

Der nächste Stolperstein war die Aktualisierung von minit. Felix hat in der letzten Version dafür gesorgt, dass seine libowfat mit benutzt wird. Die .c-Dateien haben jedoch ein falsches Include. Nachdem ich das angepasst hatte, kompilierte es wieder. Interessantes Detail am Rande: Der Gentoo-Maintainer kennt offenbar weder dietlibc noch libowfat (zumindest, wenn man den Bugreport so liest).

Nicht dass es langweilig wird, geht es mit e2fsprogs. Dort klappt der Test tst_iscan nicht. Den Bug gibt es offensichtlich seit dem ext4-Patch.

Weiter hätte ich dann noch coreutils, binutils, pam und die glibc zu bieten. Bei denen habe ich nur teilweise eine Ahnung, warum es nicht klappt. Da werde ich im Laufe der nächsten Tage wahrscheinlich noch den einen oder anderen Bugreport schreiben oder erweitern. :-)

In den letzten Tagen habe ich gelernt, ebuild-Dateien zu schreiben und gesehen, wie es bei Gentoo unter der Haube funktioniert. Auch habe ich mal wieder etwas mehr Quälcode gelesen. Das war so interessant, dass ich mich doch richtig zwingen muss, wieder an das Wesentliche (Lernen für die nächsten Prüfungen) zu denken. ;-)

Affengriff auf linuxisch

Stell dir vor, dein Linux ist unwiederbringlich abgestürzt und du weißt nicht, wie du es wieder zum Leben erwecken sollst. Von Windows weißt du/hast du gehört, dass Strg+Alt-Entf funktioniert. Aber wie macht man das auf einem Linuxsystem? Ganz einfach! Du denkst, dir Raising Skinny Elephants Is Utterly Boring und tippst Druck+Alt+(r|s|e|i|u|b) (also jeden Buchstaben nacheinander). Schon fährt der Rechner runter und startet neu.

Jetzt fragst du dich sicher, was du da eigentlich gemacht hast?! Du hast die magische SysRq-Taste (System Request) gedrückt und deinen Kernel angewiesen:

r
den Rawmodus des Keyboards auszuschalten,
s
die Festplatten zu synchronisieren,
e
das Signal SIGTERM (Prozess beenden) an alle Prozesse (außer init) zu schicken,
i
das Signal SIGKILL (Erzwungenes Beenden) an alle Prozesse (außer init) zu senden,
u
alle Dateisysteme nur lesbar zu mounten und
b
das System sofort neu zu booten.

via anarchaia

Distributionshure

Seit letzter Woche bin ich nun im Besitz eines Thinkpad R52. Diesen werde ich jetzt vorrangig zum Test diverser Distributionen und Werkzeuge einsetzen. In dieser Woche durften schon drei Distributionen Platz nehmen. So geht derzeit die grml auf die Version 0.9 zu und da wollte ich gern mal das grml2hd-Skript testen. Gentoo durfte auch Platz nehmen, um mal die CPU ein wenig zu beanspruchen. Außerdem brauche ich für ein Seminar SuSE und ab der übernächsten Woche werde ich mich dann auch mal mit Fedora auseinandersetzen. Daher ist der Rechnername distributionshure wohl ganz passend gewählt. ;-)

Linux für Paranoide

Auch du sitzt mit deinem Alufolie-Hut vor deinem Linuxrechner? Dann habe ich hier das richtige für dich: Tinfoil Hat Linux. Diese Linuxvariante läuft von Diskette (ja, die kleinen viereckigen Plastedinger!) und soll dazu dienen, PGP-Schlüssel zu speichern. Die Autoren haben sich hierzu eine Reihe von Sicherungsmassnahmen einfallen lassen. Ich denke, für jeden halbwegs paranoiden Menschen ist dieses Linux einen Test wert.

via Anarchaia

Chemnitzer Linux-Tage 2007 werfen die Schatten voraus

TuX-Familie Im ersten Märzwochenende im Jahr 2007 werden in Chemnitz wieder die Chemnitzer Linux-Tage stattfinden. Momentan laufen die Vorbereitungen hierzu an und falls du Interesse an einem Vortrag oder Workshop hast, solltest du diesen jetzt anmelden. Auch wenn es bis zur Deadline am 2007-01-04 noch Zeit ist, gilt auch hier: Wer zuerst kommt, mahlt zuerst.
CLT-Logo

Unterschiede beim rekursiven Löschen

Vor einigen Tagen verabschiedete sich ein Nutzer im IRC mit rm -rf /* als Kommentar. Dies löste eine Diskussion aus, ob es denn einen Unterschied zwischen rm -rf / und rm -rf /* gibt, wenn root dies ausführt. Natürlich war die Antwort, es gibt einen Unterschied, schnell gefunden. Jedoch gab es Differenzen, wie denn diese Unterschiede aussehen. Mein Ansatz sieht folgendermaßen aus:

Die Eingabe rm -rf / wird manchmal scherzhaft als read mail really fast bezeichnet und sollte jedem Linuxnutzer bekannt sein. Dem Befehl rm (remove, löschen) werden die Optionen -r (rekursiv) und -f (force, zwingen) zusammen mit dem Pfad übergeben. Nun begibt sich rm auf eine lange Reise und steigt den Verzeichnisbaum hinab. Unten angekommen, beginnt es alle Verzeichnisse zu löschen. Dies geschieht solange, bis rm wieder im Wurzelverzeichnis angekommen ist. Wenn der Befehl also erfolgreich ausgeführt wurde, ist das komplette Dateisystem gelöscht. (Don’t try this at home, kids!)

Bei der Eingabe von rm -rf /* macht der Stern den kleinen, aber feinen Unterschied. Nachdem die Eingabe bestätigt wurde, wird diese nicht direkt ausgeführt, sondern die Shell expandiert den Stern. Das bedeutet, sie versucht, alle Dateien und Verzeichnisse zu ersetzen. Nachdem die Shell ihre Arbeit erledigt hat, könnte die wirkliche Eingabe, die der Befehl rm bearbeiten muss, so aussehen: rm -rf /bin /boot /dev /etc /home /lib /proc /root /sbin /tmp /usr /var. Bereits hier tritt der erste Unterschied zu tage. Denn für den (unwahrscheinlichen) Fall, dass unterhalb des Wurzelverzeichnis sehr viele Dateien oder Verzeichnisse abgelegt wurden, kann die Shell die Expansion nicht durchführen. Sie bricht dann mit dem Fehler argument list too long ab. Somit würde die Eingabe nicht abgearbeitet werden. Wenn die Shell die Einträge expandieren kann, wird wie im obigen Fall der Verzeichnisbaum durchlaufen und alle Dateien und Verzeichnisse werden gelöscht. Wirklich alle? Nein! Denn es gibt solche, die mit einem Punkt beginnen. Liegt eine solche Datei oder Verzeichnis direkt unterhalb des Wurzelverzeichnisses (also .bar, nicht /foo/.bar), wird dieser Eintrag nicht mit von der Expansion erfasst. In der Folge wird es auch nicht dem Befehl rm übergeben und somit auch nicht gelöscht.

Der wesentliche Unterschied in beiden Befehlen liegt also darin, dass rm -rf / rücksichtslos wirklich alles löscht. Währenddessen löscht rm -rf /* unter bestimmten Umständen entweder gar nichts oder es lässt Dateien und Verzeichnisse, die mit einem Punkt beginnen und im Wurzelverzeichnis liegen unangetastet. Beide Befehle sollte man immer mit äußerster Vorsicht anwenden.

Hitparade der Shellkommandos

ak und Tim machen es vor und ich muss es natürlich nachmachen. :-) Meine Top10 der meistgenutzten Shellkommandos:

jens@qbiathome:~/ > fc -ln 1|awk ‘{print $1}’ |sort|uniq -c | sort -rn |head -n 10
    597 ls
    454 rm
    440 svn
    279 ll
    277 screen
    274 ssh
    242 gpg
    224 man
    206 slrn
    195 less

Ich habe oben das Builtin fc der zsh genutzt. Man kann da auch, wie in die obigen Postings history oder gleich $HISTFILE nutzen.

Welche Verzeichnisse gibt es auf dem Webserver?

Viele von euch haben sich vielleicht schon gefragt, ob ein Webserver vielleicht versteckte, nicht verlinkte Verzeichnisse beherbergt. Da es hierfür kaum Programme gibt, haben sich nion und ak hingesetzt und w3bfukk0r geschrieben. Dieses Programm hat eine Liste von gebräuchlichen Verzeichnisnamen und macht für jeden eine Anfrage an den betreffenden Webserver. Die Antwort des Servers wird ausgewertet und alle Funde werden ausgegeben:

jens@qbiathome:~ > ./w3bfukk0r http://www.kubieziel.de
Starting w3bfukk0r 0.1
Scanning http://www.kubieziel.de/ with 81 words from words.txt

Found http://www.kubieziel.de/tmp/ (not public; HTTP 403)
Found http://www.kubieziel.de/blog/ (HTTP 200)
Found http://www.kubieziel.de/img/ (not public; HTTP 403)
Found http://www.kubieziel.de/pics/ (not public; HTTP 403)
Found http://www.kubieziel.de/cgi-bin/ (not public; HTTP 403)

Found 5 directories.
Server runs: Apache/1.3.33 Ben-SSL/1.55 (Debian GNU/Linux) mod_gzip/1.3.26.1a PHP/4.3.10-16

Je nach Qualität der Liste (Wörterbuch) lassen sich so einige versteckte Verzeichnisse finden. So fanden die beiden auch ein schönes Osterei: Fnord.

Kernelmeldung

Mein Kernel meldete mir vor einiger Zeit, dass er einen Verrat enthüllt hat: kernel: TCP: Treason uncloaked! Peer 213.209.189.74:1638/9030 shrinks window 2766156927:2766159687. Repaired.. Hoffentlich hat er auch den Verräter gefunden und zur Rede gestellt. :-)

Falls jemand eine ernsthafte Antwort sucht: Die Gegenstelle hat die window size reduziert ohne dies meinem Rechner mitzuteilen. Wahrscheinlich ist das ein Versuch eines DoS. In der Regel bekommt der Kernel dies mit und druckt einfach obige Meldung aus.

Erst Coca-Cola und dann Microsoft

Vor einigen Tagen stand in diversen Nachrichtentickern, dass Coca-Cola und auch Pepsi in Indien weder produziert noch verkauft werden darf. Der Bundesstaat Kerala holt nun zum nächsten Schlag aus. Die Software von Microsoft wird aus den Schulen verbannt. Die eineinhalb Millionen Schüler werden von nun an mit GNU Linux versorgt. Offensichtlich ist die Regierung durch einen Vortrag von Richard Stallmann von den Vorteilen Freier Software überzeugt worden.

Second, free software guru Richard Stallman is virtually the consultant to the Kerala government’s IT initiatives. Two weeks, back Stallman visited the state and convinced the government to switch over to free software systems in the educational institutions to begin with.

Es ist das erklärte Ziel, den Bundesstaat Kerala zu dem Zentrum für Freie Software in Indien zu machen. Ich hoffe, dass dies auch ohne den Einsatz der großen Colamarken gelingen wird.

via rediff

cronjob