Is er een commando om alle Unix groepsnamen op te sommen?

Ik weet dat er een /etc/group bestand is met een lijst van alle gebruikersgroepen.

Ik zou graag willen weten of er een eenvoudig commando is om een lijst te maken van alle gebruikersgroepen, ondanks dat ik het wereld leesbare /etc/group bestand moet parsen. Ik wil een beheerder webpagina maken die een lijst maakt van Linux accounts' groepsnamen.

Oplossing

Om een lijst te maken van alle lokale groepen waaraan gebruikers zijn toegewezen, gebruikt u dit commando:

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

Voor meer info- > Unix groepen, Cut commando, sorteer commando

Commentaren (4)

Als je alle groepen bekend wilt hebben in het systeem, zou ik aanraden om getent te gebruiken in plaats van /etc/group te parsen. Op netwerk systemen, kunnen groepen niet alleen uit /etc/group bestand gelezen worden, maar ook verkregen via LDAP of Gouden Gids, d.w.z. de lijst van bekende groepen komt uit het lokale groepsbestand plus groepen ontvangen via LDAP of YP.

getent group geeft je een lijst van alle groepen in hetzelfde formaat als het /etc/group bestand gebruikt.

Als je alleen de namen van de groepen wilt hebben, kun je getent group | cut -d: -f1 gebruiken (hetzelfde als hierboven).

Commentaren (3)

Op Linux, macOS en Unix om de groepen weer te geven waartoe u behoort, gebruikt u:

id -Gn

wat gelijkwaardig is aan groups utility die op Unix verouderd is (volgens Unix manual).

Op macOS en Unix, wordt het commando id -p voorgesteld voor normaal interactief.

Uitleg van de parameters:

-G, --groups - print alle groep ID's

-n, --naam - print een naam in plaats van een nummer, voor -ugG

-p - maak de uitvoer menselijk leesbaar.

Commentaren (5)