Administrer un système Linux implique souvent de connaître les utilisateurs présents sur la machine, qu’il s’agisse de vérifier des comptes suspects, de gérer les accès ou simplement de comprendre la composition du système. Heureusement, Linux propose plusieurs méthodes efficaces pour afficher ces informations, des plus simples aux plus sophistiquées, directement depuis le terminal.

Comprendre l’architecture des utilisateurs sur Linux 🔐
Tout système Linux stocke les informations concernant les utilisateurs dans des fichiers de configuration spécifiques, organisés de manière précise pour assurer la sécurité et la gestion cohérente des accès. Le plus important d’entre eux est le fichier /etc/passwd, véritable registre central contenant chaque compte utilisateur présent sur la machine.
Ce fichier représente bien plus qu’une simple liste. Chaque ligne contient des données structurées séparées par des deux-points : le nom d’utilisateur, le mot de passe chiffré (remplacé par un « x » quand le mot de passe réel figure dans /etc/shadow pour des raisons de sécurité), l’UID (identifiant unique), le GID (identifiant du groupe principal), le champ GECOS (informations supplémentaires comme le nom complet), le répertoire personnel et le shell par défaut à la connexion.
La distinction entre les utilisateurs est fondamentale pour comprendre la hiérarchie du système. Les comptes système comme root (UID 0), daemon, bin, ou www-data pour les services Web, coexistent avec les comptes ordinaires créés manuellement. Les utilisateurs réguliers possèdent généralement un UID égal ou supérieur à 1000, tandis que les comptes système occupent la plage 0-999. Cette séparation permet une gestion granulaire des permissions et des ressources.
La structure du fichier /etc/passwd expliquée
Chaque entrée du fichier /etc/passwd suit un format identique et rigoureux. Prenons un exemple concret : une ligne telle que « flo:x:1000:1000:Florian:/home/flo:/bin/bash » révèle que l’utilisateur « flo » possède un UID de 1000, appartient au groupe 1000, dispose d’un répertoire personnel à /home/flo et utilise bash comme interpréteur de commandes.
Comprendre cette structure s’avère essentiel pour interpréter les résultats des commandes d’affichage et pour identifier rapidement la nature d’un compte. Les administrateurs système s’en servent quotidiennement pour diagnostiquer les problèmes d’accès, vérifier les configurations de sécurité et auditer les comptes potentiellement dangereux.
Au-delà de /etc/passwd, le fichier /etc/shadow complète le tableau en stockant les mots de passe réels sous forme hachée, accessible uniquement à root. Cette séparation constitue une mesure de sécurité fondamentale : /etc/passwd peut être lu par tous les utilisateurs, tandis que /etc/shadow reste restreint, empêchant ainsi les attaques par force brute ciblant les hashs de mots de passe.
Le fichier /etc/passwd est consultable par tous les utilisateurs, tandis que /etc/shadow est réservé à root pour des raisons de sécurité. Cette séparation protège les mots de passe hachés contre les attaques par force brute.
Les commandes essentielles pour afficher les utilisateurs Linux 💻
Le terminal Linux offre un arsenal de commandes dédiées pour consulter la liste des utilisateurs, chacune présentant des avantages et des cas d’usage spécifiques. La maîtrise de ces outils constitue une compétence fondamentale pour tout administrateur système ou développeur travaillant avec Linux.
Consulter le fichier /etc/passwd directement
La méthode la plus basique consiste à lire le fichier /etc/passwd en utilisant cat ou less. La commande cat /etc/passwd affiche l’intégralité du contenu, tandis que less /etc/passwd permet une consultation page par page, pratique pour les systèmes hébergeant de nombreux utilisateurs.
Cependant, cette approche retourne l’ensemble des informations structurées, ce qui peut sembler confus à première lecture. Pour les administrateurs cherchant une sortie épurée contenant uniquement les noms d’utilisateurs, des commandes de filtrage s’avèrent plus appropriées.
Filtrer pour obtenir uniquement les noms d’utilisateurs
Deux approches dominantes permettent d’extraire uniquement la première colonne du fichier /etc/passwd : cut et awk. La commande cut -d: -f1 /etc/passwd utilise le deux-points comme délimiteur et sélectionne le premier champ, tandis que awk -F: '{ print $1}' /etc/passwd offre une alternative plus puissante, particulièrement utile pour des traitements plus complexes.
Ces deux méthodes génèrent une sortie identique : une liste propre des utilisateurs, système et réguliers confondus. Le choix entre l’une ou l’autre dépend principalement des préférences de l’utilisateur et de la complexité des opérations subséquentes qu’il souhaite effectuer.
Pour rechercher l’existence d’un utilisateur spécifique, on peut combiner ces commandes avec grep : cut -d: -f1 /etc/passwd | grep "flo" retourne le nom si l’utilisateur existe, ou une ligne vide dans le cas contraire. Cette approche simplifie considérablement les vérifications lors de scripts de déploiement ou de gestion d’accès.
Utiliser getent pour afficher les utilisateurs par plage d’UID
La commande getent offre une flexibilité supérieure en interrogeant les bases de données système, y compris les utilisateurs distants gérés via LDAP ou NIS. Contrairement à cut qui consulte directement /etc/passwd, getent accède à l’ensemble des sources d’authentification configurées, rendant l’outil particulièrement pertinent dans les environnements d’entreprise complexes.
Pour afficher uniquement les utilisateurs réguliers (UID compris entre 1000 et 60000), la syntaxe getent passwd {1000..60000} se montre extrêmement efficace. Cette plage correspond généralement aux comptes créés manuellement, excluant les comptes système et le compte root, permettant une vue nettoyée et ciblée de la population utilisateur.
Cette approche devient précieuse lors d’audits de sécurité : elle aide à identifier rapidement les utilisateurs actifs présents sur le système, contrairement aux comptes système dont la présence est attendue et moins significative pour la gestion administrative.
Pour filtrer les utilisateurs réguliers, utilisez la commande getent passwd {1000..60000}. Cela vous donne une vue nette des comptes d’utilisateurs sans inclure ceux du système.

Identifier les utilisateurs actuellement connectés au système 👥
Au-delà de la liste statique des comptes locaux, il devient souvent nécessaire de savoir qui est effectivement connecté au système à un moment donné. Cette distinction entre « comptes existants » et « utilisateurs actifs » revêt une importance capitale pour les administrateurs supervisant des serveurs partagés ou des stations de travail en réseau.
La commande who pour lister les sessions actives
La commande who affiche tous les utilisateurs actuellement connectés, accompagnés du terminal utilisé, de l’heure de connexion et de l’adresse IP (pour les connexions à distance). Un simple who génère une sortie claire et structurée, chaque ligne représentant une session utilisateur active.
Cette commande s’avère particulièrement utile pour identifier les utilisateurs distants connectés via SSH, les utilisateurs locaux travaillant sur des terminaux physiques, ou ceux ayant ouvert plusieurs sessions simultanées. Pour un administrateur gérant un serveur accueillant plusieurs utilisateurs, c’est souvent le premier outil consulté lors d’une investigation.
Une variante plus complète, who -a, affiche des informations supplémentaires incluant les processus init, les arrêts système imminents et les changements de niveau d’exécution. Pour une surveillance simplifiée, who -q retourne uniquement les noms d’utilisateurs et le nombre total de sessions.
La commande w pour une vue détaillée des activités
Plus puissante que who, la commande w complète les informations de connexion en affichant ce que chaque utilisateur est en train de faire. La sortie inclut le terminal, l’hôte de connexion, le temps depuis la dernière activité au clavier, et surtout, la commande actuellement exécutée.
Pour un administrateur soucieux de sécurité ou de performance, c’est une fenêtre transparente sur les activités du système. Si le serveur connaît une charge CPU élevée, w permet rapidement d’identifier l’utilisateur et le processus responsable. De la même façon, cet outil facilite la détection d’utilisateurs inactifs depuis longtemps ou de sessions fantômes consommant des ressources.
La syntaxe w -s offre une sortie compacte omettant le temps JCPU et PCPU, idéale pour les scripts ou les vérifications rapides. Pour suivre un utilisateur spécifique, w flo restreint l’affichage à ses sessions uniquement.
Les outils complémentaires : id et lastlog
La commande id affiche les identifiants et les groupes de l’utilisateur actuellement connecté, ou d’un utilisateur spécifié en argument. id flo retourne uid, gid, et tous les groupes auxquels flo appartient, informations cruciales pour comprendre les permissions accordées à cet utilisateur.
Pour un historique des connexions, lastlog consulte le fichier /var/log/lastlog et affiche la dernière connexion de chaque utilisateur. Cette commande aide à identifier les comptes non utilisés depuis longtemps, un indicateur potentiel de sécurité : un compte inactif pourrait être supprimé ou désactivé pour limiter la surface d’attaque.
Ces commandes complémentaires transforment la simpe liste d’utilisateurs en un système complet de diagnostic et de surveillance. Combinées intelligemment dans des scripts, elles forment la base d’une administration système rigoureuse et sécurisée.
Pour savoir ce que font les utilisateurs connectés, la commande w fournit des informations détaillées sur leur activité en cours et les performances du système.
Syntaxe comparée des principales méthodes d’affichage 📊
Chaque commande possède ses forces et ses limites. Le tableau suivant synthétise les approches principales avec leurs caractéristiques distinctives pour faciliter le choix selon vos besoins spécifiques.
| 🛠️ Commande | Affiche quoi | Source | Cas d’usage idéal |
|---|---|---|---|
| cat /etc/passwd | Tous les utilisateurs avec tous les détails | /etc/passwd | Vue complète du système |
| cut -d: -f1 /etc/passwd | Noms uniquement (tous utilisateurs) | /etc/passwd | Script simple, audit rapide |
| awk -F: ‘{ print $1}’ /etc/passwd | Noms uniquement (tous utilisateurs) | /etc/passwd | Traitement avancé, filtrage complexe |
| getent passwd {1000..60000} | Utilisateurs réguliers seulement | Base données système | Audit sécurité, LDAP/NIS inclus |
| who | Utilisateurs actuellement connectés | /var/run/utmp | Monitoring des sessions actives |
| w | Utilisateurs actifs + ce qu’ils font | /var/run/utmp + processus | ⚡ Diagnostic de performance |
| id | UID, GID et groupes utilisateur | Contexte courant | Vérifier les permissions |
| lastlog | Dernière connexion par utilisateur | /var/log/lastlog | Détection comptes inactifs |
Ce tableau illustre comment chaque outil occupe une niche spécifique. L’administrateur chevronné utilise rarement une seule commande en isolation, mais plutôt les combine pour obtenir une vue 360° du système.
Compter les utilisateurs présents sur le système
Une opération courante consiste à dénombrer simplement les utilisateurs présents. La commande wc (word count) comptabilise les lignes lorsqu’elle est associée au flag -l. Ainsi, cut -d: -f1 /etc/passwd | wc -l retourne le nombre total d’entrées dans le fichier passwd.
Sur une machine typique, ce nombre s’élève facilement à 30-40 entrées, incluant les comptes système. Pour compter uniquement les utilisateurs réguliers, on affine la requête : getent passwd {1000..60000} | wc -l restreint le décompte aux UID supérieurs à 1000, donnant une vision plus réaliste de la population d’utilisateurs créés manuellement.
Ces opérations de comptage s’intègrent naturellement dans des scripts de monitoring : alerter automatiquement si le nombre d’utilisateurs augmente anormalement peut indiquer une tentative d’intrusion ou une mauvaise configuration.
La commande who -a offre une vision plus complète des sessions actives, incluant les arrêts système imminents et les processus init.
Approches avancées pour filtrer et analyser les utilisateurs Linux 🔍
Au-delà des commandes standard, les administrateurs système combinant plusieurs outils exploitent toute la puissance du terminal pour des tâches de diagnostic et d’audit plus sophistiquées. Ces approches dépassent la simple énumération et permettent une analyse comportementale profonde.
Filtrer les utilisateurs par UID et groupes
Distinguer les utilisateurs système des utilisateurs réguliers représente une nécessité fréquente. Puisque les utilisateurs système occupent généralement les UID 0-999 et les utilisateurs réguliers 1000+, un filtre simple par UID s’avère très efficace. La commande awk -F: '$3 >= 1000 { print $1 }' /etc/passwd isole rapidement les utilisateurs d’intérêt, excluant le bruit des comptes système.
Pour afficher les utilisateurs appartenant à un groupe spécifique, on consulte /etc/group : grep "^sudo:" /etc/group révèle tous les membres du groupe sudo. Cette opération devient essentielle dans les audits de sécurité, notamment pour vérifier que seuls les administrateurs autorisés bénéficient de privilèges escaladés.
Ces filtres constituent la base de scripts de provisioning ou de déprovisionning automatisé. Lors de l’intégration d’un nouvel utilisateur, le script vérifie automatiquement qu’il n’existe pas déjà, crée le compte avec les bons UID/GID, et l’ajoute aux groupes appropriés.
Combiner grep, awk et sed pour des requêtes complexes
La puissance réelle du terminal réside dans la composition de commandes simples en pipelines complexes. Pour afficher les utilisateurs possédant un shell bash spécifique : grep "/bin/bash$" /etc/passwd | cut -d: -f1 retourne uniquement les utilisateurs configurés avec bash, excluant ceux ayant /bin/nologin ou /usr/sbin/noshell.
Ou supposons qu’on désire identifier les utilisateurs dont le répertoire personnel n’existe pas (potentiellement des comptes orphelins) : awk -F: '{ if (! system("test -d " $6)) print $1 }' /etc/passwd teste l’existence de chaque répertoire et affiche uniquement les entrées problématiques.
Ces approches avancées transforment le terminal en véritable laboratoire de diagnostic système. Pour un développeur DevOps ou un administrateur infrastructure, maîtriser ces combinaisons devient rapidement indispensable.
Audit des utilisateurs inactifs et désactivés
La sécurité système implique régulièrement de nettoyer les comptes inutilisés. L’outil lastlog -t 90 affiche les utilisateurs inactifs depuis plus de 90 jours, combiné avec cut -d' ' -f1 pour extraire uniquement les noms. Un administrateur peut alors générer une liste de candidats au désactivation ou à la suppression.
Pour identifier les comptes verrouillés ou désactivés, on consulte /etc/shadow : awk -F: '($2 == "!") { print $1 }' /etc/shadow affiche les utilisateurs dont le mot de passe commence par « ! », indiquant un compte désactivé. Cette vérification rapide aide à maintenir un inventaire d’utilisateurs valides et actifs.
Dans les environnements d’entreprise gérés via LDAP ou Active Directory, ces vérifications s’automatisent généralement, mais sur les serveurs Linux classiques, ces commandes restent les meilleurs outils pour une gestion manuelle.
Intégrez les commandes de gestion d’utilisateurs dans des scripts automatisés pour un suivi régulier et proactive des comptes inactifs ou suspects.

Points clés à retenir pour maîtriser l’affichage des utilisateurs Linux 🎯
La gestion des utilisateurs sur Linux ne requiert pas de compétences extraordinaires, mais plutôt une compréhension claire des outils disponibles et de quand les utiliser. Pour celui qui maîtrise /etc/passwd, getent, who et w, le système n’aura bientôt plus de secrets. Ces commandes fondamentales forment un socle sur lequel s’appuient tous les administrateurs Linux pour superviser, auditer et sécuriser leurs infrastructures.
- 📌 Commencez par
cat /etc/passwdoucut -d: -f1 /etc/passwdpour une vue d’ensemble des utilisateurs locaux - 📌 Utilisez getent pour inclure les utilisateurs distants (LDAP, NIS) et filtrer par UID
- 📌 Consultez who et w pour connaître qui est actuellement connecté et ce qu’il fait
- 📌 Combinez grep, awk et cut pour filtrer les résultats selon vos besoins spécifiques
- 📌 Vérifiez régulièrement lastlog pour détecter les comptes inactifs ou potentiellement compromis
- 📌 Consultez id pour connaître les permissions et groupes d’un utilisateur donné
- 📌 Automatisez ces vérifications dans des scripts pour assurer une surveillance continue du système
La maîtrise de ces approches transforme un utilisateur lambda en administrateur confiant, capable de diagnostiquer rapidement les problèmes d’accès, de détecter les anomalies de sécurité et de maintenir un système Linux en bon état de fonctionnement. Que ce soit sur une machine personnelle, un serveur d’entreprise ou une infrastructure cloud, ces commandes restent les fondations incontournables de l’administration système moderne.






