Artikel mit Tag linux
Verwandte Tags
bizarr abap algorithmen bka-gesetz cms controlling essen freiheit fun helpdesk humor job killfile lart microsoft politik s9y sauerbraten security server software werbung code backtory c freebsd programmieren python scripting shell solaris debian gentoo ubuntu virtualisierung xen apache blog bofh browser coe eclipse fluxbox gmirror gnome hardware ide jail java kde moinmoin munin netbeans open source openbsd paket management php plone ports postgresql redmine root-tools slim sun turbogears vcs foto games image sudoku kernel lighttpd netbsd postfix unix zfs graphics piraten disk oem opensolaris service aircraft kiddies privacy recht rootforum spam virus development git netzwerk perl project euler project hosting rant subversion wiretap buxtehude stammtisch datenschutz hackerparagraph paranoia proxy zensur openmcp rpg backup dd typo3 zsh tracSonntag, 31. Januar 2010
Arrrrrr
Today I styled my notebook to look “pirate”. This is my tribute to the upcoming party convention of our local section of the German Pirate Party. I currently use Arch Linux with LXDE as desktop environment. The wallpaper is a merge of the Clarity wallpaper and the pirate flag of Jack Rackham. Since the wallpaper is GPL licensed and the Jolly Roger is Creative Commons licensed, I cannot offer the wallpaper for download, but it’s quite easily reproduced: Just take GIMP, load the wallpaper, import the Jolly Roger into a new image, remove every bit of black (using the magic wand), copy the Jolly Roger onto a new layer above the wallpaper and set its layer mode to “overlay”. Together with slim, this image can also be used to create a nice login screen
!
Montag, 2. November 2009
Apocalypse Now!
I was looking for an open source operating system for a very old notebook (Pentium 3 generation with only 256 MB of memory). With these performance characteristics on the computer side and a general lack of time on my side in mind, I defined the following criteria:
- Binary packages – compiling X or a libc on that old thing would have been a nightmare
- Full disk encryption support (it’s a mobile device I carry around a lot…)
- Preconfigured lightweight desktop environment (the time factor…)
The potential candidates were OpenBSD, FreeBSD, CentOS and Arch Linux. For OpenBSD, I couldn’t figure out how to set up fully encrypted disks. FreeBSD (although in general my favored OS) relies too much on source distribution (I know there are packages, but they are often behind the ports tree) and doesn’t provide a pre-configured desktop (DesktopBSD and PC-BSD do, but their installation routines do not support disk encryption). CentOS is rock solid and the only Linux I would ever put on a server again, but its desktop configuration is fat and the installer doesn’t support disk encryption. Arch Linux again failed by not providing any pre-configured desktop and a tendency to have kernels that panic on the relevant computer. The pre-configured collections offered by Ubuntu and descendants were too fat for my taste, and furthermore I do not like Ubuntu for a couple of other reasons.
Well, what happened – I got landed with Debian Linux. The installer does everything for me (erase the disk, fill it with random bullshit, configure LVM with dm-crypt), and Debian also provides a pre-configured LXDE desktop environment. I cannot promise that this will end as a “happily ever after” story, but for the moment, Debian fulfills my requirements.
Donnerstag, 29. Oktober 2009
Linus made my day
Wow, was that a great big ∗roflmao∗ when a colleague sent me that link today… Linus really has a great sense of humour – but you better take a look yourself: Linus at Japan Linux Symposium
Samstag, 3. Oktober 2009
Portable Shell-Skripte mit absoluten Pfaden
Gute Shell-Skripte sprechen Binaries mit dem absoluten Pfad an. Dadurch wird das Skript unabhängig von der Umgebungsvariablen $PATH und funktioniert auch manierlich, wenn es beispielsweise üder die Crontab oder unter einem andere User aufgerufen wird. Soweit die Theorie, doch in der Praxis gibt es einen gemeinen Fallstrick, der den Wanderer zwischen den Unix-Welten das Leben bzw. Skripten schwer macht. Betrachten wir einmal das folgende Beispiel:
b_uname="/bin/uname"
b_awk="/bin/awk"
name=`$b_uname -n | $b_awk -F. ‘{print $1}’`
echo "Das System heisst ${name}."
exit 0
Dieses kleine Skript ist ein (zugegebenermaßen etwas umständlicher) Ersatz für den Befehl hostname -s – das tut aber eigentlich nichts zur Sache. Viel spannender ist die Frage, wie portabel dieses Skript arbeitet. Unter CentOS 5.3 kann ich es fehlerfrei ausführen. Anders sieht es aus, wenn dieses Skript auf einer Maschine mit FreeBSD oder Solaris aufgerufen wird: Unter FreeBSD erhält man Fehlermeldungen („Command not found“), da uname und awk nicht wie bei CentOS und Solaris in /bin liegen, sondern in /usr/bin (bei Solaris kommt es ebenfalls zu Problemen, die aber darin begründet sind, dass die Solaris-Implementierungen von uname und awk von den GNU-Implementierungen abweichen – doch dazu später).
Unter den verschiedenen Unix-Derivaten und sogar Linux-Distributionen liegen Binaries also nicht immer am selben Ort. Müssen portable Skripte also darauf verzichten, absolute Pfade zu verwenden und sich auf $PATH verlassen? Natürlich nicht. Allerdings funktioniert der Schnellschuss „ dann definiere ich Binaries eben systemabhängig“ auch nicht so ohne weiteres – man sieht ja, dass das häufig dazu herangezogene uname schon nicht sehr portabel gelagert ist. Es gibt jedoch einen eleganteren Weg, der sich nur auf Shell-interne Funktionen stützt und daher tatsächlich komplett portabel ist:
detect_binary() {
local BINDIRS="/bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin /opt/csw/bin /opt/sfw/bin /usr/openwin/bin"
for i in $BINDIRS; do
if [ -x "${i}/${1}" ]; then
echo "${i}/${1}"
break
fi
done
}
b_uname=$(detect_binary "uname")
b_awk=$(detect_binary "awk")
Die Funktion detect_binary probiert alle angegebenen Pfade durch, bis sie in einem auf eine ausführbare Datei mit dem gesuchten Namen stößt. Anschließend gibt sie den absoluten Pfad des gefundenen Binaries zurück. Auf diese Weise wird zum einen sichergestellt, dass nur Binaries aus den vorgegebenen Pfaden verwendet werden, und zum anderen, dass die Binaries weiterhin unabhängig von der Umgebungsvariable $PATH gefunden werden können.
Eines löst dieser Code-Schnipsel jedoch nicht: Das unterschiedliche Verhalten von gleichnamigen Binaries unter verschiedenen Unix-Derivaten. Auf vielen Nicht-Linux Systemen stehen Binaries der GNU-Implementierung zur Verfügung, oder zumindest Binaries, die das Verhalten der GNU-Implementierungen nachahmen. Unter FreeBSD beispielsweise findet man in gsed und gawk die GNU-Implementierungen, während sich hinter sed und awk die traditionellen BSD-Implementierungen verbergen. Die g<programm>-Binaries findet man im übrigen auch unter Linux. Benötig man also in einem Skript explizit das GNU-Verhalten (beispielsweise beim Einsatz von sed -i, so sollte man auch die GNU-Binary-Namen verwenden.
Happy Scripting!
Donnerstag, 2. Juli 2009
Bye bye, Atuan
Heute darf einer meiner Server in den Ruhestand gehen, der es sich auch redlich verdient hat:
12:02:24 up 416 days, 11:04, 1 user, load average: 2.00, 2.00, 2.00
Die Kiste lief übrigens mit einem frisierten Gentoo Linux (~x86) und einem monolitischen Eigenbau-Kernel.
Mittwoch, 25. Februar 2009
Test-vServer-Kontingent von EUServ
Vor einiger Zeit hatte ich bereits über das vServer-Betatestprogramm von EUServ berichtet. Mittlerweile hat mir EUServ einen eigenen Bestellcode zugesendet, hinter dem ein Kontingent von 100 Test-vServern steht. Da immer noch Anfragen nach Codes bei mir eingehen, habe ich mich entschlossen, den Code jetzt doch hier online zu stellen. Somit ist eine Bestellung jetzt ohne Interaktion meinerseits möglich; ich werde daher auch nicht mehr auf Kommentare im alten Beitrag reagieren. Bei Interesse bitte einfach den erweiterten Beitrag beachten…
"Test-vServer-Kontingent von EUServ" vollständig lesen
Donnerstag, 25. Dezember 2008
EUServ stellt kostenlose Test-vServer bereit
Die Rahmendaten lesen sich mit 10GB Plattenspeicher und garantierten 512MB RAM gar nicht so übel. Beim OS stehen derzeit Gentoo und Debian zur Wahl. Mal sehen, was die Kiste über Zabbix und Nagios hinaus noch so verkraften kann… Weitere Details zur Aktion gibt’s hier; wer einen Test-Gutschein haben möchte, kann hier einfach einen Kommentar hinterlassen (bitte mit gültiger E-Mailadresse, damit ich den Code auch zusenden kann) möge bitte meinen entsprechenden Blog-Eintrag beachten.
Montag, 3. März 2008
Kernel-Konfiguration für x86_64 mit NUMA-Unterstützung
Eine nette kleine Falle stellt make menuconfig für den ahnungslosen Kernel-Bastler bereit: Aktiviert man NUMA und vor allem ACPI NUMA detection, wird zwar korrekt der ACPI-Support in den Power Management Optionen aktiviert – selbige aber nicht. Power Management Support muss also händisch aktiviert werden, sonst beschwert sich make mit folgendem Fehler:
undefined reference to `pm_flags‘
Näheres gibt’s auch auf der Linux Kernel Mailing List.
Sonntag, 3. Februar 2008
Ubuntu 7.10 und Xen „Quick 'n Dirty“
Seit eben gibt es ein neues HowTo zur Installation von Ubuntu 7.10 mit Xen. Das HowTo ist während einer heute durchgeführten Installation entstanden. Das dabei angefertigte Installationsprotokoll habe ich etwas überarbeitet und einmal durch AsciiDoc gejagt.
Mittwoch, 26. Dezember 2007
Ü-30-Party
Die wäre eigentlich schon gestern fällig gewesen, aber da heute gleich Nummer 31 hinzugekommen ist… Übrigens, die Rede ist von Kerneln auf einem meiner Linux-Server. Auf einem haben sich seit Inbetriebnahme im Laufe eines guten Jahres doch ganze 31 Kernel-Images angesammelt (die Source-Verzeichnisse habe ich zwischendrin immer mal wieder entrümpelt). Und so sieht das ganze dann in /boot aus:
-rw-r—r— 1 root root 1.7M 2006-11-30 18:38 vmlinuz-2.6.18-hardened-r1
-rw-r—r— 1 root root 1.5M 2007-01-13 12:57 vmlinuz-2.6.19-hardened-r3
-rw-r—r— 1 root root 1.5M 2007-01-15 22:27 vmlinuz-2.6.19-hardened-r4
-rw-r—r— 1 root root 1.5M 2007-01-24 22:07 vmlinuz-2.6.19-hardened-r5
-rw-r—r— 1 root root 1.5M 2007-02-19 19:19 vmlinuz-2.6.19-hardened-r6
-rw-r—r— 1 root root 1.5M 2007-03-27 22:13 vmlinuz-2.6.20-hardened
-rw-r—r— 1 root root 1.5M 2007-04-05 15:58 vmlinuz-2.6.20-hardened-r1
-rw-r—r— 1 root root 1.5M 2007-04-14 17:40 vmlinuz-2.6.20-hardened-r2
-rw-r—r— 1 root root 1.5M 2007-04-14 17:34 vmlinuz-2.6.20-hardened-r2.old
-rw-r—r— 1 root root 1.5M 2007-05-26 08:57 vmlinuz-2.6.21-hardened
-rw-r—r— 1 root root 1.5M 2007-05-06 12:42 vmlinuz-2.6.21-hardened.old
-rw-r—r— 1 root root 1.5M 2007-05-26 09:08 vmlinuz-2.6.21-hardened-r1
-rw-r—r— 1 root root 1.4M 2007-06-10 12:32 vmlinuz-2.6.21-hardened-r2
-rw-r—r— 1 root root 1.4M 2007-05-27 18:17 vmlinuz-2.6.21-hardened-r2.old
-rw-r—r— 1 root root 1.4M 2007-08-14 19:22 vmlinuz-2.6.21-hardened-r3
-rw-r—r— 1 root root 1.4M 2007-08-12 16:16 vmlinuz-2.6.21-hardened-r3.old
-rw-r—r— 1 root root 1.5M 2007-08-14 19:30 vmlinuz-2.6.22-hardened
-rw-r—r— 1 root root 1.5M 2007-08-12 16:21 vmlinuz-2.6.22-hardened.old
-rw-r—r— 1 root root 1.5M 2007-08-17 00:43 vmlinuz-2.6.22-hardened-r1
-rw-r—r— 1 root root 1.5M 2007-08-17 12:52 vmlinuz-2.6.22-hardened-r2
-rw-r—r— 1 root root 1.5M 2007-08-25 08:25 vmlinuz-2.6.22-hardened-r3
-rw-r—r— 1 root root 1.5M 2007-09-20 22:44 vmlinuz-2.6.22-hardened-r4
-rw-r—r— 1 root root 1.5M 2007-09-23 08:27 vmlinuz-2.6.22-hardened-r5
-rw-r—r— 1 root root 1.5M 2007-09-27 08:19 vmlinuz-2.6.22-hardened-r6
-rw-r—r— 1 root root 1.5M 2007-10-04 12:19 vmlinuz-2.6.22-hardened-r7
-rw-r—r— 1 root root 1.5M 2007-10-15 22:38 vmlinuz-2.6.23-hardened
-rw-r—r— 1 root root 1.5M 2007-11-02 21:52 vmlinuz-2.6.23-hardened-r1
-rw-r—r— 1 root root 1.5M 2007-11-27 00:13 vmlinuz-2.6.23-hardened-r2
-rw-r—r— 1 root root 1.5M 2007-12-06 23:27 vmlinuz-2.6.23-hardened-r3
-rw-r—r— 1 root root 1.5M 2007-12-25 00:55 vmlinuz-2.6.23-hardened-r4
-rw-r—r— 1 root root 1.5M 2007-12-26 00:43 vmlinuz-2.6.23-hardened-r5
Montag, 17. Dezember 2007
Debianisiert
Wie gestern schon angedeutet, habe ich mir mehr als nur die halbe Nacht damit um die Ohren geschlagen, noch verschiedene Linux-Distributionen zu testen. Fedora hat sich relativ fix selbst disqualifiziert – Hetzner bietet zwar die Installation von FC8 via VNC an, aber mehrfache unmotivierte Abbrüche durch Fehler beim erzeugen der Dateisysteme waren dann zu viel des Guten. Mit Gentoo habe ich noch einmal sehr viel Zeit zugebracht, aber die xen-sources wollten sich partout nicht booten lassen. Als letzte Option habe ich jetzt noch mal Debian 4.0 installiert (und auf Anhieb zum laufen bekommen). Die genaue Vorgehensweise habe ich im RootForum-Wiki dokumentiert.
Sonntag, 16. Dezember 2007
The One and Only...
... gibt es nicht. Jedenfalls nicht unter den unixoiden Betriebssystemen. Für ein umfangreicheres Xen-Setup ein geeignetes Basis-System zu finden gestaltet sich schwieriger, als ich zunächst dachte. Favorit wäre für mich ein BSD-System; das einzige, das zur Zeit mit Xen-Unterstützung daherkommt, ist NetBSD. Nicht schlecht, aber NetBSD fehlt ein tauglicher Volume Manager, nachdem vinum mit 4.0 endgültig aus dem System fliegt – nicht weiter verwunderlich, da das Projekt seit 2004 nicht mehr weiterentwickelt wurde. Und bei dem Gedanken an eine Datenbank-DomU unter Volldampf auf einem Disk Image File kommt mir irgendwie das kalte Grausen. Richtig schick wäre ja ein System mit ZFS-Unterstützung, aber da käme nur OpenSolaris in Frage, und das ist mir wiederum für ein Produktivsystem zu wackelig und zu viel Bastelei.
"The One and Only..." vollständig lesen
Samstag, 24. November 2007
Ein gefräßiger Affe für den Server
Nein, dieser Beitrag soll kein neuerliches Ubuntu-Bashing sein – für den Server finde ich Ubuntu nämlich durchaus sehr brauchbar. Gegenüber “purem” Debian besteht der Vorteil regelmäßiger Releases, kürzerer Release-Zyklen und damit aktuellerer Software. Speziell die relativ aktuellen Xen-Pakete, die der gefräßige Primat (wer denkt sich eigentlich diese Namen aus?) mitbringt, üben auf mich eine gewisse Anziehungskraft aus.
Da die Installation aus dem Rettungssystem ein bisschen anstrengend ist (nur mit debootstrap allein ist es ja noch nicht getan), habe ich mir ein Installationsskript zusammengebastelt, das mit den meisten Linux-basierten Rettungssystemen funktionieren dürfte. Installiert wird damit je nach Wahl ein 32- oder 64-bittiges Ubuntu (auch die Version ist wählbar) mit Server-Kernel und Lilo als Bootloader. Getestet habe ich das Skript mit einem Hetzner-Server im 64-Bit Rettungssystem. Hier erkennt das Skript alle benötigten Einstellungen selbst; alle Vorgabewerten können einfach bestätigt werden.
wget ftp://ftp.my-universe.com/pub/misc/scripts/ubuntu-installer.sh
chmod 0700 ubuntu-installer.sh
./ubuntu-installer.sh
Sonntag, 18. November 2007
Gutsy auf dem Prüfstand
Um es vorweg zu sagen: ich bin kein großer Freund von Ubuntu. Das fröhlich-bunte Linux für alle war mir irgendwie schon immer suspekt. Vielleicht, weil es den Anspruch erhebt, auch für DAUs geeignet zu sein. Vielleicht aber auch, weil es auf Debian basiert (das ich ebenfalls nicht mag). Oder auch einfach nur, weil der Desktop nach der Standard-Installation so häßlich braun aussieht.
"Gutsy auf dem Prüfstand" vollständig lesen
Freitag, 21. September 2007
Harter Gefängnis-Alltag
Am Montag hat das Hardened Gentoo Projekt Version 2.6.22-r4 der hardened-sources, eines speziell gepatchten und auf Sicherheit getrimmten Linux-Kernels, veröffentlicht. Insbesondere chroot-Umgebungen werden zu regelrechten Festungen erweitert, aus denen ein Ausbruch nur äußerst schwer gelingt (mir ist bis dato keine Methode bekannt, mit der das zu bewerkstelligen wäre). Bis auf die unter Linux noch fehlende Ressourcenbeschränkung (z. B. auf eine bestimmte IP-Adresse) sind die virtuellen Knasts vergleichbar mit Jails unter BSD, zur Zeit vermutlich sogar noch ausbruchssicherer.
"Harter Gefängnis-Alltag" vollständig lesen


Content is subject to the conditions of the