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?
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
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.
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
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
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 .