
Dernière mise à jour le

Il est important de savoir qui a accès à votre PC Linux (et contrôle vos fichiers), mais vous pouvez facilement répertorier les utilisateurs sous Linux pour le savoir. Voici comment.
le Système d'exploitation Linux propose des commandes pour créer et supprimer des utilisateurs et vérifier lesquels sont connectés. Cependant, il n'y a pas de commande pour répertorier les utilisateurs, connectés ou non, sur le système.
Pourtant, il existe plusieurs façons de procéder. Si vous souhaitez apprendre à répertorier les utilisateurs sous Linux, suivez les étapes ci-dessous.
Pourquoi devriez-vous vérifier votre liste d'utilisateurs Linux
Il existe un certain nombre de raisons pour lesquelles vous voudrez peut-être répertorier les utilisateurs sous Linux. C'est une bonne pratique en termes de recherche et de suppression des comptes inutilisés, pour commencer. Du point de vue de la sécurité, c'est aussi un bon moyen de s'assurer que des intrus ne créent pas de comptes d'utilisateurs.
Il s'agit d'une tâche administrative que vous devriez probablement effectuer au moins une fois par mois. Si vous utilisez un serveur Linux d'entreprise, vous voudrez peut-être le faire plus souvent.
Utilisateurs répertoriés dans /etc/passwd
Tous les comptes d'utilisateurs de votre serveur Linux ont des entrées dans le fichier /etc/passwd. Chaque ligne représente un utilisateur et comporte sept champs séparés par des deux-points. Les champs fournissent des informations sur l'utilisateur.
- Nom d'utilisateur.
- Mot de passe crypté (X indique que le mot de passe est en fait dans /etc/shadow)
- Numéro d'identification de l'utilisateur (UID).
- Numéro d'identification de groupe de l'utilisateur (GID).
- Nom complet de l'utilisateur, s'il est répertorié.
- Répertoire d'accueil de l'utilisateur.
- Shell de connexion
Donc, cela nous amène à une façon de répertorier tous les utilisateurs de Linux. Vous pouvez utiliser le moins commande pour voir le fichier entier, un écran à la fois.
moins /etc/passwd.

Si vous voulez vérifier si un utilisateur particulier existe dans le système Linux, c'est une bonne utilisation de la commande grep:
moins de passe | grep jeff.

Si vous n'obtenez aucune sortie, cet utilisateur n'existe pas sur le serveur Linux.
C'est quand même beaucoup d'informations. Vous pouvez le réduire au seul nom d'utilisateur, par exemple, en utilisant soit le ok ou Couper commandes :
awk -F: '{print $1}' /etc/passwd. couper -d: -f1 /etc/passwd.

Cela a tendance à être beaucoup plus facile à comprendre, mais cela vous laisse toujours voir tous les comptes d'utilisateurs basés sur le système mélangés à vos utilisateurs humains.
Comment utiliser getent pour lister les utilisateurs
Une autre commande, obtenir, est beaucoup plus utile. Il affiche les entrées de toute base de données configurée dans votre serveur /etc/nsswitch.conf déposer. L'un d'eux est le mot de passe base de données. Utiliser obtenir pour afficher une liste de tous les utilisateurs Linux, cela fonctionne comme ceci :
obtenir le mot de passe
La sortie est exactement la même que si vous utilisiez le moins commande, mais répertorie tous les utilisateurs LDAP sur le système Linux. Encore une fois, notre ok et Couper Les commandes peuvent aider à voir uniquement le premier champ, les noms d'utilisateur.
Si vous voulez vérifier si un utilisateur particulier existe dans le système Linux, obtenir c'est facile :
getent passwd jeff.
Encore une fois, aucune sortie de cette commande ne vous indique que l'utilisateur n'existe pas.
Une autre utilisation formidable pour obtenir est de savoir combien de comptes d'utilisateurs existent sur le serveur. Cela se fait par tuyauterie obtenirla sortie via le toilettes commande, comme ceci :
obtenir le mot de passe | wc-l.

Comme vous pouvez le voir, mon système Linux a un total de 48 comptes. Assez intéressant, puisque je suis le seul à l'utiliser, mais cela montre juste combien de comptes système sont créés sous Linux.
Éliminer les utilisateurs système des utilisateurs normaux
Aux yeux de Linux, il n'y a pas de différence entre un utilisateur système et un utilisateur humain. Chaque fois que vous installez le système d'exploitation, il crée un certain nombre d'utilisateurs système. D'autres utilisateurs du système sont créés pour divers packages, tels que les logiciels de service Web ou de messagerie.
Alors, comment pouvez-vous répertorier uniquement les utilisateurs humains réguliers sur le système Linux? La clé ici est de comprendre que lorsque vous créez un utilisateur régulier, son UID est attribué dans une certaine plage de numéros. En vérifiant le /etc/login.defs fichier, nous pouvons déterminer la plage de valeurs UID disponibles pour les comptes d'utilisateurs réguliers.
grep -E '^UID_MIN|^UID_MAX' /etc/login.defs.

Sur la base de la sortie, je sais que les utilisateurs normaux devraient avoir un UID entre 1000 et 60000. A partir de là, je peux construire un obtenir requête qui n'affichera que les utilisateurs normaux.
obtenir le mot de passe {1000..60000}

Garder à l'esprit, obtenir semblera se bloquer même après avoir affiché sa sortie. Vous pouvez appuyer sur Ctrl-C pour terminer le processus ou attendez qu'il se termine. Il faut généralement moins de 15 secondes pour terminer la recherche du mot de passe base de données.
Une version plus générique de cette commande prend en compte différents UID_MIN et UID_MAX valeurs que divers serveurs peuvent utiliser.
eval getent passwd {$(awk '/^UID_MIN/ {print $2}' /etc/login.defs)..$(awk '/^UID_MAX/ {print $2}' /etc/login.defs)}
Dans cette commande, nous profitons de la capacité de Linux à faire plusieurs choses à la fois. le ok les commandes obtiennent le UID_MIN et UID_MAX valeurs, puis utilisez-les dans le obtenir commander.
Maintenant, disons que tout ce que nous voulons, ce sont les noms d'utilisateur. Encore une fois, nous canalisons notre sortie à travers le Couper commande, comme ceci :
eval getent passwd {$(awk '/^UID_MIN/ {print $2}' /etc/login.defs)..$(awk '/^UID_MAX/ {print $2}' /etc/login.defs)} | couper -d: -f1.

Cette commande peut prendre 10 à 15 secondes, alors soyez patient.
Gérer efficacement vos utilisateurs Linux
Il est important de garder une trace des comptes d'utilisateurs existants sur votre système Linux. Lorsque vous savez qu'un employé est parti, soyez prompt à supprimer son compte d'utilisateur. Répertorier périodiquement vos utilisateurs Linux vous aidera à vous assurer que vous détectez tous les comptes qui pourraient être restés.
En même temps, assurez-vous de rester au courant de politiques de sécurité des mots de passe et encouragez vos utilisateurs à changer ses mots de passe régulièrement.