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.
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
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).
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.