Aus Linux-Magazin 06/2012

Wie die klare Syntax und Typsicherheit moderner Sprachen dem Admin helfen

Linux-Admins schreiben und verbessern ihre Tools meist selbst. Das Linux-Magazin blickt neu auf das Bash- und Perl-dominierte Thema und findet: Schlanken Ruby-Code, PHP-CLI in der Webserver-Adminpraxis, die stringente Typsicherheit des Exoten Haskell sowie Listen und Generatoren beim leicht erlernbaren Python.

Traditionell dient die Shell unter Linux als Mörtel, der die Bausteine des Systems zusammenhält. Das Sys-V-Initsystem etwa besteht aus Shellskripten, auch bei manchen Programmen ruft der Anwender statt der eigentlichen Binärdatei ein Wrapper-Skript auf. Daneben dienen die Bash und andere Shells als Allzweckwerkzeuge des Anwenders und des Admin. Gibt es für eine Aufgabe noch keine fertige Software, ist mit einem Skript und ein paar Utilities rasch etwas Passendes gebastelt.

Die Bourne Again Shell verwendet eine eigenwillige Syntax und ist meist auf externe Programme angewiesen, doch das ist dem Linuxer längst in Fleisch und Blut übergegangen. Gibt es aber vielleicht andere Skriptsprachen, die das eine oder andere besser oder schneller erledigen?

Dieses Linux-Magazin lässt einige Sprachen als Kandidaten antreten, die zeigen sollen, was sie in Sachen Systemverwaltung zu bieten haben: Ruby, Python und die Kommandozeilenversion von PHP. Daneben gibt es noch einen Exkurs jenseits des Skriptings, der Programme zur Systemverwaltung via Haskell mit Typsicherheit ausstattet. Wer im Feld der Sprachen Bash und Perl vermisst, sei auf die regelmäßigen Linux-Magazin-Kolumnen zu diesen verwiesen.

Vergleich aus der Praxis

Zu den typischen Aufgaben von Adminskripten gehört es, Textdateien zu lesen, zu verarbeiten und neu zu schreiben. Daneben zählen Dateisystemoperationen wie Dateien kopieren und verschieben oder Verzeichnisse anlegen zum Standardrepertoire.

Die Redaktion hat den Autoren der Beiträge eine kleine Aufgabe gestellt, die diese Anforderungen vereint (siehe Kasten “Programmieraufgabe”). Sie liest Login sowie Nach- und Vornamen von Benutzern aus einer CSV-Datei und legt im Batch-Modus passende Linux-Benutzerkonten an. Damit tut sie etwas Ähnliches wie das »newusers« -Programm, das bei vielen Distributionen im »passwd« -Paket steckt. Manche der Beiträge haben das Beispiel komplett implementiert, andere konzentrieren sich auf das Umsetzen einzelner Teilaufgaben. Immer zeigen sie aber typische Ansätze, charakteristische Idiome und Techniken der Sprache ihrer Wahl.

Programmieraufgabe

Prüfe, ob du Rootrechte hast, andernfalls schreibe eine Meldung auf Stderr und terminiere.

Lese Login, Lastname, Firstname aus der CSV-Datei.

Erlaube nur die Zeichen »[a-z0-9]« im Login, andernfalls schreibe eine Meldung auf Stderr und gehe zur nächsten Zeile.

Prüfe, ob das Login bereits existiert. Falls ja, schreibe eine Meldung auf Stderr und gehe zur nächsten Zeile.

Trage den Benutzer in »/etc/passwd« ein und

  • verwende dabei User-IDs ab 1001,
  • setze die User-ID als primäre Gruppen-ID,
  • schreibe Lastname, Firstname in das Gecos-Feld,
  • setze »/bin/bash« als Standardshell.

Lege für den Benutzer eine eigene Gruppe (User-ID = Gruppen-ID) in »/etc/group« an.

Lege den Benutzer in »/etc/shadow« an und deaktiviere das Konto mit »!« im Passwortfeld.

Erstelle das Homeverzeichnis »/home/Login« .

Kopiere die Dateien aus »/etc/skel« in »home/Login« .

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 1 HeftseitePreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben