Lorsque vous installez Linux ubuntu, le shell bash est configuré par défaut. Mais saviez-vous qu'il est en réalité possible d'utiliser d'autres shells ?

Lors de la création d'un nouvel utilisateur sous Linux, vous pouvez spécifier le shell par défaut que l'utilisateur utilisera. L'option à cet effet est l'option useradd -s. Pour un utilisateur déjà créé, il est également possible de le changer avec la commande usermod -s.

Dans cet article, nous allons faire le point sur les principaux shells qui peuvent être utilisés avec l'option -s de useradd, ainsi que sur leurs caractéristiques, et comment vérifier la liste des shells disponibles sur le système actuel.

Développeur réfléchissant à l'option useradd -s permettant de choisir parmi divers shells


1. Principaux types de shells et leurs caractéristiques

Chemin du shell Nom du shell Caractéristiques
/bin/bash Bash Shell standard le plus largement utilisé, offrant des fonctionnalités variées telles que l'édition des commandes, la complétion automatique et la possibilité d'écrire des scripts.
/bin/sh Bourne Shell Shell léger avec un ensemble minimal de fonctionnalités, principalement utilisé dans des scripts et des environnements limités.
/bin/zsh Z Shell (Zsh) Extension de Bash, offrant d'excellentes fonctionnalités de complétion automatique et de personnalisation. Gagne rapidement en popularité.
/bin/ksh Korn Shell Shell largement utilisé dans des environnements commerciaux, mettant l'accent sur la rapidité et l'efficacité.
/usr/bin/fish Fish Shell Recommandé pour les débutants, il propose une utilisation intuitive et de puissantes fonctionnalités de complétion automatique.
/usr/sbin/nologin ou /bin/false Shell non connecté Utilisé pour bloquer l'accès direct, souvent appliqué lors de la création de comptes système ou de comptes de service.

2. Vérifier les shells disponibles sur le système

La liste des shells disponibles sur le système est enregistrée dans le fichier /etc/shells. Vous pouvez la vérifier avec la commande suivante :

cat /etc/shells

Exemple de sortie :

/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/usr/bin/sh
/bin/dash
/usr/bin/dash

Seuls les shells listés dans ce fichier peuvent être utilisés avec l'option -s de useradd.


3. Vérifier précisément le chemin du shell nologin

Pour vérifier l'emplacement exact du shell de blocage de connexion (nologin), utilisez la commande suivante :

which nologin

Exemple de sortie :

/usr/sbin/nologin

Comme cela peut varier d'un système à l'autre, il est conseillé de faire cette vérification.


4. Exemples de cas d'utilisation

Ajouter un utilisateur utilisant le shell Bash

sudo useradd -m -s /bin/bash username

Ajouter un utilisateur utilisant le shell Zsh

sudo useradd -m -s /bin/zsh username

Ajouter un utilisateur système sans possibilité de connexion

sudo useradd -r -s /usr/sbin/nologin username

Exemple de changement de shell d'un utilisateur existant :

sudo usermod -s /usr/sbin/nologin username

Commande pour vérifier le résultat du changement :

cat /etc/passwd | grep username

Exemple de sortie correcte :

username:x:1004:1004::/home/django:/usr/sbin/nologin

Vous avez maintenant une compréhension claire de l'option -s de useradd et des shells disponibles. Gérez vos comptes en toute sécurité avec les réglages de shell appropriés !