Table of Contents

Login Shell

For every student who logs in on the pool computer or via clientssh the login shell will be set to bash. Now there are a lot of alternatives especially for unix/linux and they can be used in three ways:

  • direct call - onetime, e.g. for testing
  • changing of the userprofile (~/login_bash) - permanently but not so practial
  • changing the master data of the LDAP

To test the other shell it's enough to call:

username:$ /usr/bin/zsh

You can use the command “exit” to leave the environment.

An other possibility to set this permanently is to write this call in the file (which does not exist in most cases) ~/.bash_login. This script is always executed during the login, where the login with username and password is not necessarily meant by.

A better solution is to change the default shell in your own user data. Normally you can use the command “chsh”. These information about the RBG/ISP account are not managed in the file /etc/passwd (the user database) but in the LDAP of the RBG/ISP. So the the command “chsh” is no way to change this. Due to that the RBG/ISP offers the command “/usr/local/bin/chsh.ldap” which is able to change this information (loginShell).

$chsh.ldap /bin/zsh

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

During the call the RBG/ISP password will be requested. If the password matches the login shell will be stored on the LDAP server. This can be checked very easy:

$ getent passwd testds

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

Instead of “testds” you should enter your own RBG/ISP login name.

If the old shell is still listed there and there are no errors during the changes, you can be sure that the problem is the cache of the computer to unburden the LDAP server. The cache will be updated in a few minutes.

Due to that there is an other way to check this:

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

You can directly ask the LDAP server with the command “ldapsearch” and only let the attribute “loginshell” be displayed. As you can see the new shell was set.

available shells

On the pool computer there are among other thing the following shells available:

  • /bin/sh - default shell for many scripts
  • /bin/bash - default shell for user
  • /usr/bin/ksh - korn shell
  • /usr/bin/screen - virtuelle shell → Google
  • /usr/bin/zsh - mighty shell with various functions
  • …. look at /etc/shells

In Other Languages
Translations of this page: