How/Command to change the login shell for a user – Unix/Linux
We have already discussed one method to change the login shell of a user by changing the shell value in /etc/passwd file by using the command USERMOD. Shell is a program that takes your commands from the keyboard and gives them to the operating system to perform. Here I am explaining one another simple method to change the login shell of a user with help of the command ‘chsh‘.
All shells are listed in /etc/shells, see the example below:
root@crybit [~]# cat /etc/shells /bin/sh /bin/bash /sbin/nologin /bin/tcsh /bin/csh /usr/local/cpanel/bin/jailshell /bin/ftpsh /usr/local/cpanel/bin/noshell
The ‘chsh‘ command usage with examples:
# chsh [options] [user]
1, -s, –shell
Specify your login shell.
2, -l, –list-shells
Print the list of shells listed in /etc/shells and exit.
3, -u, –help
Print a usage message and exit.
4, -v, –version
Print version information and exit.
How to change the login shell of a user?
# chsh -s /new/shell username
root@crybit [~]# grep crybit /etc/passwd crybit:x:32011:32012::/home/crybit:/bin/bash ------ root@crybit [~]# chsh -s /sbin/nologin crybit Changing shell for crybit. Shell changed. ------ root@crybit [~]# grep crybit /etc/passwd crybit:x:32011:32012::/home/crybit:/sbin/nologin
That’s it !!! 🙂