I want every new user from now on to have bash as their shell by default.
I know that to change your own shell to bash, you would use the command "chsh -s /bin/bash", but how do I automatically set all future users' shell to bash by default?
I want every new user from now on to have bash as their shell by default.
I know that to change your own shell to bash, you would use the command "chsh -s /bin/bash", but how do I automatically set all future users' shell to bash by default?
adduser
The
adduser
defaults file is/etc/adduser.conf
. The default shell defined by theDSHELL
variable is/bin/bash
by default.useradd
Most likely you don't need this because useradd is a very low-level utility, and it's hardly ever used directly.
If you use useradd, edit the
/etc/default/useradd
skeleton file (don't forget to make a backup though).Set the
SHELL
variable to/bin/bash
instead of/bin/sh
.Now every time you use
useradd
to add a new userbash
is automatically their default shell.Already existing users
If you want to change the shell of already existing users you have to edit the
/etc/passwd
file (please make sure to back have a backup of it).Here is a description of the columns
In that order separated by colons (:) like this.
For more information about that file consult the man page
man 5 passwd
.As Octavian pointed out, the way to change the defaults depends on the way you're creating the user. I tried creating a new user through my Gnome Settings just now, and it seems to follow
/etc/default/useradd
, so that might be your best bet. For existing users, the safest way to change someone else's login shell is with usermod:If you're not root, you'll need to sudo that. An alternative is to sudo into the user you want to modify and just run chsh, like this:
It's best to avoid editing
/etc/passwd
by hand, because a mistake in there could break all sorts of things.If you actually want all users on the server to have bash (which was the question actually asked), you can run the command:
And then choose NOT dash. As explained in this answer,
How Can I Make /bin/sh point to /bin/bash?
Not only does that set bash as the default shell, but repoints sh and the man pages correctly.
Hope this helps.