Linux est un système d’exploitation multi-utilisateurs, il est donc facile de créer de nombreux comptes utilisateurs. Avec le temps, il est facile de perdre la trace des comptes nécessaires. Lister les comptes utilisateurs vous aide à les gérer.

Comptes d’utilisateurs

Les progrès technologiques entraînent souvent de nouveaux problèmes. Dès que les ordinateurs ont été capables de prendre en charge plusieurs utilisateurs, la nécessité de délimiter et d’encapsuler le travail de chaque personne par rapport à celui des autres est devenue évidente. C’est ainsi qu’est né le concept de compte d’utilisateur. Chaque utilisateur possède un identifiant et un mot de passe. Ce sont les informations d’identification qui lui permettent de se connecter à son compte. Leurs fichiers sont conservés dans une zone qui est privée à chaque utilisateur.

Dans un système très actif, il est facile de perdre de vue les comptes que vous avez créés et ceux qui ne sont plus nécessaires. Du point de vue de la sécurité, c’est une mauvaise pratique que de conserver sur votre ordinateur des comptes d’utilisateur dont vous n’avez plus besoin et qui sont configurés et accessibles. Vous devez supprimer ces utilisateurs.

Même si d’autres personnes n’utilisent pas votre ordinateur, vous avez peut-être créé certains comptes juste pour apprendre à le faire, ou pour apprendre et pratiquer les processus d’administration.

La première étape consiste à dresser la liste des comptes d’utilisateur qui sont configurés sur votre ordinateur. Cela vous permet de les passer en revue et de décider de ceux qui peuvent être supprimés. Il existe plusieurs méthodes pour lister les utilisateurs. Quelle que soit la distribution que vous utilisez, ces techniques devraient fonctionner pour vous sans avoir à installer d’applications ou d’utilitaires.

LES 9 MEILLEURES DISTRIBUTIONS LINUX POUR LES UTILISATEURS SOUCIEUX DE LEUR VIE PRIVÉE

Lister les utilisateurs avec la commande cat

Une liste des utilisateurs configurés est conservée, ainsi que des informations sur chaque utilisateur, dans le fichier « /etc/passwd ». Il s’agit d’un fichier texte que les utilisateurs ordinaires peuvent lister dans la fenêtre du terminal. Il n’est pas nécessaire d’utiliser sudo pour consulter le fichier « /etc/passwd ».

Nous pouvons utiliser la commande cat pour envoyer le contenu du fichier « /etc/passwd » dans la fenêtre du terminal. Cela listera l’intégralité du contenu du fichier. Cela signifie que vous verrez également les entrées des comptes d’utilisateurs qui appartiennent aux processus et au système, et non aux personnes.

cat /etc/passwd

Envoi du contenu du fichier /etc/passwd dans la fenêtre du terminal avec cat

Une ligne d’information dense est rapportée pour chaque compte utilisateur.

Le contenu du fichier /etc/passwd

Les informations relatives au compte utilisateur appelé « dave » contiennent les éléments suivants, séparés par des deux-points  » : ».

dave : Le nom du compte d'utilisateur. Il s'agit généralement du nom de la personne qui possède le compte.
x : A une époque, il s'agissait du mot de passe du compte. De nos jours, les mots de passe sont stockés dans le fichier "/etc/shadow". Le "x" signifie que le mot de passe se trouve dans ce fichier.
1000 : L'ID utilisateur pour ce compte. Tous les comptes d'utilisateurs ont un ID numérique unique. Les comptes d'utilisateurs réguliers commencent généralement à 1000, chaque nouveau compte prenant l'ID libre suivant, comme 1001, 1002, et ainsi de suite.
1000 : L'ID du groupe par défaut auquel l'utilisateur appartient. Dans des circonstances normales, le groupe par défaut a la même valeur que l'ID de l'utilisateur.
dave,,, : Un ensemble d'informations supplémentaires facultatives sur l'utilisateur. Ce champ contient des données séparées par des virgules ",". Ils peuvent contenir des éléments tels que le nom complet de l'utilisateur, son numéro de bureau et son numéro de téléphone. L'entrée pour le compte utilisateur "mary" montre que son nom complet est Mary Quinn.
/home/dave : Le chemin vers le dossier personnel de l'utilisateur.
/bin/bash : L'interpréteur de commandes par défaut pour cet utilisateur.

Si nous faisons passer la sortie de cette commande par l’utilitaire wc et utilisons l’option -l (lignes), nous pouvons compter les lignes du fichier. Cela nous donnera le nombre de comptes configurés sur cet ordinateur.

cat /etc/passwd | wc -l

Comptage du nombre de comptes dans le fichier /etc/passwd

Ce chiffre comprend les comptes système et les utilisateurs créés par les applications. Il y a environ 400 utilisateurs réguliers configurés sur cet ordinateur. Votre résultat sera probablement bien inférieur.

Avec autant de comptes, il est plus pratique d’utiliser less pour afficher le fichier « /etc/passwd ».

less /etc/passwd

Ouverture du fichier /etc/passwd dans less

L’utilisation de less vous permet également d’effectuer des recherches dans le résultat, si vous souhaitez rechercher un compte utilisateur particulier.

Recherche du compte mary dans le fichier /etc/passwd, en less

La commande awk

En utilisant la commande awk, nous pouvons afficher uniquement le nom d’utilisateur. Cela peut être utile lorsque vous écrivez un script qui doit faire quelque chose à un grand nombre de comptes d’utilisateurs. Lister les noms de comptes d’utilisateurs et les rediriger dans un fichier texte peut être un grand gain de temps. Tout ce que vous avez à faire ensuite est de copier et coller le reste de la commande sur chaque ligne.

Nous allons dire à awk d’utiliser les deux points  » : » comme séparateur de champ et d’imprimer le premier champ. Nous utiliserons l’option -F (séparateur de champs).

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

Une commande awk pour sélectionner uniquement les noms d’utilisateurs du fichier /etc/passwd.

Les noms de comptes d’utilisateurs sont écrits dans la fenêtre du terminal sans aucune autre information sur les comptes.

Les noms de comptes d’utilisateurs affichés dans la fenêtre du terminal

La commande cut

Nous pouvons réaliser le même genre de chose en utilisant la commande cut. Nous devons utiliser l’option -d (délimiteur) et lui demander de ne sélectionner que le premier champ, en utilisant l’option -f (champs).

cutr -d : -f1

Utilisation de la commande cut pour afficher uniquement les noms d’utilisateurs du fichier /etc/passwd

Ce fichier répertorie tous les comptes utilisateurs, y compris le système et les autres comptes non humains.

La commande compgen

La commande compgen peut être utilisée avec l’option -u (user) pour lister les comptes utilisateurs. Nous allons faire passer la sortie par la commande column pour lister les comptes utilisateurs en colonnes, au lieu d’une longue liste avec un seul nom d’utilisateur par ligne.

compgen -u | column

Utilisation des commandes compgen et column pour lister les noms des comptes utilisateurs du fichier /etc/passwd en colonnes.

Encore une fois, les premiers comptes utilisateurs listés appartiennent à des processus, pas à des humains.
UID MIN et UID MAX

Les comptes d’utilisateurs reçoivent un ID numérique, que nous avons vu précédemment. En général, les comptes d’utilisateurs humains ordinaires commencent à 1000, et les comptes d’utilisateurs système, non humains, commencent à 0. L’ID du compte root est 0.

Si nous pouvons vérifier les ID d’utilisateur les plus bas et les plus élevés possibles, nous pouvons utiliser cette information pour sélectionner les comptes d’utilisateur qui se situent entre ces deux valeurs. Cela nous permettra de sélectionner uniquement les comptes d’utilisateur appartenant à des personnes réelles.

Linux garde la trace de ces deux valeurs à l’aide de paramètres de configuration appelés UID_MIN et UID_MAX . Ils sont contenus dans le fichier « /etc/login.defs ». Nous pouvons facilement voir ces valeurs en utilisant grep.

Nous allons utiliser l’option -E (extended regex). Notre chaîne de recherche cherche les lignes qui commencent par « UID_MIN » ou « UID_MAX » dans le fichier « /etc/login.defs ». L’astérisque « ^ » représente le début d’une ligne.

grep -E ‘^UID_MIN|^UID_MAX’ /etc/login.defs

La plage des identifiants d’utilisateur sur cet ordinateur est comprise entre 1000 et 60 000.

La commande getent

La commande getent lit les informations des bases de données du système. Nous pouvons lui demander de lister les entrées du fichier « /etc/passwd » en utilisant « passwd » comme paramètre.

getent passwd

Utilisation de getent pour vider le fichier /etc/passwd dans la fenêtre du terminal.

Cela nous donne la même lecture que celle que nous pouvons obtenir en utilisant cat. Mais là où getent brille, c’est en acceptant des valeurs appelées « clés ». Une clé dicte quelle information getent rapporte. Si nous voulons voir l’entrée pour un seul utilisateur, nous pouvons passer son nom de compte utilisateur sur la ligne de commande.

getent passwd Sarah

Notez que le nom du compte utilisateur est sensible à la casse.

getent passwd sarah

Recherche d’un seul compte utilisateur avec getent

Nous pouvons aussi passer dans les limites supérieures et inférieures des IDs de comptes utilisateurs que nous voulons voir. Pour voir absolument tous les comptes d’utilisateurs réguliers, nous pouvons utiliser les valeurs de UID_MIN et UID_MAX.

getent passwd {1000..60000}

Utilisation des IDs de compte supérieur et inférieur avec getent

L’exécution de cette procédure prend un certain temps. Finalement, vous serez renvoyé à l’invite de commande.

Le contenu du fichier /etc/passwd envoyé dans la fenêtre du terminal par getent

La raison de ce long temps d’exécution est que getent essaie de trouver des correspondances pour toutes les valeurs de compte utilisateur jusqu’à 60000.

Voyons quel est l’ID du compte utilisateur le plus élevé. Nous utiliserons la commande cut, mais cette fois nous demanderons le champ 3, le champ ID utilisateur. Nous ferons passer la sortie par sort et utiliserons l’option -g (tri numérique général).

cut -d : -f3 /etc/passwd | sort -g

La commande pour diriger la sortie de cut vers la commande sort.

La valeur d’ID la plus élevée d’un compte utilisateur appartenant à un humain est 1401.

Une liste triée d’ID de comptes d’utilisateurs

L’ID utilisateur 65534 est attribué au concept système « nobody ».

getent passwd {65534..65534}

L’utilisateur système nobody, avec l’ID 65534

Nous savons donc qu’au lieu d’utiliser la valeur UID_MAX de 60000, sur cet ordinateur nous pouvons utiliser une valeur plus réaliste comme 1500. Cela va accélérer les choses. Nous allons également passer la sortie par cut pour extraire uniquement les noms des comptes utilisateurs.

getent passwd {1000..1500} | cut -d : -f1

La sortie de getent passée par cut pour lister les noms des comptes utilisateurs.

Les utilisateurs sont listés et nous retournons immédiatement à l’invite de commande.

Au lieu de faire passer la sortie par cut, faisons passer la sortie par wc et comptons les lignes une fois de plus. Cela nous donnera le nombre de « vrais » comptes utilisateurs.

getent passwd {1000..1500} | wc -l

Compter les comptes utilisateurs réguliers avec getent et wc

Nous pouvons maintenant voir que sur cet ordinateur, définitivement, il y a 400 comptes utilisateurs configurés, appartenant à des humains.

Puissance et simplicité

L’une de ces techniques répondra certainement à vos besoins lorsque vous devrez passer en revue les comptes utilisateurs sur un ordinateur Linux. Ces commandes devraient être présentes sur toutes les distributions, et aucune d’entre elles ne nécessite un accès sudo, elles sont donc toutes disponibles pour chaque utilisateur.