Comment réparer bash ou auto run / bin / bash lors de la connexion SSH

16

Lors de la connexion comme rootsur mon serveur, tout fonctionne bien, mais lorsque je me connecte en tant que myusernamebash ne fonctionne pas correctement.

La ligne commence par:

$ 

au lieu de

myusername@myserver:~$

et toutes les touches spéciales comme les touches fléchées, les touches de tabulation, etc. ne fonctionneront pas.

Lorsque je tape, bin/bashcela fonctionne à nouveau, mais je voudrais résoudre le problème ou exécuter automatiquement bin/bashlors de la connexion. Comment puis-je réparer cela?


la source

Réponses:

16

Vous avez juste besoin de changer votre coque. En tant qu'utilisateur, exécutez:

$ chsh -s /bin/bash

Ensuite, déconnectez-vous et reconnectez-vous.

Après avoir fait cela, l'invite ne vous ressemble pas, vous devrez commencer à peaufiner la variable PS1 de votre environnement.

EEAA
la source
C'est en fait assez dangereux car la question concerne l' rootutilisateur. Il n'utilise probablement pas Linux. Root devrait rester avec le shell par défaut car le vendeur va probablement compter sur lui kshou sur tout autre choix. Au lieu de cela, la vraie réponse est "vous ne devriez pas vous connecter en tant que root de toute façon".
bahamat
12

Vous devez changer votre coque. Exécutez la commande

chsh -s /bin/bash

puis reconnectez-vous.

Cependant, tous les utilisateurs n'ont pas le droit de changer leur propre shell. Si vous utilisez, sudon'oubliez pas d'ajouter votre nom d' utilisateur à la chshcommande en tant que

sudo chsh <username> -s /bin/bash

sinon, vous changerez le shell pour root par inadvertance.

Mikael Fremling
la source
Bon point. Prolonge légèrement la réponse.
Mikael Fremling
J'étais très naïf à essayer: sudo chsh -s /bin/bashmon utilisateur n'avait pas la permission de changer de shell. Votre réponse m'a aidé à le résoudre. Merci!
Edenshaw
5

Une raison possible est que le shell par défaut de myusername n'est pas bash.

Vous pouvez vérifier le shell de votre utilisateur actuel avec:

  • echo ${SHELL}
  • echo $0

Pour changer le shell utilisateur de façon permanente, voir man chsh par exemple:

chsh -s /bin/bash
H.-Dirk Schmitt
la source
2

Si votre mot de passe utilisateur sudo est désactivé, vous pouvez modifier /etc/passwddirectement le, trouver la ligne où se trouve votre utilisateur et changer le chemin du shell en /bin/bash.

Voici l'explication du format / etc / passwd .

foman
la source
0

Je voulais juste ajouter une chose.

Si l'accès sudo est requis pour changer le bash pour cet utilisateur, vous devez également mentionner votre nom d'utilisateur dans la commande sudo car sans nom d'utilisateur, il s'appliquera à l'utilisateur root.

$ sudo chsh -s /bin/bash <user>
Prateek
la source