web-dev-qa-db-fra.com

Invite de shell SSH ne montre pas utilisateur @ hôte pour un utilisateur

J'ai un serveur Ubuntu 12.04 en cours d'exécution. J'ai créé user1 lors de l'installation et ai créé user2 aujourd'hui avec '1useradd' et je l'ai ajouté aux mêmes groupes que user1.

Mais lorsque je me connecte à distance à l'aide de SSH, l'invite de l'utilisateur 1 ressemble à ceci:

user1@Host:~$

Et l'invite pour user2 ressemble à ceci:

$

Plus important encore, le shell ne se comporte pas aussi bien que ce à quoi je suis habitué lorsque je suis connecté en tant qu'utilisateur2. Il n'y a pas d'auto-complétion de commandes ou de fichiers avec onglet, et je ne peux pas accéder à la MRU avec up.

4
Bill

C'est parce que leur shell est défini sur/bin/sh, et non/bin/bash. Vous pouvez utiliser le programme chsh (CHange Shell) pour changer le shell de cet utilisateur. Lorsque vous êtes connecté en tant qu'utilisateur, exécutez:

chsh /bin/bash

Je recommande de ne pas éditer/etc/passwd manuellement car vous pourriez accidentellement entrer une ligne syntaxiquement incorrecte (sans vous en rendre compte), ce qui risquerait d'interrompre la connexion pour d'autres utilisateurs.

7
Scott

Remarque: Utilisez la méthode de la mise à jour, il est préférable de ne pas modifier manuellement le fichier passwd.

la commande useradd définit apparemment /bin/sh comme shell par défaut (qui est lié à /bin/dash). Essayez d’éditer /etc/passwd et modifiez /bin/sh en /bin/bash pour user2.

À l'avenir, utilisez adduser à la place.

UDPATE: Comme @Scott l’a suggéré ci-dessous, au lieu d’éditer /etc/passwd, utilisez la commande chsh:

chsh /bin/bash

Source: http://the-hydra.blogspot.com.ar/2012/03/useradd-and-adduser-are-same-think.html

6
martintama

Tandis que chsh effectue le travail, comme on modifierait plusieurs autres aspects d’un utilisateur, la commande usermod est votre amie:

usermod -s /bin/bash user

C'est la contrepartie d'édition de useradd.

1
Nachbars Lumpi