GNU/Linux >> Tutoriels Linux >  >> Linux

Comment répertorier les utilisateurs sous Linux

Avez-vous déjà voulu répertorier tous les utilisateurs de votre système Linux ou compter le nombre d'utilisateurs du système ? Il existe des commandes pour créer un utilisateur, supprimer un utilisateur, répertorier les utilisateurs connectés, mais quelle est la commande pour répertorier tous les utilisateurs sous Linux ?

Ce didacticiel vous montrera comment répertorier les utilisateurs dans les systèmes Linux.

Obtenir une liste de tous les utilisateurs à l'aide de /etc/passwd Fichier #

Les informations de l'utilisateur local sont stockées dans le /etc/passwd dossier. Chaque ligne de ce fichier représente les informations de connexion d'un utilisateur. Pour ouvrir le fichier, vous pouvez soit utiliser cat ou less :

less /etc/passwd

Chaque ligne du fichier comporte sept champs délimités par des deux-points contenant les informations suivantes :

  • Nom d'utilisateur.
  • Mot de passe crypté (x signifie que le mot de passe est stocké dans le /etc/shadow fichier).
  • Numéro d'identification de l'utilisateur (UID).
  • Numéro d'identification de groupe de l'utilisateur (GID).
  • Nom complet de l'utilisateur (GECOS).
  • Répertoire d'accueil de l'utilisateur.
  • Shell de connexion (par défaut, /bin/bash ).

Si vous souhaitez afficher uniquement le nom d'utilisateur, vous pouvez utiliser soit awk ou cut commandes pour imprimer uniquement le premier champ contenant le nom d'utilisateur :

awk -F: '{ print $1}' /etc/passwd
cut -d: -f1 /etc/passwd
root
daemon
bin
sys
sync
...
...
sshd
vagrant
jack
anne

Obtenir une liste de tous les utilisateurs utilisant la commande getent #

Le getent la commande affiche les entrées des bases de données configurées dans /etc/nsswitch.conf fichier, y compris le passwd base de données, qui peut être utilisée pour interroger une liste de tous les utilisateurs.

Pour obtenir une liste de tous les utilisateurs Linux, saisissez la commande suivante :

getent passwd

Comme vous pouvez le voir, la sortie est la même que lors de l'affichage du contenu de /etc/passwd dossier. Si vous utilisez LDAP pour l'authentification des utilisateurs, le getent affichera tous les utilisateurs Linux de /etc/passwd fichier et base de données LDAP.

Vous pouvez également utiliser awk ou cut pour n'imprimer que le premier champ contenant le nom d'utilisateur :

getent passwd | awk -F: '{ print $1}'
getent passwd | cut -d: -f1

Vérifier si un utilisateur existe dans le système Linux #

Maintenant que nous savons comment lister tous les utilisateurs, pour vérifier si un utilisateur existe dans notre machine Linux, nous pouvons simplement filtrer la liste des utilisateurs en redirigeant la liste vers le grep commande.

Par exemple, pour savoir si un utilisateur avec le nom jack existe dans notre système Linux, nous pouvons utiliser la commande suivante :

getent passwd | grep jack

Si l'utilisateur existe, la commande ci-dessus imprimera les informations de connexion de l'utilisateur. Aucune sortie, ce qui signifie que l'utilisateur n'existe pas.

Nous pouvons également vérifier si un utilisateur existe sans utiliser le grep commande comme indiqué ci-dessous :

getent passwd jack

Comme précédemment, si l'utilisateur existe, la commande affichera les informations de connexion de l'utilisateur.

Si vous voulez savoir combien de comptes d'utilisateurs vous avez sur votre système, dirigez le getent passwd sortie vers le wc commande :

getent passwd | wc -l
33

Comme vous pouvez le voir dans la sortie ci-dessus, mon système Linux a 33 comptes d'utilisateurs.

Numéro d'utilisateurs système et normaux

Il n'y a pas de réelle différence technique entre le système et les utilisateurs réguliers (normaux). En règle générale, les utilisateurs système sont créés lors de l'installation du système d'exploitation et des nouveaux packages. Dans certains cas, vous pouvez créer un utilisateur système qui sera utilisé par certaines applications.

Les utilisateurs normaux sont les utilisateurs créés par la racine ou un autre utilisateur avec des privilèges sudo. Habituellement, un utilisateur normal dispose d'un véritable shell de connexion et d'un répertoire personnel.

Chaque utilisateur possède un ID utilisateur numérique appelé UID. Si non spécifié lors de la création d'un nouvel utilisateur avec le useradd commande, l'UID sera automatiquement sélectionné à partir du /etc/login.defs fichier en fonction de UID_MIN et UID_MIN valeurs.

Pour vérifier le UID_MIN et UID_MIN valeurs sur votre système, vous pouvez utiliser la commande suivante :

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

D'après la sortie ci-dessus, nous pouvons voir que tous les utilisateurs normaux doivent avoir un UID entre 1000 et 60000. Connaître la valeur minimale et maximale nous permet d'interroger une liste de tous les utilisateurs normaux de notre système.

La commande ci-dessous répertorie tous les utilisateurs normaux de notre système Linux :

getent passwd {1000..60000}
vagrant:x:1000:1000:vagrant,,,:/home/vagrant:/bin/bash
jack:x:1001:1001:,,,:/home/jack:/bin/bash
anne:x:1002:1002:Anne Stone,,,:/home/anne:/bin/bash
patrick:x:1003:1003:Patrick Star,,,:/home/patrick:/usr/sbin/nologin

Votre système UID_MIN et UID_MIN les valeurs peuvent être différentes donc la version plus générique de la commande ci-dessus serait :

eval getent passwd {$(awk '/^UID_MIN/ {print $2}' /etc/login.defs)..$(awk '/^UID_MAX/ {print $2}' /etc/login.defs)}

Si vous souhaitez imprimer uniquement les noms d'utilisateur, dirigez simplement la sortie vers le cut commande :

eval getent passwd {$(awk '/^UID_MIN/ {print $2}' /etc/login.defs)..$(awk '/^UID_MAX/ {print $2}' /etc/login.defs)} | cut -d: -f1

Conclusion #

Dans ce didacticiel, vous avez appris à répertorier et à filtrer les utilisateurs de votre système Linux et quelles sont les principales différences entre le système et les utilisateurs Linux normaux.

Les mêmes commandes s'appliquent à toutes les distributions Linux, y compris Ubuntu, CentOS, RHEL, Debian et Linux Mint.

N'hésitez pas à laisser un commentaire si vous avez des questions.


Linux
  1. Comment créer plusieurs comptes d'utilisateurs sous Linux

  2. Comment trouver tous les utilisateurs de Sudo sous Linux

  3. Liste des utilisateurs sous Linux - Meilleure méthode

  4. Comment répertorier les utilisateurs dans CentOS 7

  5. 3 façons de lister les utilisateurs sous Linux

Comment restreindre l'accès SSH à certains utilisateurs sous Linux

Comment obtenir la liste des comptes utilisateur MySQL sous Linux

Comment répertorier les utilisateurs et les groupes sous Linux

Comment changer d'utilisateur sous Linux

Comment lister tous les utilisateurs d'un groupe sous Linux

Comment créer/ajouter des utilisateurs sous Linux