I gruppi Linux sono una raccolta di utenti. Hanno lo scopo di fornire facilmente privilegi a un gruppo di utenti. In questo tutorial, esamineremo vari modi per elencare tutti i gruppi in Linux.
2 modi per elencare tutti i gruppi in Linux
- /etc/file di gruppo
- comando getent
1. /etc/file di gruppo
Il file /etc/group contiene tutti i gruppi locali. Quindi, possiamo aprire questo file e guardare tutti i gruppi.
root@localhost:~# cat /etc/group root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4:syslog tty:x:5: disk:x:6: lp:x:7: mail:x:8: news:x:9: ...

Se stai cercando un gruppo specifico, usa il comando grep per filtrarlo.
root@localhost:~# cat /etc/group | grep sudo sudo:x:27:journaldev,test root@localhost:~#
2. comando get
Linux getting comando recupera le voci dai database supportati dalle librerie Name Service Switch. Possiamo usarlo per ottenere tutte le informazioni sui gruppi dal database del gruppo.
root@localhost:~# getent group root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4:syslog tty:x:5: ...

Diamo un'occhiata ad altri esempi di elenco di tutti i gruppi in Linux.
Linux elenca tutti i nomi dei gruppi
Possiamo usare il comando cut per stampare solo i nomi dei gruppi. Questo è utile quando cerchiamo la presenza di un nome di gruppo specifico in uno script di shell.
root@localhost:~# cut -d: -f1 /etc/group root daemon bin sys adm tty ...

Possiamo usare anche il comando cut con il comando getent.
root@localhost:~# getent group | cut -d: -f1 root daemon bin sys adm tty disk ...

Il comando taglia divide ogni riga usando il delimitatore due punti (:). Quindi il primo campo, che è il nome del gruppo, viene selezionato utilizzando l'opzione -f1.
Elencare tutti i nomi dei gruppi in ordine alfabetico
L'output dei comandi precedenti può essere passato al comando sort per stampare l'output in un ordinamento naturale.
root@localhost:~# getent group | cut -d: -f1 | sort adm audio backup bin cdrom crontab daemon ...

Conteggio di tutti i gruppi Linux
Se sei interessato al conteggio dei gruppi Linux, usa i seguenti comandi.
root@localhost:~# cat /etc/group | grep -c "" 68 root@localhost:~# getent group | grep -c "" 68 root@localhost:~#

Elenca tutti i gruppi di un utente
Possiamo usare il comando gruppi per ottenere tutti i gruppi di un utente.
root@localhost:~# groups journaldev journaldev : journaldev sudo test_users test_users_pwd root@localhost:~# root@localhost:~# groups root root : root root@localhost:~#

Elenca i gruppi dell'utente corrente
Se esegui il comando gruppi senza alcun input da parte dell'utente, verranno stampati i gruppi dell'utente corrente.
root@localhost:~# groups root root@localhost:~# su - journaldev journaldev@localhost:~$ groups journaldev sudo test_users test_users_pwd journaldev@localhost:~$

Elenca i gruppi di utenti insieme all'ID gruppo
Possiamo usare il comando id per stampare le informazioni sull'utente. Questo comando elenca tutti i gruppi insieme al loro ID gruppo.
root@localhost:~# id journaldev uid=1002(journaldev) gid=1003(journaldev) groups=1003(journaldev),27(sudo),1004(test_users),1007(test_users_pwd) root@localhost:~# root@localhost:~# id root uid=0(root) gid=0(root) groups=0(root) root@localhost:~#

Elenca tutti gli utenti di un gruppo
Possiamo usare il comando getent o il file /etc/groups per ottenere tutti gli utenti che appartengono a un gruppo.
root@localhost:~# getent group sudo sudo:x:27:journaldev,test root@localhost:~# root@localhost:~# getent group sudo | cut -d: -f4 journaldev,test root@localhost:~#

Conclusione
Il comando getent e il file /etc/group possono essere usati per ottenere tutti i dettagli dei gruppi Linux. Possiamo usarli insieme al comando taglia e ordina per presentare l'output in un modo migliore.
Riferimenti
- Pagina man di getent
- Taglia la pagina man del comando