23/11/2024

Commandes et SystèmeLinux

Comment lister les utilisateurs d’une machine Linux ?

I. Présentation

Dans ce tutoriel, nous allons voir comment obtenir une liste exhaustive des utilisateurs présents sur une machine Linux, que ce soit sur une distribution Debian, Ubuntu, Rocky Linux, etc... Puisque, malgré les différences entre certaines distributions, il y a tout de même de nombreux points communs. C'est une manipulation facile peut s'avérer utile dans différents cas : par exemple, si vous souhaitez analyser votre machine à la recherche d'un compte suspect ou vérifier la présence d'un compte.

II. Le fichier /etc/passwd

Sous Linux, les informations sur les comptes utilisateurs locaux sont stockées dans un fichier système, qui est le suivant :

/etc/passwd

Chaque ligne de ce fichier représente des informations d'un seul et unique utilisateur. Il y a des utilisateurs natifs, comme "root", "daemon" ou encore "bin" et les utilisateurs propres à la machine locale, notamment votre compte, ou encore le compte de certains services. Par exemple, si un serveur Apache est mis en place sur la machine, il y aura un compte pour ce service : généralement "www-data" mais le nom peut varier selon les distributions.

Pour être plus précis, chaque ligne va contenir le nom d'utilisateur, le mot de passe chiffré (quand c'est indiqué "x", c'est qu'il faut se référer au fichier /etc/shadow), l'UID de l'utilisateur, le nom complet, le chemin vers le home, et le shell par défaut à la connexion.

Maintenant, voyons comment lister les utilisateurs de la machine Linux.

III. Lister les utilisateurs sous Linux

En consultant le contenu du fichier "/etc/passwd", on peut obtenir la liste des utilisateurs, mais c'est en quelque sorte pollué par toutes les informations complémentaires. Ce qui donne, par exemple :

cat /etc/passwd
less /etc/passwd

En sortie :

Contenu du fichier passwd sous Linux

Pour obtenir uniquement la liste des utilisateurs en sélectionnant seulement le nom, pour avoir une sortie épurée, on peut s'appuyer sur des commandes comme "cut" et "awk" pour récupérer uniquement la première valeur.

Avec la commande cut, cela donne :

cut -d: -f1 /etc/passwd

Avec la commande awk, cela donne :

awk -F: '{ print $1}' /etc/passwd

Je vous donne les deux possibilités, comme ça vous choisissez celle que vous préférez selon vos habitudes.

Dans les deux cas, on obtient une sortie similaire :

Lister les utilisateurs Linux avec cut

Pour savoir si un utilisateur existe, en le recherchant par son nom, on peut ajouter un "grep" en complément pour affiner la sortie :

cut -d: -f1 /etc/passwd | grep "flo"

Dans le cas où l'utilisateur existe, le nom s'affiche sinon la commande retourne une sortie vide.

Comme je le disais précédemment, chaque utilisateur dispose d'un UID. C'est une information importante pour faire la différence entre les comptes utilisateurs standards et les autres comptes. Par exemple, mon utilisateur "flo" dispose de l'UID "1000" et si j'en crée un autre, il aura l'UID "1001".

Du coup, on peut utiliser la commande getent qui permet d'obtenir des informations à partir de différents fichiers, dont passwd, pour lister les utilisateurs qui ont un UID compris entre 1000 et 60000. Par exemple :

getent passwd {1000..60000}

Ce qui donne :

Commande Getend - Lister les utilisateurs

IV. Compter le nombre d'utilisateurs sous Linux

Bonus avant de vous laisser, comment compter le nombre d'utilisateurs locaux présents sur une machine Linux ? Et bien, tout simplement en utilisant la commande "wc" correspondante à "Word Count" et pas à autre chose...!

Voici un exemple :

cut -d: -f1 /etc/passwd | wc -l

Sur ma machine Linux de test, la valeur 37 est retournée ! Ce n'est pas surprenant même si j'utilise principalement un seul compte à mon nom, il y a tous les comptes associés au système et aux services.

V. Conclusion

Grâce à ce tutoriel, vous êtes capable de lister les utilisateurs de votre poste de travail ou serveur sous Linux à l'aide de diverses commandes ! N'oubliez pas que ces commandes sont valides sur les différentes distributions Linux.

author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.