SSH shell prompt does not show user@host for one user
I have Ubuntu 12.04 server running. I created user1 when I installed, and created user2 today with '1useradd' and I added it to all the same groups as user1.
But when I log in remotely using SSH, the prompt for user1 looks like this:
user1@host:~$
And the prompt for user2 looks like this:
$
Most importantly, the shell doesn't behave as nicely as I'm used to when I'm logged in as user2. There is no autocomplete of commands or files with tab, and I can't access the MRU with up.
Solution 1:
It is because their shell is set to /bin/sh, and not /bin/bash. You can use the program chsh
(CHange SHell) to change that user's shell. When you're logged in as that user, run:
chsh /bin/bash
I would recommend against editing /etc/passwd manually as you could accidentally enter a syntactically wrong line in to it (without realising), which might break logins for other users.
Solution 2:
Note: Use the method in the update, it's safer than manually editing passwd file.
the useradd
command apparently sets /bin/sh
as the default shell (which in turn is linked to /bin/dash
). Try editing /etc/passwd
and change /bin/sh
to /bin/bash
for user2.
In the future, use adduser
instead.
UDPATE:
As @Scott suggested below, instead of editing /etc/passwd
use the chsh command:
chsh /bin/bash
Source: http://the-hydra.blogspot.com.ar/2012/03/useradd-and-adduser-are-same-think.html
Solution 3:
While chsh
gets the job done, just like one would modify several other aspects of a user, the usermod
command is your friend:
usermod -s /bin/bash user
It is the editing counterpart of useradd
.