![](https://m.unixlinux.online/article/uploadfiles/202204/2022042611323059.jpg)
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
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042611323116.jpg)
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
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042611323131.jpg)
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
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042611323108.jpg)
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}
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042611323195.jpg)
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.