Inhaltsverzeichnis

Login Shell

Alle Studierenden, die sich auf einen Poolrechner oder über Clientssh anmelden, bekommen als Login Shell die Bash zugewiesen. Nun gibt es wie so häufig im Unix/Linux Umfeld auch Alternativen und diese lassen sich auf drei Wegen verwenden:

  • Direkter Aufruf - einmalig, beispielsweise zum testen
  • Ändern im Userprofil (~/login_bash) - dauerhafter, aber nicht praktisch
  • Ändern in den Stammdaten des LDAPs

Um eine andere Shell zu testen, genügt es einfach:

benutzername:$ /usr/bin/zsh

aufzurufen. Mittels „exit“ kann man diese Umgebung wieder verlassen.

Eine andere Möglichkeit dies etwas dauerhafter zu gestalten, ist es diesen Aufruf in die Datei (die es meistens noch nicht gibt) ~/.bash_login zu schreiben. Dieses Script wird immer dann ausgeführt, sobald man sich einloggt, wobei nicht immer der Login gemeint ist, bei dem Username und Kennwort abgefragt wird.

Eine bessere Lösung ist es die Standardshell in den eigenen Userdaten selbst zu ändern. Dafür gibt es normalerweise das Kommando „chsh“. Da die Informationen über jeden RBG/ISP Account aber nicht in der Datei /etc/passwd (die Benutzerdatenbank) verwaltet werden, sondern im LDAP der RBG/ISP, gibt es für das Kommando „chsh“ keinen Weg, diese Information dort zu ändern. Die RBG/ISP stellt daher das Kommando „/usr/local/bin/chsh.ldap“ zur Verfügung, welches diese Information (loginShell) anpasst.

$chsh.ldap /bin/zsh

Enter LDAP Password:
modifying entry "uid=testds,ou=people,ou=RBG/ISP,dc=informatik,dc=tu-darmstadt,dc=de"

Beim Aufruf wird das Kennwort des RBG/ISP Accounts abgefragt. Stimmt das Kennwort überein, wird die LoginShell im LDAP Server hinterlegt. Prüfen lässt sich dies ganz einfach:

$ getent passwd testds

testds:x:14979:4000:Testds7 Foobar7:/export/files/disc05/users1/testds:/usr/bin/zsh

Statt „testds“ ist der eigene RBG/ISP Loginname zu verwenden.

Sollte immer noch die alte Shell dort aufgeführt und beim Ändern kein Fehler aufgetreten sein, so liegt das schlicht am Cache des jeweiligen Rechners, um den LDAP Server zu entlasten. Der Cache wird erst nach ein paar Minuten aktualisiert.

Daher gibt es noch einen alternativen Weg, dies zu überprüfen:

ldapsearch -x -LLL uid=testds loginshell

dn: uid=testds,ou=people,ou=RBG/ISP,dc=informatik,dc=tu-darmstadt,dc=de
loginShell: /usr/bin/zsh

Mit dem Kommando „ldapsearch“ kann der LDAP Server direkt abgefragt werden und lasse nur das Attribut „loginshell“ anzeigen. Wie man sieht, wurde die neue Shell gesetzt.

Verfügbare Shells

Auf den Poolrechnern sind unter anderem folgende Shells vorinstalliert:

  • /bin/sh - Standardshell für viele Scripte
  • /bin/bash - Standardshell für Benutzer
  • /usr/bin/ksh - KornShell
  • /usr/bin/screen - Virtuelle Shell → Google
  • /usr/bin/zsh - Mächtige Shell mit sehr vielen Funktionen
  • …. siehe /etc/shells

Andere Sprachen
Übersetzungen dieser Seite: