Tous les utilisateurs d'un système Linux doivent être membres d'au moins un groupe. Ce groupe est appelé groupe principal. Si un utilisateur n'a pas de groupe principal, il ne peut pas se connecter. Outre le groupe principal, les utilisateurs peuvent également être membres de groupes supplémentaires. Le paramètre de groupe principal est stocké dans "/etc/passwd file" . Le nom du groupe principal est spécifié dans le 4e champ de ce fichier. Les paramètres des autres groupes (secondaires) sont stockés dans "/etc/group" dossier. Ce didacticiel explique différentes manières de rechercher et de répertorier tous les groupes et de répertorier les membres d'un groupe dans les systèmes d'exploitation Linux et Unix.
Répertorier tous les groupes sous Linux
Avant de lister tous les utilisateurs appartenant à un groupe, cherchons d'abord la liste des groupes disponibles en utilisant "compgen" commande. Compgen est intégré à BASH pour manipuler les fonctions de complétion programmables.
Pour répertorier tous les groupes disponibles dans un système Linux, exécutez "compgen" commande avec -g comme ci-dessous :
$ compgen -g
Exemple de résultat :
root
daemon
bin
sys
adm
tty
disk
lp
news
uucp
man
proxy
.
.
.
nova
rdma
libvirt
libvirt-qemu
libvirt-dnsmasq
cockpit-ws
cockpit-wsinstance
libvirtdbus
root
nogroup

Répertorier tous les groupes sous Linux à l'aide de la commande compgen
Vous pouvez également obtenir la liste de tous les groupes en utilisant "getent" commande :
$ getent group
Exemple de résultat :
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,sk
tty:x:5:syslog
disk:x:6:sk
lp:x:7:
mail:x:8:
news:x:9:
.
.
.
nova:x:134:
rdma:x:135:
libvirt:x:136:sk,libvirtdbus
libvirt-qemu:x:64055:libvirt-qemu
libvirt-dnsmasq:x:137:
cockpit-ws:x:138:
cockpit-wsinstance:x:139:
libvirtdbus:x:998:
root:x:0:
nogroup:x:65534:

Répertorier tous les groupes sous Linux à l'aide de la commande getent
Le premier champ du fichier "/etc/group" est le nom du groupe. Donc, nous pouvons utiliser "awk" ou "couper" commandes pour imprimer uniquement le premier champ contenant le nom du groupe comme ci-dessous :
$ getent group | awk -F: '{ print $1}'
$ getent group | cut -d: -f1
Si vous souhaitez afficher les groupes page par page, utilisez "plus" ou "moins" commande comme ci-dessous :
$ more /etc/group
$ less /etc/group
Maintenant, vérifions les membres d'un groupe.
Répertorier les membres d'un groupe sous Linux
Il existe plusieurs façons de trouver les membres du groupe sous Linux. Les méthodes que nous avons utilisées ici pour identifier les membres d'un groupe sont données ci-dessous :
- en utilisant le fichier "/etc/group",
- à l'aide de la commande "getent",
- à l'aide de la commande "groupmems",
- à l'aide de la commande "membres",
- en utilisant la commande "lid".
1. Lister les membres d'un groupe en utilisant le fichier /etc/group
Lorsqu'un groupe est créé, les informations du groupe sont stockées dans le "/etc/group" dossier. Examinons le contenu de ce fichier en utilisant "cat" commande :
$ cat /etc/group
Exemple de résultat :
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,sk
tty:x:5:syslog
disk:x:6:sk
lp:x:7:
mail:x:8:
news:x:9:
.
.
.
systemd-coredump:x:999:
nova:x:134:
rdma:x:135:
libvirt:x:136:sk,libvirtdbus
libvirt-qemu:x:64055:libvirt-qemu
libvirt-dnsmasq:x:137:
cockpit-ws:x:138:
cockpit-wsinstance:x:139:
libvirtdbus:x:998:

Afficher les informations sur les groupes Linux
Comme je l'ai mentionné précédemment, le premier champ dans "/etc/group" est réservé au nom du groupe. Comme vous pouvez le voir dans la sortie ci-dessus, un système Linux peut contenir plusieurs groupes.
Pour afficher les membres d'un groupe spécifique sur une machine Linux, utilisez "grep" commande pour filtrer les détails du groupe à partir du fichier "/etc/group" comme ci-dessous :
$ grep '^sudo' /etc/group
Ou,
$ grep -w sudo /etc/group
Les commandes ci-dessus affichent les utilisateurs appartenant au groupe nommé "sudo" .
sudo:x:27:sk

Répertorier les membres d'un groupe sous Linux à l'aide de la commande grep
Comme vous le voyez dans la sortie ci-dessus, le groupe "sudo" ne contient qu'un seul membre nommé "sk".
2. Afficher les membres d'un groupe à l'aide de la commande "getent"
Le "getent" La commande affiche les entrées des bases de données prises en charge par les bibliothèques Name Service Switch, qui sont configurées dans "/etc/nsswitch.conf" fichier.
Pour trouver les membres d'un groupe donné sous Linux à l'aide de la commande "getent", exécutez :
$ getent group sudo
Cette commande affiche les membres du groupe "sudo".

Trouver les membres d'un groupe sous Linux à l'aide de la commande getent
Un avantage notable de la commande getent est qu'elle répertorie non seulement les utilisateurs locaux, mais tous les utilisateurs de tous les backends userdb configurés, par exemple LDAP, sur un système donné.
3. Imprimer les utilisateurs d'un groupe à l'aide de la commande "groupmems"
Les "groupmems" La commande permet à un utilisateur d'administrer sa propre liste d'appartenance à un groupe sans privilèges de superutilisateur. Il fait partie du package shadow utils.
Pour imprimer les membres d'un groupe à l'aide de la commande "groupmems", exécutez :
$ sudo groupmems -g sudo -l

Imprimer les membres d'un groupe à l'aide de la commande groupmems sous Linux
Cette commande a deux inconvénients. Il ne traite que des groupes dans le fichier "/etc/group" mais pas ceux de LDAP ou d'autres bases de données d'utilisateurs. Il nécessite également des privilèges de superutilisateur car il essaie d'ouvrir "/etc/gshadow" fichier.
4. Afficher les membres du groupe à l'aide de la commande "members"
Comme son nom l'indique explicitement, les commandes "members" affichent essentiellement les membres d'un groupe sous Linux. La commande "members" n'est pas disponible par défaut dans la plupart des distributions Linux. Vous devez l'installer à l'aide du gestionnaire de packages de votre distribution. Par exemple, sur les systèmes basés sur Debian, vous pouvez l'installer à l'aide de la commande :
$ sudo apt install members
Une fois installé, vous pouvez afficher les membres d'un groupe donné sous Linux en utilisant la commande "members" comme ci-dessous :
$ members sudo

Afficher les membres du groupe à l'aide de la commande members sous Linux
Par défaut, la commande "members" affiche tous les utilisateurs. Utilisez -p ou -s pour n'afficher que les membres d'un groupe principal ou d'un groupe secondaire.
5. Répertoriez tous les utilisateurs appartenant à un groupe à l'aide de la commande "libuser-lid"
Le "libuser-lid" commande utilisée pour afficher des informations sur les groupes contenant le nom d'utilisateur ou les utilisateurs contenus dans le nom du groupe.
La commande "libuser-lid" n'est pas non plus disponible par défaut dans de nombreuses distributions Linux. Le "libuser" fournit cette commande, vous devez donc l'installer à l'aide du gestionnaire de packages de votre distribution. Par exemple, sur Debian, Ubuntu, installez le package "libuser" à l'aide de la commande :
$ sudo apt install libuser
Pour répertorier tous les utilisateurs d'un groupe, exécutez :
$ sudo libuser-lid -g sudo
Veuillez noter que cette commande nécessite un superutilisateur privilèges d'exécution.
Exemple de résultat :
sk(uid=1000)

Répertorier tous les utilisateurs d'un groupe sous Linux à l'aide de la commande libuser-lid
Pour plus de détails, reportez-vous aux pages de manuel de la commande respective.
C'est tout pour le moment. Voici quelques méthodes différentes pour trouver la liste des utilisateurs d'un groupe sous Linux. J'espère que cela vous aidera.
Lire connexe :
- Comment savoir à quels groupes un utilisateur appartient sous Linux
- Comment répertorier tous les utilisateurs sous Linux