SSH shell prompt does not show user@host for one user
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
.
Related videos on Youtube
Bill
Updated on September 18, 2022Comments
-
Bill almost 2 years
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.
-
guntbert about 11 yearsBetween
adduser
anduseradd
I always useadduser
, it is the recommended "high level" routine, which also can/will create useful defaults for the new user, whereasuseradd
only generates the user and does nothing else.
-
-
Bill about 11 yearsThat did it! So funny that useradd and adduser both exist.
-
Bill about 11 yearsI noticed that in /etc/passwd the entries look like: user1:x:1000:1000:user1,,,:/home/user1/bin/bash user2:x:1001:1001::/home/user2:bin/sh Do you know what the user1,,, does? csh didn't seem to change that part.
-
martintama about 11 yearsWhat @Scott says is true. I forgot the
chsh
command. One should always try to avoid editing system files directly if there's a command that does that for us. Thanks! -
Scott about 11 yearsThe comma-separated stuff is called Gecos data. It's used for things like room number, telephone number, and some other things. Running adduser actually prompts you for all of this info, but it's largely useless for you if this is just your personal computer. Check out this wiki link for a more complete explanation.