web-dev-qa-db-fra.com

Comment puis-je commencer en bash lorsque je ssh'ing sur mon serveur?

J'ai un serveur Debian hébergé. Lorsque je me connecte via ssh, je suis accueilli avec un environnement sh. Comment puis-je le changer pour que je commence dans un environnement bash?

27
bbbgscott

En tant qu'utilisateur régulier, vous pouvez modifier votre shell de connexion par défaut à l'aide de la commande chsh. Voici un exemple:

chsh -s /bin/bash

Une autre option consiste à utiliser usermod en tant que root:

usermod -s /bin/bash username
31
jordanm

Vous éditez /etc/passwd où la dernière entrée est le shell par défaut. Faites-le /bin/bash.

Alternativement, vous pouvez modifier le paramètre par défaut du système, /bin/sh n'étant pas bash.

5
Dirk Eddelbuettel

Vous devez modifier votre profil utilisateur. Vous pouvez le faire directement en modifiant le fichier /etc/passwd ou vous pouvez utiliser la commande usermod pour le faire à votre place. La syntaxe que vous recherchez ressemble à ceci:

usermod -s /bin/bash joeuser
2
tylerl

Si vous essayez d'utiliser un compte partagé (pour quelque raison que ce soit) et que vous ne pouvez pas modifier le shell par défaut, vous pouvez exécuter

ssh -t <user@hostname> bash -l

Si vous devez conserver votre environnement à partir d'un autre shell, vous pouvez d'abord l'exécuter. par exemple

ssh -t <user@hostname> ksh -c bash -l
1
UKMonkey

Le système par défaut Shell /bin/sh dans les dernières versions d'Ubuntu est configuré pour être /bin/dash. En exécutant simplement la commande suivante:

Sudo dpkg-reconfigure dash

vous pouvez le rétablir dans l'ancien paramètre par défaut de /bin/bash.

Avec cela, vous pouvez obtenir l'effet souhaité d'avoir bash en tant que shell interactif sans modifier les paramètres utilisateur (pas de chsh ou usermod), et cela fonctionnera pour tous les utilisateurs pour lesquels Shell est défini sur /bin/sh.

Il n’ya qu’un petit inconvénient à cela: le temps de démarrage d’Ubuntu pourrait légèrement augmenter, car dash nécessite moins de mémoire à charger et un peu plus vite à exécuter (ce n’est pas étonnant, ses fonctionnalités sont si limitées). Mais je pense qu'il sera assez difficile de mesurer cet effet, en particulier pour l'environnement d'hébergement.

De plus, il est parfois gênant de voir les scripts Shell ne pas fonctionner correctement car ils utilisent certaines fonctionnalités avancées bash qui ne sont pas prises en charge par dash. En utilisant cette recette, vous vous assurez que cela n'arrivera pas.

Pour plus d'informations, consultez le wiki Ubuntu sur ce problème .

1
mvp