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.
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::studentDamit landet man nach jedem Einloggen im Verzeichnis /home/cip/92/student mit der Shell tcsh.