Ne manquez pas nos offres limitées !

Comment lister les utilisateurs Linux : commandes, outils et astuces d’automatisation

Comment lister les utilisateurs Linux : commandes, outils et astuces d’automatisation

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 :

  1. cat. Idéal pour un aperçu rapide et brut de tous les utilisateurs locaux.
  2. getent. Idéal pour lister les utilisateurs à partir de bases de données locales et réseau telles que LDAP.
  3. compgen. Utile pour générer une liste propre de noms d’utilisateurs pour la création de scripts et l’autocomplétion.
  4. awk et cut. Idéales pour filtrer le résultat afin de n’afficher que les noms d’utilisateur.
  5. who et users. Permettent de vérifier quels utilisateurs sont actuellement connectés.

Conditions préalables 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.

Comment lister les utilisateurs avec la commande cat

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 :

  • nom_utilisateur. Le nom de connexion du compte.
  • x. Un espace réservé indiquant que le hachage du mot de passe est stocké dans /etc/shadow.
  • UID. L’identifiant numérique de l’utilisateur.
  • GID. L’identifiant numérique du groupe principal.
  • GECOS. Informations facultatives sur l’utilisateur, telles que son nom complet ou une description.
  • home_directory. Chemin absolu vers le répertoire personnel de l’utilisateur.
  • shell. Le programme qui s’exécute lorsque l’utilisateur se connecte.

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.

Comment lister les utilisateurs Linux avec la commande getent

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.

Comment utiliser compgen pour lister les utilisateurs

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.

Comment lister les utilisateurs avec awk et cut pour un affichage personnalisé

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éawkcut
Syntaxeawk -F: ‘{ print $1}’ /etc/passwdcut -d: -f1 /etc/passwd
DélimiteurUtilise -F: pour définir les deux-points comme séparateurUtilise -d: pour définir les deux-points comme séparateur
Logique des champsAffiche $1 (le premier champ)Sélectionne -f1 (le premier champ)
Idéal pourMise en forme complexe et traitement conditionnelExtraction 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.

Comment vérifier les utilisateurs actuellement connectés

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. Affiche une simple ligne contenant les noms d’utilisateur actuellement connectés.
users
  • who. Fournit des informations détaillées, notamment la ligne de terminal, l’heure de connexion et l’adresse IP d’origine.

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

Quelles sont les meilleures pratiques pour un listing efficace des utilisateurs ?

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.

Combiner les commandes avec des pipes

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

Utiliser une interface graphique pour la gestion des utilisateurs

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.

Gérer les informations utilisateur en toute sécurité

Répertorier régulièrement les utilisateurs est une habitude de sécurité essentielle. Lorsque vous examinez la liste, recherchez :

  • Comptes inconnus. Des utilisateurs que vous n’avez pas créés.
  • Comptes UID 0 inattendus. Seul root devrait avoir l’UID 0. Tout autre compte UID 0 dispose de tous les privilèges de superutilisateur.
  • Accès au shell. Vérifiez que les utilisateurs système (tels que www-data ou nobody) utilisent /usr/sbin/nologin (Debian/Ubuntu), /sbin/nologin (RHEL/CentOS) ou /bin/false pour empêcher la connexion interactive.

Comment automatiser le listing des utilisateurs avec des scripts Bash

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.

Author
L'auteur

Chaimaa Chakir

Chaimaa est une spécialiste du référencement et du marketing de contenu chez Hostinger. Elle est passionnée par le marketing digital et la technologie. Elle espère aider les gens à résoudre leurs problèmes et à réussir en ligne. Chaimaa est une cinéphile qui adore les chats et l'analyse des films.

Ce que disent nos clients

Laissez une réponse

Veuillez remplir les champs obligatoires.Veuillez cocher la case de la confidentialité.Veuillez remplir les champs obligatoires et accepter la case de confidentialité.

Thank you! Your comment has been successfully submitted. It will be approved within the next 24 hours.