Linux : comment changer son shell par défaut avec la commande chsh ?
Sommaire
I. Présentation
Dans ce tutoriel, nous allons apprendre à changer le shell par défaut de notre utilisateur ou d'un autre utilisateur à l'aide de la commande chsh. Ceci peut s'avérer utile si vous souhaitez passer de Bash à Zsh, ou peut-être même de Bash à PowerShell ! 🙂
Enfin, Bash n'est pas forcément le shell par défaut ! Si l'on prend l'exemple de Kali Linux, le shell par défaut est "zsh" depuis la version 2020.4.
D'ailleurs, cette démonstration est réalisée sous Kali Linux, mais vous pouvez utiliser une autre distribution (Debian, Ubuntu, RHEL, etc.). Vous devez disposer des droits "root" (via sudo, par exemple) pour changer le shell d'un autre utilisateur.
Pour rappel, le shell est un interpréteur de commande.
II. Quels sont les shells disponibles sur ma machine Linux ?
Avant de vouloir changer de shell pour remplacer Bash par autre chose, il faudrait déjà savoir quels sont les shells actuellement disponible sur la machine locale !
cat /etc/shells
Voici un exemple :
III. Comment changer mon shell par défaut ?
Maintenant que l'on sait quels sont les shells disponibles, nous allons pouvoir choisir un nouveau shell par défaut. Pour cela, exécutez simplement la commande "chsh" comme ceci :
chsh
Il ne vous reste plus qu'à préciser le nom du nouveau shell via son chemin (référez-vous à la sortie de la commande précédente) puis validez avec Entrée.
Vous pouvez aussi utiliser directement cette syntaxe :
chsh -s /bin/bash
Dans l'exemple ci-dessus, on définit Bash comme shell par défaut.
Ensuite, vous devez redémarrer la machine ou fermer/rouvrir la session pour appliquer le changement. Vous pouvez obtenir le nom de votre shell actuel via cette commande :
ps -p $$
Mais, finalement, cette information est visible dans le fichier suivant :
/etc/passwd
Ainsi, vous avez l'information pour chaque utilisateur :
IV. Modifier le shell par défaut d'un autre utilisateur
Nous avons vu comment changer le shell par défaut de l'utilisateur actif avec lequel nous sommes connectés. Mais, comment effectuer cette modification sur un autre utilisateur ? Pour cette partie, vous avez besoin des droits d'administration sur le serveur : les commandes seront à préfixer avec sudo.
Voici la syntaxe à respecter :
sudo chsh -s <chemin vers le shell> <identifiant utilisateur>
Par exemple, pour définir "PowerShell" comme shell par défaut pour "florian", on exécutera cette commande :
sudo chsh -s /bin/pwsh florian
Libre à vous d'adapter cet exemple en fonction de vos besoins ! Vous pouvez revenir en arrière à tout moment en indiquant la valeur correspondant à votre précédent shell par défaut.
V. Conclusion
Simple et efficace, la commande chsh permet de changer le shell par défaut sur une machine Linux ! Elle permet d'effectuer la modification proprement dans la configuration du système.