Android

Comment lister des groupes sous Linux

Bash Linux #2 - Gestion des utilisateurs

Bash Linux #2 - Gestion des utilisateurs

Table des matières:

Anonim

Sous Linux, un groupe est une collection d'utilisateurs. L'objectif principal des groupes est de définir un ensemble de privilèges tels que les 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 répertorier 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. Habituellement, 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 supplémentaire - utilisé pour accorder certains privilèges à un ensemble d'utilisateurs. Un utilisateur peut être membre de zéro ou plusieurs groupes secondaires.

Liste de tous les groupes dont un utilisateur est membre

Il existe plusieurs façons de découvrir les groupes auxquels appartient un utilisateur.

Le groupe de l'utilisateur principal est stocké dans le fichier /etc/passwd et les groupes supplémentaires, le cas échéant, sont répertoriés dans le fichier /etc/group .

Une façon de trouver les groupes d'utilisateurs est de répertorier 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.

Utilisation de la commande groups

La commande la plus mémorable pour répertorier tous les groupes dont un utilisateur est membre est la commande groups . Lorsqu'elle est exécutée sans argument, la commande affichera une liste de tous les groupes auxquels l'utilisateur actuellement connecté appartient:

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 à la commande groups comme argument:

groups linuxize

Comme avant, le premier groupe est le groupe principal.

linuxize: linuxize sudo

Utilisation de la commande id

La commande id imprime 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 devez taper:

id linuxize

La commande affichera le nom d'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 sans les ID utilisateur et groupe, utilisez l'option -n . L'option -g imprime uniquement le groupe principal et -G tous les groupes.

La commande suivante affichera les noms des groupes dont l'utilisateur actuel est membre:

id -nG

john adm cdrom sudo dip plugdev lpadmin sambashare

Lister tous les membres d'un groupe

Pour répertorier tous les membres d'un groupe, utilisez la commande getent group suivie du nom du groupe.

Par exemple, pour trouver les membres d'un groupe avec les developers noms, 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.

Lister tous les groupes

Pour afficher tous les groupes présents sur le système, ouvrez simplement le fichier /etc/group . Chaque ligne de ce fichier représente des informations pour un groupe.

less /etc/group

Une autre option consiste à utiliser la commande getent qui affiche les entrées des bases de données configurées dans le fichier /etc/nsswitch.conf , y compris la base de données de group 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 du fichier /etc/group . Si vous utilisez LDAP pour l'authentification des utilisateurs, le getent affichera tous les groupes du fichier /etc/group et de la base de données LDAP.

Vous pouvez également utiliser awk ou cut pour imprimer uniquement 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 à toute distribution Linux, y compris Ubuntu, CentOS, RHEL, Debian et Linux Mint.

N'hésitez pas à laisser un commentaire si vous avez des questions.

Terminal