Sous Linux, un groupe est un ensemble d'utilisateurs. L'objectif principal des groupes est de définir un ensemble de privilèges tels que des autorisations de lecture, d'écriture ou d'exécution pour une ressource donnée qui peuvent être partagées entre les utilisateurs du groupe. Les utilisateurs peuvent être ajoutés à un groupe existant pour utiliser les privilèges qu'il accorde.
Ce didacticiel explique comment afficher tous les groupes dont un utilisateur est membre. Nous expliquerons également comment lister tous les membres d'un groupe.
Groupes Linux #
Il existe deux types de groupes auxquels un utilisateur peut appartenir :
-
Groupe principal ou groupe de connexion – est le groupe affecté aux fichiers créés par l'utilisateur. Généralement, le nom du groupe principal est le même que le nom de l'utilisateur. Chaque utilisateur doit appartenir à exactement un groupe principal.
-
Groupe secondaire ou complémentaire - utilisé pour accorder certains privilèges à un ensemble d'utilisateurs. Un utilisateur peut être membre de zéro ou plusieurs groupes secondaires.
Répertorier tous les groupes dont un utilisateur est membre #
Il existe plusieurs façons de connaître les groupes auxquels appartient un utilisateur.
Le groupe de l'utilisateur principal est stocké dans le /etc/passwd fichier et les groupes supplémentaires, le cas échéant, sont répertoriés dans le /etc/group fichier.
Une façon de trouver les groupes de l'utilisateur est de lister le contenu de ces fichiers en utilisant cat , less ou grep . Une autre option plus simple consiste à utiliser une commande dont le but est de fournir des informations sur les utilisateurs et les groupes du système.
Utiliser les groups commande #
La commande la plus mémorable pour lister tous les groupes dont un utilisateur est membre est le groups commande. Lorsqu'elle est exécutée sans argument, la commande imprimera une liste de tous les groupes auxquels appartient l'utilisateur actuellement connecté :
groups Le premier groupe est le groupe principal.
john adm cdrom sudo dip plugdev lpadmin sambashare
Pour obtenir une liste de tous les groupes auxquels appartient un utilisateur spécifique, fournissez le nom d'utilisateur aux groups commande en argument :
groups linuxize Comme avant, le premier groupe est le groupe principal.
linuxize : linuxize sudo Utilisation de l'id commande #
L'id La commande affiche des informations sur l'utilisateur spécifié et ses groupes. Si le nom d'utilisateur est omis, il affiche des informations pour l'utilisateur actuel.
Par exemple pour obtenir des informations sur l'utilisateur linuxize vous taperiez :
id linuxize
La commande affichera l'ID utilisateur (uid ), le groupe principal de l'utilisateur (gid ) et les groupes secondaires de l'utilisateur (groups )
uid=1001(linuxize) gid=1001(linuxize) groups=1001(linuxize),27(sudo)
Pour imprimer uniquement les noms au lieu des numéros, utilisez le -n option. Option -g n'imprimera que le groupe primaire et -G tous les groupes.
La commande suivante imprimera les noms des groupes dont l'utilisateur actuel est membre :
id -nG john adm cdrom sudo dip plugdev lpadmin sambashare
Répertorier tous les membres d'un groupe #
Pour lister tous les membres d'un groupe, utilisez le getent group commande suivie du nom du groupe.
Par exemple, pour connaître les membres d'un groupe portant le nom developers vous utiliseriez la commande suivante :
getent group developers Si le groupe existe, la commande imprimera le groupe et tous ses membres :
developers:x:126:frank,mary
S'il n'y a pas de sortie, cela signifie que le groupe n'existe pas.
Répertorier tous les groupes #
Pour voir tous les groupes présents sur le système, ouvrez simplement le /etc/group dossier. Chaque ligne de ce fichier représente des informations pour un groupe.
less /etc/group
Une autre option consiste à utiliser le getent commande qui affiche les entrées des bases de données configurées dans /etc/nsswitch.conf fichier incluant le group base de données que nous pouvons utiliser pour interroger une liste de tous les groupes.
Pour obtenir une liste de tous les groupes, tapez la commande suivante :
getent group
La sortie est la même que lors de l'affichage du contenu de /etc/group dossier. Si vous utilisez LDAP pour l'authentification des utilisateurs, le getent affichera tous les groupes de /etc/group fichier et base de données LDAP.
Vous pouvez également utiliser awk ou cut pour n'imprimer que le premier champ contenant le nom du groupe :
getent group | awk -F: '{ print $1}' getent group | cut -d: -f1 Conclusion #
Dans ce didacticiel, vous avez appris à rechercher les groupes dont un utilisateur est membre. 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.