Comment vérifier si le shell d'un utilisateur spécifique est défini sous Linux

LinuxLinuxBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire (lab), vous apprendrez à vérifier le shell par défaut d'un utilisateur spécifique sous Linux. Le shell est l'interpréteur de ligne de commande qui traite vos commandes, et différents utilisateurs peuvent avoir des shells par défaut différents.

Vous explorerez le fichier /etc/passwd pour identifier le shell par défaut d'un utilisateur, comprendrez comment lister les shells disponibles sur le système à l'aide de la commande chsh -l, et vérifierez les informations sur le shell d'un utilisateur à l'aide de la commande getent passwd. Ce laboratoire fournit des connaissances fondamentales pour comprendre les configurations des utilisateurs sous Linux.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux/BasicSystemCommandsGroup -.-> linux/help("Command Assistance") linux/BasicSystemCommandsGroup -.-> linux/man("Manual Access") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") subgraph Lab Skills linux/help -.-> lab-558766{{"Comment vérifier si le shell d'un utilisateur spécifique est défini sous Linux"}} linux/man -.-> lab-558766{{"Comment vérifier si le shell d'un utilisateur spécifique est défini sous Linux"}} linux/cat -.-> lab-558766{{"Comment vérifier si le shell d'un utilisateur spécifique est défini sous Linux"}} end

Vérifier le shell d'un utilisateur avec cat /etc/passwd

Dans cette étape, vous apprendrez à vérifier le shell par défaut d'un utilisateur sous Linux. Le shell est l'interpréteur de ligne de commande qui traite vos commandes. Différents utilisateurs peuvent avoir des shells par défaut différents.

Le fichier /etc/passwd contient des informations sur tous les utilisateurs du système. Chaque ligne de ce fichier représente un utilisateur et est structurée avec des champs séparés par des deux-points (:). Le dernier champ de chaque ligne spécifie le shell par défaut de l'utilisateur.

Nous pouvons utiliser la commande cat pour afficher le contenu du fichier /etc/passwd.

Ouvrez votre terminal s'il n'est pas déjà ouvert. N'oubliez pas que vous pouvez trouver l'icône de Xfce Terminal sur le côté gauche de votre bureau.

Maintenant, tapez la commande suivante et appuyez sur Entrée :

cat /etc/passwd

Cette commande affichera tout le contenu du fichier /etc/passwd dans votre terminal. Vous verrez de nombreuses lignes, chacune correspondant à un compte utilisateur sur le système.

Recherchez la ligne qui commence par labex:. Il s'agit de l'entrée pour votre utilisateur actuel. La ligne ressemblera à ceci (certaines parties peuvent varier) :

labex:x:5000:5000:LabEx user,,,:/home/labex:/usr/bin/zsh

Les champs sont les suivants :

  1. Nom d'utilisateur : labex
  2. Emplacement du mot de passe : x (le hachage réel du mot de passe est stocké ailleurs pour des raisons de sécurité)
  3. Identifiant utilisateur (UID) : 5000
  4. Identifiant de groupe (GID) : 5000
  5. Informations utilisateur (GECOS) : LabEx user,,,
  6. Répertoire personnel : /home/labex
  7. Shell par défaut : /usr/bin/zsh

Dans ce cas, le shell par défaut de l'utilisateur labex est /usr/bin/zsh. Cela confirme que le terminal que vous utilisez actuellement est bien zsh.

Comprendre le fichier /etc/passwd est fondamental pour l'administration système Linux. Il offre un moyen rapide d'obtenir des informations de base sur les utilisateurs, y compris leur shell par défaut et leur répertoire personnel.

Cliquez sur Continuer pour passer à l'étape suivante.

Lister les shells disponibles avec chsh -l

Dans l'étape précédente, vous avez vu que votre shell par défaut est /usr/bin/zsh. Mais quels autres shells sont disponibles sur ce système ?

Les systèmes Linux ont souvent plusieurs shells installés. Vous pouvez lister les shells disponibles en utilisant la commande chsh avec l'option -l.

La commande chsh est généralement utilisée pour changer le shell de connexion d'un utilisateur, mais l'option -l vous permet de lister les shells répertoriés dans le fichier /etc/shells. Ce fichier contient une liste des shells de connexion valides sur le système.

Dans votre terminal, tapez la commande suivante et appuyez sur Entrée :

chsh -l

Cette commande affichera une liste de chemins, chacun représentant un shell disponible sur le système. La sortie ressemblera à ceci :

/bin/sh
/bin/bash
/usr/bin/rc
/usr/bin/rbash
/usr/bin/nologin
/bin/false
/usr/bin/zsh
/usr/bin/ksh
/usr/bin/dash

Vous pouvez voir /usr/bin/zsh dans cette liste, ce qui confirme qu'il s'agit d'un shell valide sur ce système. Vous pourriez également voir d'autres shells courants comme /bin/bash (Bourne Again SHell) et /bin/sh (Bourne SHell).

Comprendre quels shells sont disponibles est utile si vous avez besoin de changer votre shell par défaut ou si vous rencontrez des scripts écrits pour un shell spécifique.

Cliquez sur Continuer pour passer à l'étape suivante.

Vérifier le shell avec getent passwd

Dans les étapes précédentes, vous avez appris à visualiser directement le fichier /etc/passwd et à lister les shells disponibles. Maintenant, utilisons une autre commande, getent, pour récupérer des informations sur l'utilisateur, y compris le shell.

La commande getent est un utilitaire qui récupère des entrées à partir des bases de données Name Service Switch (NSS), qui peuvent inclure /etc/passwd, /etc/group et d'autres. C'est un moyen plus standardisé de récupérer des informations sur l'utilisateur par rapport à la lecture directe de /etc/passwd, car elle peut également interroger des bases de données d'utilisateurs basées sur le réseau.

Pour obtenir l'entrée de l'utilisateur labex à partir de la base de données passwd, tapez la commande suivante dans votre terminal et appuyez sur Entrée :

getent passwd labex

Cette commande demande spécifiquement l'entrée de l'utilisateur labex à partir de la base de données passwd. La sortie sera similaire à la ligne que vous avez vue lorsque vous avez utilisé cat /etc/passwd :

labex:x:5000:5000:LabEx user,,,:/home/labex:/usr/bin/zsh

Encore une fois, le dernier champ /usr/bin/zsh confirme le shell par défaut de l'utilisateur labex.

L'utilisation de getent est souvent préférée dans les scripts ou pour interroger des systèmes qui pourraient utiliser des systèmes d'authentification centralisés (comme LDAP) au lieu de simplement des fichiers locaux. Pour des vérifications simples sur un système local, cat /etc/passwd et getent passwd <username> fonctionnent tous les deux.

Vous avez maintenant utilisé avec succès trois méthodes différentes pour comprendre les shells des utilisateurs sous Linux : visualisation directe de /etc/passwd, listing des shells disponibles avec chsh -l et interrogation des informations sur l'utilisateur avec getent.

Cliquez sur Continuer pour terminer ce laboratoire.

Résumé

Dans ce laboratoire, vous avez appris à vérifier le shell par défaut d'un utilisateur sous Linux. Vous avez utilisé la commande cat /etc/passwd pour afficher les informations sur les utilisateurs, en vous concentrant particulièrement sur le dernier champ de chaque ligne, qui indique le shell par défaut. Cette méthode offre un moyen direct d'identifier le shell configuré pour tout utilisateur du système en examinant la structure du fichier /etc/passwd.