Comment lister tous les utilisateurs sous Linux
Les utilisateurs sont le composant le plus important d'un système Linux. Linux fournit aux administrateurs des commandes intégrées qui leur permettent de gérer efficacement les utilisateurs. Il y en a un pour créer des utilisateurs, supprimer des utilisateurs et modifier les autorisations des utilisateurs. Mais qu'en est-il de la liste de tous les utilisateurs actuellement présents sur un système?
Dans cet article, nous allons discuter de la façon dont vous pouvez obtenir une liste de tous les utilisateurs sous Linux, ainsi qu'un bref guide pour vérifier si un utilisateur existe sur un système ou non.
Comment afficher une liste de tous les utilisateurs sous Linux
Lorsque vous créez un nouvel utilisateur, le nom d'utilisateur, le mot de passe et d'autres détails sont stockés dans des fichiers spécifiques sur une machine Linux. Heureusement, Linux vous permet de lire et de modifier ces fichiers sans aucune restriction. En utilisant ces fichiers, vous pouvez connaître les informations relatives aux utilisateurs, telles que leurs noms d'utilisateur, le nombre d'utilisateurs, etc.
Utilisation du fichier Passwd
Le fichier passwd est un fichier texte qui contient les enregistrements de mot de passe de tous les utilisateurs actuellement présents dans votre système. Ce fichier se trouve dans le répertoire / etc de votre stockage local et contient les informations suivantes:
- Noms d'utilisateur
- Mots de passe cryptés
- Identifiant d'utilisateur
- ID de groupe de l'utilisateur
- Nom complet
- Le répertoire / home de l'utilisateur
- Shell de connexion de l'utilisateur
Tapez cat / etc / passwd ou moins / etc / passwd dans votre terminal pour lire le fichier texte. L'ouverture du fichier / etc / passwd générera une sortie qui ressemble à ceci.
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
La sortie susmentionnée contient sept champs qui contiennent des informations relatives aux utilisateurs. Ces champs sont séparés par un délimiteur — dans ce cas, deux points. Chaque ligne de la sortie désigne un seul utilisateur.
Pour obtenir une liste de tous les noms d'utilisateur à l'aide du fichier passwd :
awk -F: '{ print $1}' /etc/passwd
Awk est un utilitaire de ligne de commande qui permet aux utilisateurs de Linux de créer de simples programmes «en une ligne» qui effectuent des opérations rapides à partir du terminal. Dans le code mentionné ci-dessus:
- -F signifie séparateur de champ. Puisque le caractère deux-points est le délimiteur dans le fichier / etc / passwd , nous passons les deux points comme séparateur dans la commande awk.
- {print $ 1} demande au système d'imprimer le premier champ. Dans ce cas, le premier champ est le nom d'utilisateur des utilisateurs.
- Le fichier / etc / passwd contient les données relatives aux utilisateurs.
L'exécution de la commande ci-dessus affichera les noms d'utilisateur de tous les utilisateurs. Puisque le fichier / etc / passwd contient des utilisateurs système, la sortie inclura également leurs noms d'utilisateur.
root
daemon
bin
sys
sync
games
man
Vous pouvez modifier légèrement la commande awk afin d'imprimer les noms complets des utilisateurs. Tapez la commande suivante pour afficher les noms complets des utilisateurs sous Linux:
awk -F: '{ print $5}' /etc/passwd
Étant donné que les utilisateurs du système ont le même nom d'utilisateur et le même nom complet, vous ne remarquerez aucune différence dans la sortie. Seuls les utilisateurs que vous avez ajoutés à votre système auront des noms d'utilisateur et des noms complets différents.
Vous pouvez également utiliser cut au lieu de la commande awk. La syntaxe de cut est assez similaire à la commande awk.
Pour imprimer les noms d'utilisateur sous Linux en utilisant cut:
cut -d: f1 /etc/passwd
Ici, -d est le délimiteur, f1 désigne le premier champ (nom d'utilisateur) et / etc / passwd est le fichier texte contenant les données.
Pour imprimer les prénoms des utilisateurs à l'aide de cut:
cut -d: f5 /etc/passwd
De même, vous pouvez générer d'autres champs à partir du fichier / etc / passwd en remplaçant simplement f5 par f1-f7 .
Lister les utilisateurs avec la commande getent
La commande getent imprime le contenu des fichiers texte importants qui agissent comme une base de données pour le système. Les fichiers tels que / etc / passwd et /etc/nsswitch.conf contiennent respectivement des informations relatives aux utilisateurs et aux réseaux et peuvent être lus à l'aide de la commande getent.
Pour imprimer le contenu du fichier / etc / passwd à l'aide de getent:
getent passwd
La sortie contiendra sept champs différents séparés par le caractère deux-points. Chaque champ est réservé à des informations particulières, notamment les noms d'utilisateur et les chemins du répertoire personnel des utilisateurs.
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
Vous pouvez enchaîner la commande getent avec awk ou cut pour obtenir uniquement la liste des noms d'utilisateur.
getent passwd | awk -F: '{print $1}'
getent passwd | cut -d: -f1
Pour imprimer les noms complets des utilisateurs:
getent passwd | awk -F: '{print $5}'
getent passwd | cut -d: -f5
Vérifier si un utilisateur existe ou non
Dans certaines situations, vous souhaiterez peut-être vérifier si un utilisateur existe sur votre système Linux ou non. La commande grep est pratique lorsque vous souhaitez récupérer un modèle de texte spécifique à partir d'un fichier.
Vous pouvez utiliser l'une des commandes suivantes pour vérifier l'existence d'un utilisateur.
compgen -u | grep username
getent passwd | grep username
Si l'utilisateur existe, les informations de connexion qui lui sont associées seront affichées à l'écran. En revanche, si l'utilisateur n'est pas présent dans le système, une erreur se produira.
Pour vérifier si un utilisateur existe sur un système sans utiliser grep:
getent passwd username
Vous pouvez également diriger la commande getent ou compgen avec grep et echo pour afficher une sortie personnalisée.
getent passwd | grep -q username && echo "User found" || echo "User not found"
compgen -u | grep -q username && echo "User found" || echo "User not found"
La commande ci-dessus affichera «Utilisateur trouvé» si l'utilisateur existe sur le système et «Utilisateur non trouvé» si ce n'est pas le cas.
Compter le nombre d'utilisateurs sur un système
Pour compter le nombre d'utilisateurs qui existent sur un système Linux:
compgen -u | wc -l
getent passwd | wc -l
Dans les commandes ci-dessus, compgen et getent sont responsables de l'affichage de la liste contenant tous les utilisateurs et d'autres informations qui leur sont liées. Le wc représente le nombre de mots et est utilisé pour compter le nombre de mots ou de lignes dans la sortie. L'indicateur -l désigne les lignes .
Vérification des comptes d'utilisateurs sous Linux
Chaque administrateur Linux doit savoir comment gérer et administrer d'autres utilisateurs sur un système. Maîtriser les commandes Linux qui vous permettent de créer, supprimer, contrôler et répertorier d'autres utilisateurs est un excellent moyen de démarrer avec la gestion des utilisateurs.
Se familiariser avec l'environnement Linux devrait être votre premier objectif si vous n'êtes qu'un débutant. Il y a certaines choses que vous devez faire juste après avoir installé votre toute première distribution Linux. L'apprentissage de certaines commandes de base en fait partie et est essentiel pour effectuer des tâches informatiques simples sous Linux.