Existe-t-il une commande pour répertorier tous les noms de groupe Unix? [fermé]

615

Je sais qu'il y a le /etc/groupfichier qui répertorie tous les groupes d'utilisateurs.

Je voudrais savoir s'il existe une commande simple pour répertorier tous les noms de groupes d'utilisateurs malgré l'analyse du /etc/groupfichier lisible dans le monde . Je suis prêt à créer une page Web d'administrateur qui répertorie les noms de groupe des comptes Linux.

cavila
la source
6
Jusqu'à présent, il a essayé stackoverflow.com/questions/14059916/…
ott--
2
"Je souhaite créer une page Web qui répertorie les utilisateurs de Linux" - quel problème essayez-vous de résoudre? Cela ressemble à quelque chose qui peut causer des problèmes de sécurité (exposer la liste des utilisateurs, exposer les informations d'identification).
J'essayais de donner un exemple simple. Je voudrais ouvrir une "page Web du système administrateur pour répertorier les noms de comptes Linux actuels". Sous Linux, je pouvais trouver des commandes pour ajouter un utilisateur, supprimer un utilisateur, changer un utilisateur, trouver les groupes d'un utilisateur donné mais je n'ai pas trouvé de commande pour rechercher un utilisateur par fragment de nom. Je pense que la question n'est pas si hors de propos. Tout ce que je pouvais faire pour me souvenir d'un compte de groupe Linux était de faire une recherche sur le fichier / etc / group
cavila

Réponses:

871

Pour répertorier tous les groupes locaux auxquels des utilisateurs sont affectés, utilisez cette commande:

cut -d: -f1 /etc/group | sort

Pour plus d' info-> groupes Unix , commande Cut , commande de tri

Arpit
la source
3
Oui MichaelIT a raison, la commande groups n'a pas répertorié tous les groupes. J'ai posé cette question parce que je ne sais pas s'il existe une commande simple comme des groupes pour répertorier tous les noms de groupes ou même un swith à elle comme des groupes [-a | --all] pour répertorier tous les groupes du système sans faire d'analyse de fichiers.
cavila
1
ok donc pour l'instant la réponse est NON. Besoin d'utiliser l'édition de texte pour filtrer le fichier de groupe.
cavila
3
Qu'est-ce que "cut -d: -f1"?
zed
5
@zed cutest une autre commande qui extrait la colonne spécifique d'une entrée. Ici, j'extrais le champ 1 où les champs sont délimités par:
Arpit
267

Si vous voulez que tous les groupes soient connus du système, je recommanderais d'utiliser getent groupau lieu d'analyser /etc/group:

getent group

La raison en est que sur les systèmes en réseau, les groupes peuvent non seulement lire à partir du /etc/groupfichier, mais également être obtenus via LDAP ou Pages Jaunes (la liste des groupes connus provient du fichier de groupe local et des groupes reçus via LDAP ou YP dans ces cas).

Si vous souhaitez uniquement les noms de groupe, vous pouvez utiliser:

getent group | cut -d: -f1
dasup
la source
7
Pour certaines utilisations, une liste triée des noms de groupe peut être préférable:getent group | cut -d: -f1 | sort
user1364368
2
Si des lignes numérotées sont souhaitables, faites-le getent group | cut -d: -f1 | sort | cat -n.
MLC
excellent point pour les systèmes en réseau comme LDAP!
Maziyar
50

Sous Linux, macOS et Unix pour afficher les groupes auxquels vous appartenez, utilisez:

id -Gn

qui est équivalent à l' groupsutilitaire qui a été obsolète sur Unix (selon le manuel Unix ).

Sur macOS et Unix, la commande id -pest suggérée pour une interaction normale.

Explication des paramètres:

-G, --groups- imprimer tous les identifiants de groupe

-n, --name- imprime un nom au lieu d'un nombre, par-ugG

-p - Rendez la sortie lisible par l'homme.

kenorb
la source
10
Et id -Gn someusernamerenvoie la liste des groupes pour l'utilisateur spécifié.
sinistre
6
id -Gnz | xargs -0 -I% echo %listera chaque groupe sur une ligne distincte. Ceci est utile si les noms de groupe contiennent des espaces.
Mark Lakata
1
Comment est groupsobsolète? Des sources? J'ai recherché "commande de groupes unix obsolète" mais je n'ai rien trouvé.
Franklin Yu
1
@FranklinYu C'est dans la page de manuel BSD pourgroups .
kenorb
3
Répondez à la question d'origine concernant les groupes en dehors de l'utilisateur actuel.
Nay