Mp3a -- Mp3a -
MPA Account Administration


Ich bin am MPI für Astrophysik als Systemadministrator beschäftigt. Unsere Hardware-Plattform besteht aus 10 IBM AIX Servern und etwa 25 persönlichen Workstations der Hersteller IBM, Silicon Graphics und Sun.

Motivation

Was war die Motivation für ein eigenes Werkzeug zur Verwaltung von Benutzerkennzeichen.
In eigentlich allen UNIX Systemen ist `Benutzerkennzeichen anlegen' eine ziemlich einfache Angelegenheit. Meistens genügen 2 - 3 Systemkommandos.
- es muß ein Home-Verzeichnis angelegt werden
- und es muß in der Datei /etc/passwd ein Eintrag eingefügt werden

Als vor einigen Jahren am MPI für Astrophysik zusätzlich zum Unix Filesystem das AFS Filesystem eingeführt wurde, wurde der Vorgang etwas komplizierter. Nun müssen etwa 10 Schritte ausgeführt werden, bis ein neues Benutzerkennzeichen angelegt ist. Dabei gilt es, mehrere Datenbanken im AFS und im Unix mit redundanten Informationen konsistent zu halten.

- es muß ein Eintrag in der Datenbank für den Protection Server angelegt werden. Der Protection Server überwacht die Zugriffsrechte der einzelnen Benutzer.
- dann muß ein Eintrag in der Datenbank für den Kerberos Authentification Server angelegt werden. Das AFS arbeitet mit einer Kerberos Authentifizierung.
- dann müssen die spezifischen Werte für diesen KAS Eintrag gesetzt werden
- dann muß ein AFS Volume angelegt werden. Denn das AFS verwaltet seinen Plattenplatz selbst.
- dann muß ein AFS Mountpoint im Unix Filesystem angelegt werden. Dieser stellt die Verbindung zwischen dem AFS und dem Unix Filesystem her.
- dann müssen die AFS Zugriffsrechte für den Mountpoint gesetzt werden
- dann muß in der Datei /etc/passwd ein Eintrag eingefügt werden
Als lokale Erweiterung kommt dann noch hinzu, eine Datenbank für die Betreuer der einzelnen Benutzer. Denn die meisten Benutzer haben Zeitverträge und werden in dieser Zeit von einem Wissenschaftler betreut.
Deshalb muß auch das Ende des Zeitvertrags abgespeichert werden, damit diese Benutzerkennzeichen automatisch deaktiviert werden.
Und bei längerfristigen Benutzerkennzeichen wird auch ein Eintrag in die Mail-Alias Datenbank vorgenommen.

Historie

Sehr bald nach der Einführung von AFS am MPA war klar, daß zur Generierung von Benutzerkennzeichen ein automatisiertes Werkzeug sehr hilfreich wäre. Da die Performance kein Kriterium für solch eine Anwendung darstellte, erschien uns Perl als die geeignete Sprache, um solch ein Werkzeug zu erstellen.

So entstand im Oktober 1994 ein erstes Perlprogramm zum Generieren von neuen Benutzerkennzeichen. Hierbei handelte es sich um ein monolithisches Perlprogramm mit einer Frage-und-Antwort Eingabe.

Im zweiten Schritt erhielt das Programm im Januar 1995 eine Kommandozeilen-Option und passend dazu ein graphisches Tcl/Tk Front-End.

Da das Programm bei fehlerhaften Benutzereingaben recht umständlich war, bestand bald der Wunsch, das graphische Interface in Perl umzuschreiben. Aber zu dieser Zeit hatten wir Perl/Tk noch nicht installiert.

Im Laufe des Jahres 1996 wurde dann das Programm völlig neu überarbeitet und unter Anwendung der im Perl-5 zur Verfügung stehenden Möglichkeiten der Objektorientierung ein modulares Paket entwickelt. Der Hintergedanke für den Klassenansatz war die Wiederverwendbarkeit des Codes und vor allem die Möglichkeit der leichten Erweiterbarkeit der Klassen für spätere Anwendungen.

Als im September 1996 die zweite Ausgabe von `Programming Perl' erschien, war dies ein willkommener Anlaß die Version Perl 5.003 und die Version Perl/Tk 400.200 zu installieren. Somit war es mir möglich, endlich auch das Graphik-Interface in Perl zu erstellen.

Im Dezember 1996 hatte ich den ersten Prototypen des neuen Mp3a Programms erstellt.

Ab Februar 1997 wurde das Mp3a Programm zum Anlegen der MPA Benutzerkennzeichen eingesetzt.

Im November 1997 standen dann weitere Funktionen zur Verfügung. Damit war die jetzige äußere Form erreicht.

Das Hauptmenü

Diese enthält die Funktionen `Benutzer anlegen und löschen'. Es können die Daten eines Benutzerkennzeichens angezeigt werden. Es ist möglich, das Verfallsdatum eines Benutzerkennzeichens zu ändern. Natürlich können auch die persönlichen Daten eines Benutzer geändert werden, wie z.B. die Zimmernummer oder die Telefonnummer. Ferner lassen sich auch AFS relevante Daten abfragen oder andere Hilfsfunktionen ausführen.

Die Maske 'Benutzer anlegen'

Auf dieser Folie sehen Sie als Beispiel die Maske zum `Benutzer anlegen'. Diese Maske ist abgeleitet aus dem Perl/Tk Demo Skript `rolodex', das von Stephen O. Lidie von Tcl/Tk nach Perl/Tk konvertiert wurde.

Hier werden alle notwendigen Daten für ein Benutzerkennzeichen erfaßt und auch verifiziert, bevor dieses dann angelegt wird. Einige Felder werden mit Werten vorbelegt. Im Feld mit der UID-Nummer wird die nächste freie Nummer des Nummernkreises angeboten.

Klassendiagramm

Auf dieser Folie sehen Sie das Klassendiagramm des Mp3a Programms. Ich habe dazu die UML-Notation verwendet. Das Diagramm beschreibt die statische Struktur der Klassen und ihre Beziehungen untereinander.

Die Klasse `Base' ist die Oberklasse für alle Klassen des Mp3a Programms. Diese enthält alle die Attribute, die den verschiedenen Unterklassen gemeinsam sind. Außerdem enthält sie die `accessor methods' für die Attribute aller Unterklassen. Diese Relation wird eine einfache Vererbung genannt.

Bei der Beziehung zwischen der Klasse `Unix' und der Klasse `Gecos' handelt es sich um eine sogenannte Komposition oder auch `Composition Relationship'. Das heißt, die Klasse `Gecos' ist Teil (`is-part-of') der Klasse `Unix'.

Zwischen der Klasse `Unix' und der Klasse `PTS' besteht eine sogenannte Abhängigkeit oder auch `Dependency Relationship', die bei Booch auch `Using Relationship' genannt wird. So muß z.B. das Attribut `Login-Name' in beiden Klassen den gleichen Wert haben und in jeder der beiden Klassen eindeutig sein.

Die Klasse `MpaAccount' ist die Unterklasse der 5 Klassen Unix, ... ,FS. Bei dieser Beziehung handelt es sich um eine Mehrfachvererbung.

Implementierung

Bei der Implementation der Klassen habe ich mich stark an die Beispiele aus den Perl-Büchern, beziehungsweise an das Perl Tutorial von Tom Christiansen angelehnt.

Die Attribute einer Klasse werden in einem Hash abgelegt.

Die Objekte einer Klasse werden als anonyme Hash-Referenzen dargestellt.

Als `accessor methods' wurde eine AUTOLOAD Funktion in der Oberklasse `Base' implementiert.

Alle Module enthalten eine Inline Dokumentation im POD Format.

Zusammenfassung

Zusammenfassend kann gesagt werden, daß das Mp3a Programm eine sehr spezialisierte Anwendung darstellt. Primäres Ziel ist die Arbeitserleichterung für die Systemverwalter am MPA. Für die Allgemeinheit wird dieses Programm nicht von so großem praktischem Interesse sein. Trotzdem steht es unter der Gnu Public Licence und ist für Interessierte erhältlich.

Sollte jemand von Ihnen Interesse am Mp3a Programm haben, dann senden Sie einfach Email an nog@MPA-Garching.MPG.DE.


File translated from TEX by TTH, version 1.95.
On 23 Feb 1999, 08:48.