Le shell bash est l'un des shells de connexion les plus utilisés sous Linux. Mais il existe également d'autres shells, et vous pouvez les utiliser pour votre travail en ligne de commande (jusqu'à ce qu'il y ait bien sûr une exigence spécifique pour votre travail). Dans cet article, nous discuterons d'un outil - appelé chsh - qui vous permet de basculer vers un shell de connexion différent de votre shell actuel.
Mais avant cela, il convient de mentionner que tous les exemples de ce didacticiel ont été testés sur une machine Ubuntu 18.04 LTS.
Commande Linux chsh
Comme déjà expliqué dans l'introduction ci-dessus, la commande chsh permet de changer de shell de connexion. Voici sa syntaxe :
chsh [options] [LOGIN]
Et voici ce que dit la page de manuel de l'outil :
The chsh command changes the user login shell. This determines the name
of the user's initial login command. A normal user may only change the
login shell for her own account; the superuser may change the login
shell for any account.
Voici quelques exemples de style questions-réponses qui devraient vous donner une bonne idée du fonctionnement de la commande chsh.
Q1. Comment utiliser chsh ?
L'utilisation de base est assez simple - il suffit d'exécuter la commande 'chsh' sans arguments. On vous demandera votre mot de passe de connexion, et après l'avoir saisi avec succès, vous aurez la possibilité de changer votre shell de connexion.
chsh
Notez que par défaut, le shell de connexion de l'utilisateur actuel est modifié.
Q2. Comment changer le shell de connexion en utilisant chsh ?
Comme vous vous en doutez, entrez simplement la nouvelle valeur (voir la capture d'écran dans l'exemple précédent) et votre shell sera remplacé par le nouveau.
Par exemple, j'ai saisi /bin/sh comme nouvelle valeur.
Pour vérifier la modification, vous pouvez réexécuter la commande chsh. La valeur indiquée entre crochets est le shell actuel. Donc dans mon cas, le shell actuel est devenu /bin/sh :
Q3. Comment changer le shell de connexion pour un autre utilisateur ?
Pour cela, spécifiez simplement le nom d'utilisateur en entrée de la commande chsh.
chsh [username]
Par exemple, pour changer le shell de connexion de root, utilisez chsh de la manière suivante :
chsh root
Q4. Comment faire fonctionner chsh en mode non interactif ?
Utilisez l'option de ligne de commande -s pour cela, qui nécessite que le nom du shell lui soit transmis en entrée.
Par exemple :
chsh -s /bin/sh
Ainsi, de cette façon, le shell de connexion de l'utilisateur actuel sera remplacé par /bin/sh de manière non interactive.
Q5. Comment voir une liste des shells de connexion disponibles sur le système ?
Pour consulter rapidement la liste des shells disponibles sur votre système, accédez simplement au fichier /etc/shells.
Par exemple, voici la sortie produite sur mon système :
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/bin/rbash
/bin/dash
Remarque :
The only restriction placed on the login shell is that the command name
must be listed in /etc/shells, unless the invoker is the superuser, and
then any value may be added. An account with a restricted login shell
may not change her login shell. For this reason, placing /bin/rsh in
/etc/shells is discouraged since accidentally changing to a restricted
shell would prevent the user from ever changing her login shell back to
its original value.
Conclusion
Vous voyez donc que la commande chsh est un outil important que les utilisateurs de la ligne de commande doivent connaître. Ici, dans ce didacticiel, nous avons discuté de la majorité des options de ligne de commande proposées par l'outil. Pour en savoir plus sur chsh, rendez-vous sur sa page de manuel.