Categories
HowTos Linux

How to change Linux default Login Shell?

Most of the Linux flavors use BASH as default shell. But as per requirements or interest people tend to use other shells. In our case, we saw server had CSH set as default SHELL.

Now, there is a utility called chsh is used for changing your default shell without requiring manual modifications in /etc/passwd

How to use chsh to change your default shell?

First of all look at available shells
cat /etc/shells

# /etc/shells: valid login shells
/bin/csh
/bin/sh
/usr/bin/es
/usr/bin/ksh
/bin/ksh
/usr/bin/rc
/usr/bin/tcsh
/bin/tcsh
/usr/bin/esh
/bin/dash
/bin/bash
/bin/rbash
/usr/bin/screen

If you are a super user e.g root, chsh syntax is here;
chsh -s /path/to/shell testuser

Example :
chsh -s /bin/bash david

By default user have privilege to change their shell only using below command.
chsh
Output:
Password:

provide your password and it should prompt next screen as below.
Changing the login shell for david
Enter the new value, or press ENTER for the default
Login Shell [/bin/sh]:

By the way, super user(e.g root) can change shell for any user editing /etc/passwd.