![]()  | 
            ![]() ![]()  | 
            |||||||||||||||||||||||||||||||||||||||
| Druckversion | ||||||||||||||||||||||||||||||||||||||||
![]()  | 
         ||||||||||||||||||||||||||||||||||||||||
          
          
 
 Unter Login-Verwaltung versuchen wir verschiedenen Varianten aufzuzeichnen, wie einem Benutzer der Zugang zum System ermöglicht werden kann. Jede Standardinstallation kommt entweder mit einem Konsolen-Login oder einer grafischen Anmeldung daher. Im Fall des tristen Konsolenmodus gelangt bei nahezu allen Distributionen ein Programm namens mingetty zum Einsatz. Aber es existieren weitere Varianten eines initialen »Terminals«, welche das Anmelden am System steuern, Gettys, die ihre Stärken vor allem bei Dial-in- und Modem-Anmeldevorgängen beweisen. An der grafischen Anmeldung schwingt ein X Display Manager das Zepter. In Zeiten von KDE delegieren die verbreiteten Distributionen die Aufgaben dem kdm, seltener wird man noch dem xdm begegnen und der gdm kontrolliert die Anmeldung an ein RedHat-Linux. In diesem Abschnitt sollen nur wenige einleitende Worte die Mächtigkeit des Konzepts verdeutlichen, die Display-Manager werden im Kapitel Login-Manager tiefgründig diskutiert. Neben den den Anmeldevorgang steuernden Programmen gebührt der Datei /etc/login.defs eine wichtige Rolle. Wie der Name schon verdeutlicht, steuert sie in gewissem Maße das Verhalten der Startup-Programme. Letztlich tragen auch /etc/securetty und Passwort zum Gelingen oder Scheitern einer Anmeldung bei. 
 Alle im folgenden Abschnitt beschriebenen »Getty« sind in der Lage, vor der Login-Aufforderung eine Mitteilung auf den Bildschirm auszugeben. Den Text dazu beziehen sie, wenn nicht explizit etwas anderes angegeben wurde, aus der Datei /etc/issue. In dieser Datei sind verschiedenste Ersatzdarstellungen zulässig, z.B. um den Rechnernamen oder die aktuelle Zeit einzublenden. Allerdings unterscheiden sich die »Gettys« hinsichtlich der unterstützten Platzhalter. Im Falle von mingetty könnte der Inhalt der Datei so aussehen: 
 Der Willkommensgruß kann diverse Platzhalter umfassen, die den Text in begrenztem Umfang dynamisch anpassen: \b Fügt die Baudrate der aktuellen Verbindung ein 
            \d Steht für den aktuellen Tag 
            \l Name des Terminals, an dem mingetty aktiv ist 
            \m Architektur des Rechner 
            \n Voller Rechnername (inklusive Domainname) 
            \o Domainname 
            \r Betriebssystemversion (Kernelrelease) 
            \s Betriebssystemname 
            \t Aktuelle Zeit 
            \u Anzahl am System angemeldeter Benutzer 
            \v Betriebssystemversion (Übersetzungszeit des Kernels) 
          Der Platzhalter \b wird nur von Gettys verstanden, die auch serielle Schnittstellen überwachen können. Bei Verwendung von fbgetty muss anstatt des Backslashs (\) das Prozentzeichen verwendet werden (%d, %u,...). Da fbgetty sich noch in einem frühen Entwicklungsstadium befindet, wird es in der weiteren Diskussion keine Rolle spielen. 
 In historischen Zeiten der Mainframes ermöglichten physikalische Terminals den Zugang zu den sündhaft teuren Großrechnern. Ein Terminal war nichts weiter als eine Einheit aus Bildschirm und Tastatur, das über einen seriellen Anschluss am Rechner steckte. Als Software lief im Mainframe ein kleines Programm »Get's a TTY«, - oder kurz als getty bezeichnet, das die Anmeldung steuerte. Der Name »Getty« für Login-Programme ist geblieben, auch wenn physikalische Terminals heute nur noch in der Computerliteratur verbreitet sind. Gettys tragen dafür Sorge, dass sich überhaupt jemand am System anmelden kann. Dazu überwachen sie serielle Geräte wie Virtuelle Terminals, Textterminals oder auch Modems. Ein Getty bringt die Login-Aufforderung auf den Bildschirm, es fragt nach dem Passwort und startet anschließend das Kommando login, das Benutzerkennzeichen und Passwort verifiziert und den Zugang zum Rechner gestattet bzw. ablehnt. Gettys gibt es reihenweise und eines ist für einen Einsatzbereich besser geeignet, als es ein anderes vermag. Einige Gettys überwachen einzig die virtuellen Terminals, andere sind auf den Faxempfang spezialisiert. Die verbreiteten Vertreter der Gilde werden wir im folgenden Abschnitt kennen lernen. Zuvor seien die Aufgaben genannt, für dessen Erledigung Gettys herangezogen werden: 
 Automatischer Getty-StartI.A. erwartet man von einem Getty, dass es mit den Starten des Systems das ihm zugedachte Device eröffnet und mit einer Login-Aufforderung aufwartet. Des Weiteren sollte es erneut starten, sobald eine Sitzung beendet wurde. Der begangene Weg, dies unter Linux zu erreichen, ist ein entsprechender Eintrag in der Datei /etc/inittab: 
 Das obige System ist offensichtlich nur für ein Konsolenlogin konfiguriert (nicht zu Verwechseln mit einer Anmeldung übers Netz mit Programmen wie telnet oder ssh); als Getty gelangt mingetty zum Einsatz. Entscheidend ist die Angabe von respawn, die den Init-Prozess anweist, im Falle der Beendigung einer Sitzung das jeweilige Getty erneut zu starten (ein Getty-Prozess startet per exec ein Loginprogramm, welches wiederum bei erfolgreicher Anmeldung mittels exec bspw. eine Shell lädt). Selbstverständlich steht es Root zu, ein Getty per Hand zu starten, jedoch kann er einen solchen Befehl nur absetzen, wenn auf dem entsprechenden Device (bspw. /dev/tty2, /dev/ttyS0...) noch kein Getty-Prozess am werkeln ist. Gerade bei von init kontrollierten Geräten genügt der gezielte Abschuss eines existierenden Prozesses herzlich wenig, da init selbst diesen ersetzen wird. Nur eine Änderung der Datei /etc/inittab mit anschließender Benachrichtigung von init (kill -1 1) wird hier weiterhelfen. 
 Das Alternative Linux-Getty ist das einfachste (bedingt) für Einwahlverbindungen geeignete Getty (da es keine Konfigurationsdatei verwendet). Allerdings besitzt es einen entscheidenden Nachteil: Wenn es selbst ein Modemdevice auf eingehende Verbindungen überwacht, ist das Gerät für ausgehende Verbindungen blockiert, selbst wenn noch kein Anruf entgegen genommen wurde. Aus diesem Grund wird agetty vornehmlich auf virtuellen Konsolen oder - wegen der Hardware gesteuerten Flusskontrolle - für den Anschluss eines physikalischen Terminals (Nullmodem...) angewandt. 
 Die minimalen Argumente für »agetty« sind Port und eine Liste von zulässigen Baudraten. Port steht dabei für den Gerätenamen relativ zum Verzeichnis »/dev« oder für »-«. In letzterem Fall nimmt »agetty« an, dass seine Standardeingabe bereits mit einem Port verbunden ist. Bei Baudrate handelt es sich um eine komma-separierte Liste der unterstützten Geschwindigkeiten. Im Fall einer Modemverbindung startet »agetty« mit dem ersten angegeben Wert. Wird dieser von der Gegenstelle zurückgewiesen (brEAK), schaltet »agetty« auf die nächste Baudrate um. Die Terminalemulation überschreibt den Wert der Shellvariablen TERM (wird oft initial von init gesetzt). Des Weiteren werden folgende Optionen unterstützt: -h Aktiviert die Hardware gesteuerte Flusskontrolle 
            -i 
            Unterdrückt die Ausgabe des Inhalts von /etc/issue.
            Dies kann bei Modemverbindungen erforderlich sein, falls die Gegenseite nach
            konkreten Zeichenfolgen (Login, Password) sucht.
             
            -f Datei Verwendet die angegebene Datei anstatt /etc/issue 
            -I Initstring 
            Zeichenkette (zur Initialisierung eines Modems), die vor dem eigentlichen
            Senden an den Port geschickt wird.
             
            -l Programm Alternatives Login-Programm (anstatt /sbin/login). 
            -m »agetty« versucht die Baudrate anhand der CONNECT-Zeichenkette zu erkennen. 
            -n 
            »agetty« fragt nicht nach einem Login-Namen. Sinnvoll ist die
            Option bspw, wenn als Login-Programm sulogin genutzt wird.
             
            -t Sekunden Wird innerhalb dieser Zeitspanne kein Nutzername eingegeben, bricht »agetty« ab. 
            -L 
            Das zu überwachende Terminal ist eine physikalische/virtuelle Konsole.
            »agetty« wartet nicht auf das Verbindungssignal (das bei
            Modemverbindungen eine neue Sitzung einleiten würde...).
             
            -w 
            »agetty« wartet auf den Empfang eines Zeilenumbruchs oder
            Wagenrücklaufs, bevor es den Inhalt von /etc/issue an den
            Port sendet.
             
          
 »Faxgetty« ist Bestandteil des Hylafax-Pakets zum Betrieb eines Faxservers unter Linux. Eine Abhandlung der Thematik findet der interessierte Leser im Kapitel »Netzwerk-Grundlagen« im Abschnitt Allgemeine Dienste, Faxserver. 
 Beide Programme stammen aus dem Paket »getty_ps«. »getty« dient der Anmeldung an der Virtuellen Konsole oder über ein physikalisches Terminal, während das Programm »uugetty« mit Einwahlleitungen umzugehen vermag. Da das nachfolgend beschriebene »mgetty« die Funktionen beider Programme nicht nur in sich vereint, sondern mit weiteren Fähgkeiten aufwartet, werden »getty« und »uugetty« heute kaum noch verwendet. Auch wir werden diesen Getty-Vertretern nicht weiter auf den Grund gehen. 
 »Mgetty« ist eine Art Multitalent in Verbindung mit Modems. Es ermöglicht sowohl einen Einwahlserver (Terminalserver oder PPP-Server) als auch den Versand und Empfang von Faxen. Zum Betrieb eines Anrufbeantworters über ein analoges Modem ist »vgetty« aus demselben Paket erforderlich. Beide Gettys werden wir im entsprechenden Abschnitt in Allgemeine Dienste im Kapitel »Netzwerk-Grundlagen« abhandeln. 
 mingetty verwenden heute alle gängigen Distributionen, um den Anmeldevorgang an den virtuellen Konsolen zu steuern. Der Name deutet den minimalen funktionellen Umfang bereits an, sodass mingetty sich nicht eignet, um bspw. eine serielle Modemleitung anzusprechen. mingetty erwartet als Argument das Terminal-Device. Optional ermöglicht --long-hostname die Anzeige des vollständigen Rechnernamens vor dem Login-Prompt (Voreinstellung ist der Name vor dem ersten Punkt). --noclear verhindert das Löschen des Bildschirm vor Anzeige der Login-Aufforderung. In der Voreinstellung verwendet mingetty »/sbin/login« als Login-Programm. Mit --login <Programm« kann ein alternatives Programm und --logopts <Optionen> Parameter an dieses angegeben werden. mingetty gibt den Inhalt der Datei /etc/issue (falls sie existiert) vor dem Login aus. Damit sind schon alle Optionen von mingetty genannt; der Präfix ist Programm... 
 »Vboxgetty« ist wichtigster Bestandteil eines auf ISDN basierten Anrufbeantworters. Da dieses Getty nur in Zusammenhang mit einem Anrufbeantworter von Interesse ist, erfolgt die Beschreibung erst im Kapitel »Netzwerk-Grundlagen« unter Allgemeine Dienste, ISDN-Anrufbeantworter. 
 Der Inhalt dieser Datei (»Message of the day«) wird vom Kommando login im Anschluss an ein erfolgreichen Anmeldevorgang auf den Bildschirm ausgegeben. So hilft dem Administrator bswp., um allen Benutzern, die Zugang auf diesen Rechner haben, etwas mitzuteilen. 
 
 Über diese Datei kann das Login-Verhalten der Shadow-Suite konfiguriert werden. Beachten Sie, dass die Parameter MOtd_FILE, DIALUPS_CHECK_ENAB, LASTLOG_ENAB, MAIL_CHECK_ENAB, OBSCURE_CHECKS_ENAB, PORTTIME_CHECKS_ENAB, CONSOLE, SU_WHEEL_ONLY, CRACKLIB_DICTPATH, PASS_CHANGE_trIES, PASS_ALWAYS_WARN, MD5_CRYPT_ENAB, CONSOLE_GROUPS, ENVIRON_FILE, NOLOGINS_FILE, ISSUE_FILE und PASS_MIN_LEN bei Verwendung von Pluggable Authentication Modules von der dortigen Konfiguration überschrieben werden. Eine Zeile der Datei beginnt mit dem Konfigurationsparameter. Ihm folgt, durch Leerzeichen oder Tabulator(en) getrennt, der Wert. Ein Doppelkreuz leitet einen Kommentar ein, der mit einem Zeilenumbruch endet. Die nachfolgende Beschreibung enthält nur eine Auswahl aller Parameter. Im Wesentlichen verzichten wir auf die Erläuterung zu Parametern, die in der derzeitigen Implementierung zwar vorhanden, aber deren Anwendung nicht empfohlen wird. CHFN_AUTH CHFN_RESTRICT 
                  Dieser Parameter bestimmt, welche Einträge des GCOS-Feldes der /etc/passwd ein normaler Benutzer mit Hilfe von chfn
                  ändern darf. Die vier erlaubten Buchstaben sind: f für den
                  vollständigen Namen, r für die Raumnummer, w für die
                  Bürotelefonnummer und h für die private Telefonnummer. Fehlt
                  dieser Parameter, darf einzig Root Änderungen vornehmen.
                 
                CLOSE_SESSIONS 
                  Bei Verwendung von Pluggable Authentication
                  Modules ermöglicht dieser Parameter dem Kommando login, auf das Ende der
                  Sitzung zu warten und anschließend die PAM-Ressourcen freizugeben (durch
                  Aufruf von pam_close_session(...)). Die meisten PAM-Module räumen selbst
                  auf, aber eben nicht alle (u.a. Kerberos).
                 
                CONSOLE 
                  Root darf sich nur an den hier erwähnten Terminals anmelden. Neben der
                  direkten Angabe zulässiger Terminals kann auch der Pfad zu einer Datei
                  angegeben werden, die die Terminals enthält. Üblich ist /etc/securetty.
                 
                CRACKLIB_DICTPATH Pfad zu den Cracklib-Wörterbüchern. 
                DEFAULT_HOME 
                  Die Werte »true« bzw »false« legen fest, ob ein Benutzer sich anmelden darf,
                  falls sein Home-Verzeichnis nicht verfügbar ist (bspw. wenn es per NFS
                  gemountet wird, die Verbindung zum NFS-Server aber nicht hergestellt werden
                  kann).
                 
                DIALUPS_CHECK_ENAB 
                  Eine Datei /etc/dialups kann Terminals enthalten, an denen auf eingehende
                  Anrufe gewartet wird. Zu jedem Terminal kann ein Passwort festgesetzt werden.
                  Steht nun der Parameter auf »yes« wird die Abfrage dieses Passworts
                  vorgenommen.
                 
                ENVIRON_FILE Die hier angegebene Datei kann einen Satz vordefinierter Umgebungsvariablen enthalten. 
                ENV_PATH 
                  Hier wird die initiale Belegung der Variablen PATH vorgenommen. Dieser Eintrag
                  ist zwingend erforderlich, da noch keine Shell aktiv ist und somit noch kein
                  Suchpfad für Programme existiert (login muss bspw. die Shell selbst finden).
                 
                ENV_ROOTPATH Initiale Belegung von PATH für Root. 
                ERASECHAR 
                  Das angegebenem Zeichen ermöglicht das Löschen in einem Terminal.
                  Fehlt die Angabe ist [Backspace] das Löschzeichen.
                 
                FAILLOG_ENAB 
                  Bei »yes« werden fehlgeschlagende Anmeldeversuche in der Datei
                  /var/log/faillog protokolliert.
                 
                FAIL_DELAY 
                  Nach einem fehlgeschlagenen Login-Versuch wird die anegegebene Zeitspanne (in
                  Sekunden) gewartet, bevor ein erneutes Login-Prompt erscheint.
                 
                GID_MIN, GID_MAX 
                  Minimaler und maximaler Wert für eine Gruppennummer, die das Kommando groupadd automatisch kalkulieren darf.
                 
                ISSUE_FILE Pfadname zu einer Datei, deren Inhalt vor dem Loginprompt angezeigt wird. 
                LASTLOG_ENAB 
                  Steht hier »yes«, werden nach erfolgreichem Anmelden Informationen zum
                  Zeitpunkt der letzten Anmeldung und ggf. zu zwischenzeitlichen fehlgeschlagenen
                  Anmeldeversuchen ausgegeben.
                 
                LOGIN_RETRIES 
                  Bei fehlgeschlagenem Anmeldeversuch lässt das Kommando login die
                  angegebene Anzahl erneuter Versuche zu, bis es sich selbst beendet. Bei lokalen
                  Login-Konsolen startet i.d.R. ein getty anschließend erneut den
                  Anmeldevorgang; bei einer Anmeldung übers Netz wird jedoch meist die
                  Verbindung getrennt.
                 
                LOGIN_TIMEOUT 
                  Anzahl Sekunden, die login auf die Eingabe eines Passworts wartet. Nach Ablauf
                  der Zeitspanne gilt der Versuch als gescheitert.
                 
                MAIL_CHECK_ENAB 
                  Steht der Wert auf »yes«, wird ein Benutzer nach dem Login über den
                  Status seiner Mailbox informiert.
                 
                MAIL_DIR 
                  Enthält das Verzeichnis mit den Mailboxen der Benutzer. Das
                  Benutzerkennzeichen wird automatisch ergänzt. Weicht die Namensgebung von
                  diesem üblichen Schema ab, muss die Mailbox-Datei mit MAIL_FILE angegeben
                  werden.
                 
                MAIL_FILE 
                  Enthält die Datei mit der Mailbox eines Benutzers. Sie muss im
                  Heimatverzeichnis des Benutzers liegen; der Pfad zum Heimatverzeichnis wird
                  automatisch ergänzt. Dieser Parameter sollte nicht gleichzeitig mit MAIL_DIR
                  verwendet werden.
                 
                MD5_CRYPT_ENAB 
                  Bei »yes« wird das Passwort nicht per herkömmlichen DES-Algorithmus
                  verschlüsselt, sondern mittels eines MD5-Verfahrens. Somit sind
                  Passwortlängen bis zu 256 Zeichen möglich.
                 
                MOTD_FILE 
                  Enthält den vollständigen Pfad zu einer Datei mit der »Nachricht des Tages«. Mehrere Dateien können - per Doppelpunkt
                  getrennt - angegeben werden. Existieren sie, wird ihr Inhalt nach dem
                  erfolgreichen Anmelden angezeigt.
                 
                NOLOGINS_FILE 
                  Enthält den vollstädnigen Pfad zu einer Datei. Existiert die Datei,
                  ist einzig Root berechtigt, sich am System anzumelden. Anderen Benutzern wird der
                  Zugang verwährt, wobei der Inhalt der Datei angezeigt wird. In den meisten
                  Linux-Konfigurationen wird dasselbe Verhalten durch Anlegen der Datei
                  /ect/nologin erreicht.
                 
                OBSCURE_CHECKS_ENAB 
                  Steht der Wert auf »yes«, wird ein neues Passwort erst akzeptiert, nachdem es
                  einfachen Test unterzogen wurde (minimale Passwortlänge). Führt Root
                  das Kommando passwd aus, wird die Prüfung ausgesetzt.
                 
                PASS_ALWAYS_WARN 
                  Ändert Root ein Passwort, das einer Überprüfung mittels den
                  Mechanismen von OBSCURE_CHECKS_ENAB nicht standhalten würde, wird er
                  gewarnt, falls der Wert des Parameters auf »yes« steht.
                 
                PASS_CHANGE_trIES Anzahl Versuche, das Passwort zu ändern, bevor passwd abbricht. 
                PASS_MIN_DAYS, PASS_MAX_DAYS  Minimale/maximale Zeitspanne, die zwischen zwei Passwortänderungen vergehen muss/darf. 
                PASS_MIN_LEN, PASS_MAX_LEN Mindestlänge bzw. maximale Länge eines Passworts. 
                PASS_WARN_AGE 
                  Ab so vielen Tagen vor Erreichen der PASS_MAX_DAYS wird ein Benutzer gewarnt,
                  dass sein Passwort demnächst abläuft.
                 
                QMAIL_DIR Gibt den Pfad zum Mailverzeichnis bei Verwendung von qmail an. 
                QUOTAS_ENAB 
                  Steht hier »yes«, so werden die Werte des GCOS-Feldes der Datei /etc/passwd
                  verwendet, um Limits den jeweiligen Benutzer zu setzen. Selbstverständlich
                  wirkt der Eintrag nur, wenn die /etc/passwd die
                  entsprechenden Angaben auch enthält.
                 
                SULOG_FILE 
                  In diese Datei werden Aktivitäten von su aufgezeichnet. Wird die
                  Datei nicht angegeben, findet keine Protokollierung statt.
                 
                SYSLOG_SG_ENAB 
                  Steht hier »yes«, werden alle Aufrufe von sg über den syslogd protkolliert.
                 
                SYSLOG_SU_ENAB 
                  Steht hier »yes«, werden alle Aufrufe von su über den syslogd protkolliert.
                 
                TTYGROUP 
                  Das Login-Terminal kann mit der angegebenen Gruppe als besitzende Gruppe
                  gestartet werden. In Verbindung mit TTYPERM lassen sich somit die Rechte
                  detaillierter steuern.
                 
                TTYPERM 
                  Die Rechte, mit denen ein Login-Terminal versehen wird. Fehlt der Eintrag, so
                  werden die Rechte intern auf 622 gesetzt. Somit sind andere Benutzer
                  bemächtigt, auf das Terminal zu schreiben (bspw. mit dem Kommando write,
                  talk...).
                 
                TTYTYPE_FILE 
                  Hier wird der Pfad zu einer Datei mit den Terminal-Spezifikationen angegeben.
                  Diese Datei enthält Zeilen, die einem Terminal einen konkreten Typ
                  (»Terminalemulation«) zuordnen. So sind lokale Login-Konsolen (tty1..tty6) meist
                  vom Typ »linux«; Pseudoterminals (ttypX) zur Anmeldung übers Netz
                  verwenden häufig die »vt100«-Emulation.
                 
                UID_MIN, UID_MAX 
                  Minimale bzw. maximale Nummer, die vom Kommando useradd bei der
                  automatischen Vergabe der UID gewählt werden kann.
                 
                ULIMIT Dateien dürfen maximal diese Größe annehmen. 
                UMASK 
                  Die Voreinstellung der Zugriffsrechte für neu erstellte Dateien und
                  Verzeichnisse; siehe umask im Abschnitt
                  Zugriffsrechte.
                 
          
 Haben Sie schon einmal versucht, unter dem Nutzerkennzeichen root eine Verbindung zu einem Rechner über Telnet zu initiieren? Dann habe Sie schon Bekanntschaft mit der Ausgabe »Keine Berechtigung« gemacht? Mit der Sicherheit der Administrator-Zugangs steht und fällt die Sicherheit Ihres gesamten Systems. So wird es nicht verwundern, dass man besondere Maßnahmen getroffen hat, um die Möglichkeiten zum Root-Zugang zu erschweren. Die Datei /etc/securetty enthält nun die »vertrauenswürdigen« Terminal, an denen ein Root-Zugang gewährt wird: 
 Obige Konstellation gestattet ein Root-Login nur von einer der virtuellen Konsolen aus. Ein Versuch über ein Pseudo-Terminal (z.B. über das Netz) wird somit immer abgewiesen. /etc/securetty wird vom Kommando login ausgewertet. 
 Wenn ein Benutzer sich erfolgreich am System anmeldet, dann startet die in der Datei /etc/passwd fest gelegte Shell. Ein Benutzer hat nun die Möglichkeit, eine andere so genannte Default-Shell einzustellen. Diese Loginshell ist nun ein zentraler Angelpunkt, denn alle Prozesse, die ein Benutzer im Laufe der Sitzung kreiert, sind Abkömmlinge des die Shell ausführenden Prozesses. Eine mangelhafte implementierte Shell könnte somit unter Umständen die Stabilität des gesamten Systems gefährden. Aus diesem Grund werden alle Shells, die ein Benutzer als seine default-Shell verwenden darf, in der Datei /etc/shells zusammengefasst. Eine dort nicht erwähnte Shell wird somit niemals vom Kommando chsh akzeptiert werden. Beachten Sie, dass die Shells mit vollständigem Pfad anzugeben sind: 
 
 
  | 
            ||||||||||||||||||||||||||||||||||||||||
![]()  | 
            ||||||||||||||||||||||||||||||||||||||||
 Korrekturen, Hinweise? | 
            ![]() ![]()  |