in

Comment répertorier les utilisateurs sous Linux

Liens rapides

Linux est un système d’exploitation multi-utilisateurs, il est donc facile de créer de nombreux comptes d’utilisateurs. Au fil du temps, il est facile de perdre la trace des comptes requis. La liste des comptes d’utilisateurs vous aide à les gérer.

Habituellement, les comptes supplémentaires ne font qu’ajouter de l’encombrement, mais ils peuvent également ouvrir la voie à des failles de sécurité.

Les progrès technologiques entraînent souvent de nouveaux problèmes. Dès que les ordinateurs ont pu prendre en charge plusieurs utilisateurs, la nécessité de séparer et d’encapsuler le travail de chaque personne est devenue évidente. Cela a conduit au concept de comptes d’utilisateurs. Chaque utilisateur dispose d’un identifiant nommé et d’un mot de passe. Ce sont les identifiants qui leur permettent de se connecter à leur compte. Leurs fichiers sont conservés dans un espace privé à chaque utilisateur.

Sur un système très chargé, il est facile de perdre de vue les comptes que vous avez créés et ceux qui ne sont plus nécessaires. D’un point de vue sécurité, il est déconseillé de conserver des comptes d’utilisateurs dont vous n’avez plus besoin de les configurer et d’y accéder sur votre ordinateur. Vous devez supprimer ces utilisateurs.

Même si aucune autre personne n’utilise votre ordinateur, vous avez peut-être créé des comptes simplement pour apprendre à le faire, ou pour apprendre et mettre en pratique les processus d’administration.

La première étape consiste à répertorier les comptes d’utilisateurs configurés sur votre ordinateur. Cela vous permet de les examiner et de porter un jugement sur ceux qui peuvent être supprimés. Il existe plusieurs méthodes pour répertorier les utilisateurs. Quelle que soit la distribution que vous utilisez, ces techniques devraient fonctionner pour vous sans avoir besoin d’installer d’applications ou d’utilitaires.

Liste des 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 réguliers peuvent lister dans la fenêtre du terminal. Vous n’avez pas besoin d’utiliser sudo pour consulter le fichier « /etc/passwd ».

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

cat /etc/passwd

Une ligne d’informations denses est signalée pour chaque compte utilisateur.

Le contenu du fichier passwd

Les informations du compte utilisateur appelé « dave » contiennent ces informations, avec les deux-points « : » entre eux.

  • David: Le nom du compte utilisateur. Généralement le nom de la personne à qui appartient le compte.
  • X: À un moment donné, cela contenait le 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 de ce compte. Tous les comptes d’utilisateurs ont un identifiant numérique unique. Les comptes d’utilisateurs réguliers commencent généralement à 1 000, chaque nouveau compte prenant le prochain identifiant gratuit, tel que 1001, 1002, etc.
  • 1000: L’ID de groupe du groupe par défaut auquel appartient l’utilisateur. Dans des circonstances normales, le groupe par défaut a la même valeur que l’ID utilisateur.
  • David,,,: Une collection d’informations supplémentaires facultatives sur l’utilisateur. Ce champ contient des données avec des virgules « , » entre eux. 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 du compte utilisateur « Mary » indique que son nom complet est Mary Quinn.
  • /home/dave: Le chemin d’accès au dossier personnel de l’utilisateur.
  • /bin/bash: Le shell par défaut pour cet utilisateur.

Si nous transmettons la sortie de cette commande via le wc utilitaire et utilisez le -l (lignes) nous pouvons compter les lignes dans le fichier. Cela nous donnera le nombre de comptes configurés sur cet ordinateur.

cat /etc/passwd | wc -l

Compter le nombre de comptes dans le fichier passwd

Ce chiffre inclut 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, c’est plus pratique à utiliser less pour afficher le fichier « /etc/passwd ».

less /etc/passwd

Ouverture du fichier /etc/passwd en moins

En utilisant less vous permet également d’effectuer une recherche dans la sortie, si vous souhaitez rechercher un compte utilisateur particulier.

Recherche du compte Mary dans le fichier /etc/passwd, en moins

La commande awk

En utilisant le awk commande, nous pouvons afficher uniquement le nom d’utilisateur. Cela peut être utile lorsque vous écrivez un script qui doit faire quelque chose sur de nombreux comptes d’utilisateurs. Répertorier les noms des comptes utilisateur et les rediriger vers un fichier texte peut vous faire gagner beaucoup de temps. Il ne vous reste plus qu’à copier et coller le reste de la commande sur chaque ligne.

Nous dirons à 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 champ).

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

Une commande awk pour sélectionner uniquement les noms d'utilisateurs dans /etc/passwd

Les noms de compte utilisateur sont écrits dans la fenêtre du terminal sans aucune autre information de compte.

Les noms de compte utilisateur affichés dans la fenêtre du terminal

La commande couper

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

cutr -d: -f1

Utiliser la commande cut pour afficher uniquement les noms d'utilisateur du fichier /etc/passwd

Ceci répertorie tous les comptes d’utilisateurs, y compris le système et les autres comptes non humains.

La commande compgen

Le compgen la commande peut être utilisée avec le -u (utilisateur) option pour lister les comptes d’utilisateurs. Nous dirigerons la sortie via le column commande pour répertorier les comptes d’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 répertorier les noms de comptes utilisateur du fichier /etc/passwd en colonnes

Encore une fois, les premiers comptes d’utilisateurs répertoriés appartiennent à des processus et non à des humains.

UIDMIN et UIDMAX

Les comptes d’utilisateurs reçoivent un identifiant numérique, comme nous l’avons vu précédemment. Habituellement, les comptes d’utilisateurs humains réguliers commencent à 1 000 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 utilisateur les plus bas et les plus élevés possibles, nous pouvons utiliser ces informations pour sélectionner les comptes d’utilisateurs situés entre ces deux valeurs. Cela nous permettra de sélectionner uniquement les comptes d’utilisateurs appartenant à de vraies personnes.

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

Nous allons utiliser le -E (expression régulière étendue). Notre chaîne de recherche recherche les lignes commençant par « UID_MIN » ou « UID_MAX » dans le fichier « /etc/login.defs ». Le curseur « ^ » représente le début d’une ligne.

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

Envoi du fichier passwd à la fenêtre du terminal avec cat

La plage des ID utilisateur sur cet ordinateur est comprise entre 1 000 et 60 000.

La commande getent

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

getent passwd

Envoi du fichier passwd à la fenêtre du terminal avec cat

Cela nous donne la même lecture que celle que nous pouvons obtenir en utilisant cat. Mais où getent brille en acceptant des valeurs connues sous le nom de « clés ». Une clé dicte quelles informations getent rapports sur. Si nous voulons voir l’entrée d’un seul utilisateur, nous pouvons transmettre 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

Envoi du fichier passwd à la fenêtre du terminal avec cat

Nous pouvons également transmettre les limites supérieure et inférieure des identifiants de compte utilisateur que nous souhaitons 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}

Envoi du fichier passwd à la fenêtre du terminal avec cat

Cela prend un certain temps à fonctionner. Finalement, vous serez renvoyé à l’invite de commande.

Envoi du fichier passwd à la fenêtre du terminal avec cat

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

Voyons quel est l’ID de compte utilisateur le plus élevé. Nous utiliserons le cut commande, mais cette fois nous demanderons le champ trois, le champ ID utilisateur. Nous acheminerons la sortie via sort et utiliser le -g (tri numérique général).

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

Envoi du fichier passwd à la fenêtre du terminal avec cat

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

Envoi du fichier passwd à la fenêtre du terminal avec cat

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

getent passwd {65534..65534}

L'utilisateur du système Personne, avec l'ID 65534

Nous savons donc qu’au lieu d’utiliser le UID_MAX valeur de 60 000, sur cet ordinateur, nous pouvons utiliser une valeur plus réaliste comme 1 500. Cela accélérera bien les choses. Nous dirigerons également la sortie via cut pour extraire uniquement les noms des comptes utilisateurs.

getent mot de passe {1000..1500} | couper -d : -f1

Envoi du fichier passwd à la fenêtre du terminal avec cat

Les utilisateurs sont répertoriés et nous revenons immédiatement à l’invite de commande.

Au lieu de faire passer la sortie par cutfaisons passer la sortie via wc et comptez à nouveau les lignes. Cela nous donnera le nombre de « vrais » comptes d’utilisateurs.

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

Envoi du fichier passwd à la fenêtre du terminal avec cat

Nous pouvons maintenant voir que sur cet ordinateur, il y a définitivement 400 comptes d’utilisateurs configurés et détenus par des humains.

Puissance et simplicité

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

Laisser un commentaire

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

Comment renommer un répertoire sous Linux

Comment renommer un répertoire sous Linux

3 façons d'installer Ubuntu sur une clé USB depuis Windows

3 façons d’installer Ubuntu sur une clé USB depuis Windows