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.