Mar 26, 2026
Chaimaa C.
6minutes de lecture
Pour lister les utilisateurs Linux, la méthode la plus courante consiste à lire le fichier /etc/passwd, qui stocke les informations essentielles sur chaque compte du système.
Lister les utilisateurs est une tâche d’administration système de base. Elle vous permet de vérifier qui est connecté, de filtrer les comptes par ID et d’automatiser les audits afin de maintenir une sécurité système élevée.
Voici un résumé des commandes que vous pouvez utiliser pour lister les utilisateurs Linux :
Avant de lister les utilisateurs sous Linux, assurez-vous de disposer d’une connexion au terminal. Cette condition s’applique que vous travailliez sur une machine locale ou que vous gériez un système distant tel qu’un serveur privé virtuel (VPS).
Si vous gérez un VPS, connectez-vous via un client SSH en utilisant la syntaxe suivante :
ssh nom_utilisateur@votre_adresse_IP
Tout utilisateur peut lire le fichier /etc/passwd et exécuter des commandes de liste de base. Cependant, les actions administratives, telles que la création, la modification ou la suppression d’utilisateurs, nécessitent un accès root ou sudo.
La manière la plus simple de lister tous les utilisateurs consiste à afficher le contenu du fichier /etc/passwd à l’aide de la commande cat. Ce fichier contient les attributs de chaque utilisateur du système, y compris les comptes système et les utilisateurs réguliers.
Exécutez la commande suivante pour afficher le fichier :
cat /etc/passwd
La sortie affiche une ligne par compte utilisateur.

Chaque ligne suit la structure suivante :
nom_utilisateur:x:UID:GID:GECOS:home_directory:shell
Voici ce que représente chaque champ :
L’utilisation de cat sur des systèmes comptant des centaines d’utilisateurs peut générer une sortie encombrée. Dans ce cas, vous pouvez rediriger les résultats vers less pour faciliter la lecture ou utiliser grep pour rechercher des comptes spécifiques.
cat /etc/passwd | less
cat /etc/passwd | grep nom_utilisateur
Étant donné que /etc/passwd est accessible en lecture à tous, gardez à l’esprit qu’il expose les identifiants des utilisateurs et les chemins d’accès aux répertoires personnels. Les mots de passe restent toutefois cryptés en toute sécurité dans /etc/shadow, que seul root peut lire.
La commande getent récupère les entrées à partir des bibliothèques NSS (Name Service Switch) du système, ce qui la rend idéale pour les systèmes utilisant des répertoires d’utilisateurs en réseau tels que LDAP ou Active Directory.
Contrairement à cat, qui ne lit que le fichier local /etc/passwd, getent interroge toutes les bases de données d’utilisateurs configurées telles que définies dans /etc/nsswitch.conf.
Pour lister tous les utilisateurs provenant à la fois de sources locales et réseau, exécutez :
getent passwd
Si vous devez vérifier les détails d’un utilisateur spécifique, ajoutez le nom d’utilisateur :
getent passwd nom_utilisateur

Le format de sortie correspond à celui de /etc/passwd, mais getent affiche les données utilisateur de tous les services connectés, et pas seulement celles des comptes locaux.
La commande compgen est une commande Bash intégrée qui génère des suggestions de complétion. Lorsqu’elle est utilisée avec l’option -u, elle affiche tous les noms d’utilisateurs connus du système, y compris les comptes normaux et les comptes système.
Pour lister tous les noms d’utilisateurs, exécutez :
compgen -u
compgen interroge les mêmes bases de données NSS que getent, mais n’affiche que les noms d’utilisateurs sans aucun champ supplémentaire. Cela la rend particulièrement utile pour la création de scripts shell ou la configuration de fonctionnalités d’autocomplétion dans des outils personnalisés.
Par défaut, compgen affiche une longue liste verticale. Pour rendre la sortie plus lisible, redirigez-la vers la commande column :
compgen -u | column

Important ! Comme compgen est une commande Bash intégrée, elle n’est pas disponible dans d’autres shells, tels que sh ou zsh.
Pour extraire uniquement les noms d’utilisateur ou d’autres champs spécifiques sans les ID et les chemins d’accès encombrants, utilisez des utilitaires de traitement de texte tels que awk ou cut.
Ces outils agissent comme des filtres. Ils extraient les données brutes de /etc/passwd et n’affichent que les champs que vous demandez.
Voici une comparaison de l’utilisation de ces deux commandes pour lister les utilisateurs :
| Fonctionnalité | awk | cut |
| Syntaxe | awk -F: ‘{ print $1}’ /etc/passwd | cut -d: -f1 /etc/passwd |
| Délimiteur | Utilise -F: pour définir les deux-points comme séparateur | Utilise -d: pour définir les deux-points comme séparateur |
| Logique des champs | Affiche $1 (le premier champ) | Sélectionne -f1 (le premier champ) |
| Idéal pour | Mise en forme complexe et traitement conditionnel | Extraction de champs simple et légère |
Utilisez awk si vous prévoyez d’effectuer un traitement supplémentaire, tel que le filtrage des utilisateurs par plage d’UID.

Utilisez cut si vous avez besoin d’une solution rapide pour extraire uniquement les noms d’utilisateur.

Pour voir qui est actuellement actif dans une session, plutôt que de lister tous les comptes enregistrés, utilisez les commandes who ou users.
Répertorier tous les utilisateurs avec des outils comme cat affiche tous ceux qui peuvent se connecter, tandis que who et users indiquent qui est connecté à ce moment-là. Cette distinction est importante lorsque vous surveillez l’activité sur des serveurs multi-utilisateurs.
users


Pour encore plus de détails, y compris le temps d’inactivité et les processus en cours d’exécution, utilisez la commande w :
w

Une liste d’utilisateurs efficace implique de filtrer la sortie pour en faciliter la lecture, de sécuriser les données des utilisateurs et d’automatiser les vérifications régulières afin de maintenir l’intégrité du système.
Pour trouver rapidement des informations spécifiques, combinez les commandes de liste avec grep. Par exemple, pour vérifier si un utilisateur spécifique existe sans faire défiler toute la liste :
getent passwd | grep nom_utilisateur
Vous pouvez également trier la liste par ordre alphabétique pour faciliter l’audit manuel :
cut -d: -f1 /etc/passwd | sort

Si vous préférez une interface graphique à la ligne de commande, utilisez un panneau de configuration tel que Webmin ou le gestionnaire d’utilisateurs natif de votre environnement de bureau.
Ces outils proposent souvent un tableau d’utilisateurs consultable, ce qui permet de visualiser plus facilement les groupes, les identifiants et les autorisations de shell d’un seul coup d’œil, sans avoir à mémoriser la syntaxe des commandes.
Répertorier régulièrement les utilisateurs est une habitude de sécurité essentielle. Lorsque vous examinez la liste, recherchez :
Pour automatiser le listing des utilisateurs, créez des scripts Bash qui exécutent des commandes telles que cut ou awk et planifiez-les avec cron.
Si la liste des utilisateurs à l’aide de commandes telles que cat, getent, awk, cut, who et compgen fonctionne bien pour des vérifications rapides, elle s’avère inefficace sur les grands systèmes Linux car elle nécessite des étapes manuelles répétitives.
La création de scripts Bash vous permet d’automatiser la récupération des utilisateurs, de filtrer les comptes selon des critères spécifiques (tels que les utilisateurs disposant d’un accès sudo) et d’enregistrer les rapports pour un examen ultérieur. Cette approche garantit un audit cohérent et sécurisé tout au long de la gestion à long terme du serveur.
Vous pouvez ensuite planifier ces scripts à l’aide de tâches cron pour détecter automatiquement les modifications suspectes des comptes. Un script simple permet d’exporter tous les utilisateurs vers un fichier texte horodaté, ce qui vous permet de comparer les résultats au fil du temps.
Voici un exemple de script qui enregistre une liste d’utilisateurs générée avec cut, avec une gestion basique des erreurs :
#!/bin/bash # Exporter la liste des utilisateurs vers un fichier horodaté OUTPUT_DIR="$HOME/user_audits" OUTPUT_FILE="$OUTPUT_DIR/user_audit_$(date +%F).txt" # Créer le répertoire de sortie s'il n'existe pas mkdir -p "$OUTPUT_DIR" # Générer la liste des utilisateurs cut -d: -f1 /etc/passwd | sort > "$OUTPUT_FILE" echo "User audit saved to $OUTPUT_FILE"
Rendez le script exécutable et programmez-le avec cron pour qu’il s’exécute quotidiennement ou hebdomadairement :
chmod +x ~/user_audit.sh crontab -e # Add: 0 2 * * * ~/user_audit.sh
Si vous n’êtes pas à l’aise avec l’écriture de scripts à partir de zéro, vous pouvez utiliser Kodee, l’assistant IA d’Hostinger. Il est disponible sur tous les plans VPS et génère instantanément des scripts d’automatisation. Il suffit de saisir une commande décrivant ce que vous souhaitez que le script fasse.
Pour un apprentissage plus pratique, consultez notre guide sur les scripts bash afin de découvrir comment structurer des tâches d’automatisation avancées.

Tout le contenu des tutoriels de ce site est soumis aux normes éditoriales et aux valeurs rigoureuses de Hostinger.