Ce bref guide explique comment répertorier tous les utilisateurs des systèmes d'exploitation Linux. Avant d'entrer dans le sujet, nous verrons ce qu'est le fichier /etc/passwd. Parce que nous dépendons de ce fichier tout au long de ce guide.
Une brève note sur le fichier /etc/passwd
Sous Linux (et Unix en général), les informations de base sur chaque compte utilisateur sont stockées dans "/etc/passwd" dossier. Ce n'est rien d'autre qu'un fichier texte contenant les attributs de tous les comptes d'utilisateurs présents dans un système Linux.
Par défaut, ce fichier est lisible par tous les utilisateurs à l'aide de n'importe quel programme texte ou graphique, tel que Vi, Nano, Gedit etc ou avec des commandes comme "cat ".
Si vous ouvrez ce fichier..
$ cat /etc/passwd
...vous verrez plusieurs entrées comme ci-dessous :
root:x:0:0:root:/root:/bin/bashdaemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologinbin:x:2:2:bin:/ bin:/usr/sbin/nologinsys:x:3:3:sys:/dev:/usr/sbin/nologinsync:x:4:65534:sync:/bin:/bin/syncgames:x:5:60:games :/usr/games:/usr/sbin/nologin[...]
Chaque ligne du fichier /etc/passwd représente un seul utilisateur. L'utilisateur root sera listé en haut. Chaque ligne contient sept attributs ou champs séparés par deux-points sans aucun espace entre chaque champ. Le nom des sept champs est donné ci-dessous :
- nom,
- mot de passe,
- ID utilisateur,
- identifiant de groupe,
- gécos,
- répertoire d'accueil,
- coque.
Le "nom" champ est le nom de connexion de l'utilisateur que vous utilisez pour vous connecter à votre machine Linux.
Le "mot de passe" le champ contient simplement une lettre X. Signification - le mot de passe est crypté et stocké dans un fichier séparé appelé "/etc/shadow" pour des raisons de sécurité. Le /etc/shadow ne peut pas être lu par les utilisateurs normaux. Ici, le X indique que l'utilisateur a un mot de passe. Si ce champ est vide, l'utilisateur n'a pas de mot de passe, il peut donc se connecter sans mot de passe.
L'"ID utilisateur " (ou UID en abrégé) indique le numéro d'identification numérique unique de l'utilisateur. L'UID du compte root est 0 (zéro). Les nombres de 1 à 99 sont réservés aux comptes système. Et les nombres de 100 à 999 sont réservés aux utilisateurs normaux et groupes.
L'"ID de groupe" (ou GID en abrégé) indique l'identifiant de groupe principal auquel appartient l'utilisateur. Le GID est généralement le même que l'UID.
Les "geckos" champ contient les informations générales d'un utilisateur. Par exemple, Il peut contenir le vrai nom de l'utilisateur. Ce fichier peut être soit vide, séparé par deux points, soit contenir plusieurs entrées séparées par des virgules.
Le "répertoire d'accueil" indique le chemin complet du répertoire personnel de l'utilisateur, par exemple /home/sk . Il s'agit du répertoire dans lequel l'utilisateur se trouve en premier lorsqu'il se connecte à un système. Le répertoire personnel contient généralement des programmes et des fichiers de configuration appartenant à l'utilisateur.
Le dernier fichier est "shell" . Il indique le chemin complet du shell par défaut pour cet utilisateur.
Prenons maintenant la ligne suivante comme exemple :
root:x:0:0:root:/root:/bin/bash
Dans la ligne ci-dessus,
- racine - est le nom d'utilisateur,
- x - indique que l'utilisateur root a un mot de passe,
- 0 - Le premier 0 (zéro) indique l'UID,
- 0 - Le deuxième zéro indique le GID,
- racine - Il indique le vrai nom de l'utilisateur.
- /racine - C'est le répertoire personnel de l'utilisateur root,
- /bin/bash - Shell par défaut pour l'utilisateur root.
J'espère que vous aurez une idée de base sur le fichier /etc/passwd. Revenons maintenant à notre sujet, à savoir la liste de tous les utilisateurs d'un système Linux.
Répertorier tous les utilisateurs sous Linux
Il existe plusieurs façons de répertorier tous les utilisateurs d'un système Linux. Ici, j'ai inclus tous les moyens possibles.
1. Répertorier tous les utilisateurs sous Linux à l'aide de la commande cat
Comme son nom l'indique, la commande cat est généralement utilisée pour concaténer des fichiers et imprimer le contenu des fichiers.
Pour répertorier tous les utilisateurs d'un système Linux à l'aide de la commande cut, exécutez :
$ cat /etc/passwd
Cette commande listera tous les utilisateurs disponibles
Exemple de résultat :
root:x:0:0:root:/root:/bin/bashdaemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologinbin:x:2:2:bin:/ bin:/usr/sbin/nologinsys:x:3:3:sys:/dev:/usr/sbin/nologinsync:x:4:65534:sync:/bin:/bin/syncgames:x:5:60:games :/usr/games:/usr/sbin/nologinman:x:6:12:man:/var/cache/man:/usr/sbin/nologinlp:x:7:7:lp:/var/spool/lpd :/usr/sbin/nologinmail:x:8:8:mail:/var/mail:/usr/sbin/nologinnews:x:9:9:news:/var/spool/news:/usr/sbin/nologinuucp:x :10:10:uucp:/var/spool/uucp:/usr/sbin/nologinproxy:x:13:13:proxy:/bin:/usr/sbin/nologinwww-data:x:33:33:www-data :/var/www:/usr/sbin/nologinbackup:x:34:34:backup:/var/backups:/usr/sbin/nologinlist:x:38:38:Gestionnaire de liste de diffusion :/var/list:/usr /sbin/nologinirc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologingnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/ usr/sbin/nologinnobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologinsystemd-network:x:100:102:systemd Network Management,,,:/run/systemd/netif:/usr/sbin /nologinsystemd-resolve:x:101:103:systemd Resolver,, ,:/run/systemd/resolve:/usr/sbin/nologinsyslog:x:102:106::/home/syslog:/usr/sbin/nologinmessagebus:x:103:107::/nonexistent:/usr/sbin/ nologin_apt:x:104:65534::/nonexistent:/usr/sbin/nologinuuidd:x:105:111::/run/uuidd:/usr/sbin/nologinavahi-autoipd:x:106:112:Avahi autoip daemon, ,,:/var/lib/avahi-autoipd:/usr/sbin/nologinusbmux:x:107:46:démon usbmux,,,:/var/lib/usbmux:/usr/sbin/nologindnsmasq:x:108:65534 :dnsmasq,,,:/var/lib/misc:/usr/sbin/nologinrtkit:x:109:114:RealtimeKit,,,:/proc:/usr/sbin/nologincups-pk-helper:x:110:116 :utilisateur pour le service cups-pk-helper,,,:/home/cups-pk-helper:/usr/sbin/nologinspeech-dispatcher:x:111:29:Speech Dispatcher,,,:/var/run/speech- dispatcher:/bin/falsewhoopsie:x:112:117::/nonexistent:/bin/falsekernoops:x:113:65534:Kernel Oops Tracking Daemon,,,:/:/usr/sbin/nologinsaned:x:114:119 ::/var/lib/saned:/usr/sbin/nologinavahi:x:116:122:Démon Avahi mDNS,,,:/var/run/avahi-daemon:/usr/sbin/nologincolord:x:117:123 :démon de gestion des couleurs colord,,,:/var/lib/colord:/usr/sbi n/nologinhplip:x:118:7:utilisateur du système HPLIP,,,:/var/run/hplip:/bin/falsegeoclue:x:119:124::/var/lib/geoclue:/usr/sbin/nologingnome- initial-setup:x:120:65534::/run/gnome-initial-setup/:/bin/falsegdm:x:121:125:Gnome Display Manager:/var/lib/gdm3:/bin/falsesk:x :1000:1000:sk,,,:/home/sk:/bin/bashDebian-exim:x:122:128::/var/spool/exim4:/usr/sbin/nologinpulse:x:115:120:PulseAudio daemon ,,,:/var/run/pulse:/usr/sbin/nologinsystemd-timesync:x:123:127:synchronisation de l'heure systemd,,,:/run/systemd:/usr/sbin/nologintss:x:124:131 :Pile logicielle TPM,,,:/var/lib/tpm:/bin/falsetcpdump:x:125:132::/nonexistent:/usr/sbin/nologin_flatpak:x:126:133:Assistant d'installation à l'échelle du système Flatpak, ,,:/nonexistent:/usr/sbin/nologinsystemd-coredump:x:999:999:systemd Core Dumper:/:/usr/sbin/nologin
Répertorier tous les utilisateurs sous Linux à l'aide de la commande cat
Comme je l'ai déjà mentionné, le premier champ dans les entrées ci-dessus représente les utilisateurs. Si vous ne voulez pas tous les champs mais seulement afficher les noms d'utilisateurs, les méthodes suivantes pourraient vous aider.
3. Lister les utilisateurs à l'aide de la commande cut
La commande "couper" est utilisée pour supprimer des sections (ou champs) de chaque ligne de fichiers.
Pour répertorier tous les utilisateurs avec la commande cut dans un système Linux, exécutez :
$ cut -d :-f1 /etc/passwd
Cette commande n'affichera que les noms d'utilisateurs du fichier /etc/passwd et ignorera tous les autres champs.
Exemple de résultat :
rootdaemonbinsyssyncgamesmanlpmailnewsuucpproxywww-databackuplistircgnatsnobodysystemd-networksystemd-resolvesyslogmessagebus_aptuuiddavahi-autoipdusbmuxdnsmasqrtkitcups-pk-helperpeech-dispatcherwhoopsiekernoopssanedavahicolordhplipgeocluegnome-initial-setupgdmskDebian-eximpulsesystemdps_synctsRépertorier tous les utilisateurs sous Linux à l'aide de la commande cut
4. Imprimer les utilisateurs sous Linux avec la commande awk
Nous pouvons également utiliser la commande "awk" pour répertorier tous les utilisateurs sous Linux.
$ awk -F' :' '{ print $1}' /etc/passwdCette commande affichera également uniquement les utilisateurs et omettra tous les autres détails.
Répertorier tous les utilisateurs sous Linux à l'aide de la commande awk
5. Voir la liste des utilisateurs avec compgen
Compgen est intégré à BASH pour manipuler les fonctions de complétion programmables.
Pour répertorier tous les utilisateurs utilisant compgen, exécutez :
$ compgen -u6. Afficher tous les utilisateurs à l'aide de la commande getent
Une autre façon de lister les utilisateurs sous Linux est d'utiliser "getent" commande comme ci-dessous :
$ getent passwdCette commande lira le fichier /etc/passwd et listera tous les utilisateurs dans ce fichier.
Répertorier tous les utilisateurs sous Linux à l'aide de la commande awk
Un avantage notable de la commande getent est qu'elle répertorie non seulement les utilisateurs dans le fichier /etc/passwd, mais tous les utilisateurs de tous les backends userdb configurés, par exemple LDAP, sur un système donné.
7. Répertorier les utilisateurs à l'aide des commandes "plus" ou "moins"
Les commandes plus et moins sont utilisées pour ouvrir un fichier donné pour une lecture interactive, permettant le défilement et la recherche.
Pour imprimer tous les utilisateurs utilisant la commande more ou less, exécutez :
$ de plus /etc/passwdOu,
$ de moins /etc/passwdLire connexe :
- Comment répertorier les membres d'un groupe sous Linux
- Comment rechercher des utilisateurs actuellement connectés sous Linux
- Comment surveiller l'activité des utilisateurs sous Linux
- Comment limiter l'accès des utilisateurs au système Linux
- La différence entre plus, moins et la plupart des commandes
- Comment ajouter, supprimer et accorder des privilèges Sudo aux utilisateurs d'Ubuntu
- Comment savoir à quels groupes un utilisateur appartient sous Linux
- La bonne façon de modifier les fichiers /etc/passwd et /etc/group sous Linux
J'espère que cela vous aidera.