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?

ssh  bash 

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.


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.


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

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 .


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>
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.