C'è un comando per elencare tutti i nomi dei gruppi Unix?

So che c'è il file /etc/group che elenca tutti i gruppi di utenti.

Vorrei sapere se c'è un semplice comando per elencare tutti i nomi dei gruppi di utenti nonostante il parsing del file /etc/group leggibile in tutto il mondo. Sono intenzionato a creare una pagina web di amministratore che elenchi gli account Linux' nomi dei gruppi.

Soluzione

Per elencare tutti i gruppi locali che hanno utenti assegnati a loro, usate questo comando:

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

Per maggiori informazioni; Gruppi Unix, Comando di taglio, comando sort

Commentari (4)

Se vuoi tutti i gruppi noti al sistema, raccomanderei di usare getent invece di analizzare /etc/group. Sui sistemi in rete, i gruppi possono non solo essere letti dal file /etc/group ma anche ottenuti tramite LDAP o Pagine Gialle, cioè la lista dei gruppi conosciuti viene dal file locale dei gruppi più i gruppi ricevuti tramite LDAP o YP.

getent group ti darà una lista di tutti i gruppi nello stesso formato usato dal file /etc/group.

Se vuoi solo i nomi dei gruppi, getent group | cut -d: -f1 farà il lavoro (come sopra).

Commentari (3)

Su Linux, macOS e Unix per visualizzare i gruppi a cui si appartiene, usare:

id -Gn

che è equivalente all'utilità groups che è stata obsoleta su Unix (come da manuale Unix).

Su macOS e Unix, il comando id -p è suggerito per il normale interattivo.

Spiegazione dei parametri:

-G, --groups - stampa tutti gli ID dei gruppi

-n, --name - stampa un nome invece di un numero, per -ugG

-p - rende l'output leggibile all'uomo.

Commentari (5)