SSH shell prompt does not show user@host for one user

23,539

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.

Share:
23,539

Related videos on Youtube

Bill
Author by

Bill

Updated on September 18, 2022

Comments

  • Bill
    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
      guntbert about 11 years
      Between adduser and useradd I always use adduser, it is the recommended "high level" routine, which also can/will create useful defaults for the new user, whereas useradd only generates the user and does nothing else.
  • Bill
    Bill about 11 years
    That did it! So funny that useradd and adduser both exist.
  • Bill
    Bill about 11 years
    I 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
    martintama about 11 years
    What @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
    Scott about 11 years
    The 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.