Login-Shells
CIP Index Up Left

Login-Shells

Login-Shell ist eine normale Shell, die als erstes Kommando beim Einloggen gestartet wird und im Prozeß des Hochfahrens der gesamten Umgebung meist eine Reihe anderer Kommandos startet. Meist wird eine Session, d.h. die Zeit, die man am Rechner eingeloggt ist, als die Lebensdauer der Login-Shell definiert.

Man erkennt eine login-Shell in der Ausgabe von z.B. ps daran, daß vor dan Namen der Shell ein "-" gesetzt wird (z.B. "-csh"). Es gibt natürlich kein Kommando "-csh", aber man kann z.B. unter C mit der Funktion execl auch das Argument 0, d.h. den Kommandonamen mit übergeben, der dann nicht deckungsgleich mit dem Dateinamen sein muß, der das Programm enthält. Setzt man dort den Bindestrich vor, so verhält sich die Shell als login-Shell. Das logout-Kommando ist nur in richtigen Login-Shells erlaubt, d.h. nicht solchen, die man per "-" erschwindelt hat, sondern nur denen, die als Vater den Prozeß Nummer 1 haben.

Festlegen der Login-Shell

Normalerweise kann man seine Login-Shell durch das Kommando chsh ändern, das den Passwort-Eintrag ändert (denn dort ist für jeden Benutzer die Login-Shell angegeben). Dies ist im CIP-Pool jedoch aus Sicherheitsgründen nicht erlaubt (über die Login-Shell envlogin und die Netzgruppenzugehörigkeit wird bei uns entschieden, auf welchen Rechnern man sich einloggen darf).

Man kann jedoch den Projektmechanismus und speziell die .projects Datei mißbrauchen, um die Login-Shell zu wählen. Dazu definiert man ein Projekt, in dem nur man selbst Mitglied ist, und das die gewünschte Shell als Login-Shell hat. Beispiel für tcsh als Login-Shell und Benutzer student:

   none:/home/cip/92:/local/bin/tcsh:0::student
Damit landet man nach jedem Einloggen im Verzeichnis /home/cip/92/student mit der Shell tcsh.

Siehe auch:
Manual zu envlogin
Einführung in NIS
Projekthomes