Tutti gli utenti in un sistema Linux devono essere membri di almeno un gruppo. Questo gruppo è noto come gruppo primario. Se un utente non ha un gruppo principale, non può accedere. Oltre al gruppo principale, gli utenti possono anche essere membri di gruppi aggiuntivi. L'impostazione del gruppo principale è memorizzata in "/etc/passwd file" . Il nome del gruppo principale è specificato nel 4° campo di questo file. Le impostazioni di altri gruppi (secondari) sono archiviate in "/etc/group" file. Questo tutorial spiega diversi modi per trovare ed elencare tutti i gruppi ed elencare i membri di un gruppo in sistemi operativi simili a Linux e Unix.
Elenca tutti i gruppi in Linux
Prima di elencare tutti gli utenti che appartengono a un gruppo, cerchiamo innanzitutto l'elenco dei gruppi disponibili utilizzando "compgen" comando. Compg è BASH integrato per manipolare le strutture di completamento programmabili.
Per elencare tutti i gruppi disponibili in un sistema Linux, esegui "compgen" comando con -g opzione come di seguito:
$ compgen -g
Risultato di esempio:
root
daemon
bin
sys
adm
tty
disk
lp
news
uucp
man
proxy
.
.
.
nova
rdma
libvirt
libvirt-qemu
libvirt-dnsmasq
cockpit-ws
cockpit-wsinstance
libvirtdbus
root
nogroup
Elenca tutti i gruppi in Linux usando il comando compgen
Puoi anche ottenere l'elenco di tutti i gruppi utilizzando "geent" comando:
$ getent group
Risultato di esempio:
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,sk
tty:x:5:syslog
disk:x:6:sk
lp:x:7:
mail:x:8:
news:x:9:
.
.
.
nova:x:134:
rdma:x:135:
libvirt:x:136:sk,libvirtdbus
libvirt-qemu:x:64055:libvirt-qemu
libvirt-dnsmasq:x:137:
cockpit-ws:x:138:
cockpit-wsinstance:x:139:
libvirtdbus:x:998:
root:x:0:
nogroup:x:65534:
Elenca tutti i gruppi in Linux usando il comando getent
Il primo campo nel file "/etc/group" è il nome del gruppo. Quindi, possiamo usare "awk" o "taglia" comandi per stampare solo il primo campo che contiene il nome del gruppo come di seguito:
$ getent group | awk -F: '{ print $1}'
$ getent group | cut -d: -f1
Se desideri visualizzare i gruppi pagina per pagina, utilizza "altro" o "meno" comando come di seguito:
$ more /etc/group
$ less /etc/group
Ora controlliamo i membri di un gruppo.
Elenca i membri di un gruppo in Linux
Ci sono alcuni modi per trovare i membri del gruppo in Linux. I metodi che abbiamo utilizzato qui per identificare i membri di un gruppo sono riportati di seguito:
- utilizzando il file "/etc/group",
- usando il comando "getent",
- usando il comando "groupmems",
- usando il comando "membri",
- usando il comando "lid".
1. Elenca i membri di un gruppo usando /etc/group file
Quando viene creato un gruppo, le informazioni del gruppo vengono archiviate in "/etc/group" file. Diamo un'occhiata al contenuto di questo file usando "cat" comando:
$ cat /etc/group
Risultato di esempio:
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,sk
tty:x:5:syslog
disk:x:6:sk
lp:x:7:
mail:x:8:
news:x:9:
.
.
.
systemd-coredump:x:999:
nova:x:134:
rdma:x:135:
libvirt:x:136:sk,libvirtdbus
libvirt-qemu:x:64055:libvirt-qemu
libvirt-dnsmasq:x:137:
cockpit-ws:x:138:
cockpit-wsinstance:x:139:
libvirtdbus:x:998:
Visualizza le informazioni sui gruppi Linux
Come accennato in precedenza, il primo campo in "/etc/group" è riservato al nome del gruppo. Come puoi vedere nell'output sopra, un sistema Linux può contenere diversi gruppi.
Per visualizzare i membri di un gruppo specifico in una macchina Linux, usa "grep" comando per filtrare i dettagli del gruppo dal file "/etc/group" come di seguito:
$ grep '^sudo' /etc/group
Oppure,
$ grep -w sudo /etc/group
I comandi precedenti mostrano che gli utenti appartengono al gruppo denominato "sudo" .
sudo:x:27:sk
Elenca i membri di un gruppo in Linux usando il comando grep
Come puoi vedere nell'output sopra, il gruppo "sudo" contiene solo un membro chiamato "sk".
2. Visualizza i membri di un gruppo usando il comando "getent"
Il "gett" il comando visualizza le voci dai database supportati dalle librerie Name Service Switch, che sono configurate in "/etc/nsswitch.conf" file.
Per trovare i membri di un determinato gruppo in Linux usando il comando "geent", esegui:
$ getent group sudo
Questo comando mostra i membri del gruppo "sudo".
Trova i membri di un gruppo in Linux usando il comando getent
Un notevole vantaggio del comando getent è che non solo elenca gli utenti locali ma tutti gli utenti in tutti i backend userdb configurati, ad esempio LDAP, su un dato sistema.
3. Stampa gli utenti in un gruppo usando il comando "groupmems"
I "groupmems" Il comando consente a un utente di amministrare il proprio elenco di appartenenza al gruppo senza privilegi di superutente. Fa parte del pacchetto delle utility shadow.
Per stampare i membri di un gruppo usando il comando "groupmems", esegui:
$ sudo groupmems -g sudo -l
Stampa i membri di un gruppo usando il comando groupmems in Linux
Questo comando ha due inconvenienti. Si occupa solo dei gruppi nel file "/etc/group" ma non di quelli in LDAP o in altri database utente. Richiede anche i privilegi di superutente mentre tenta di aprire "/etc/gshadow" file.
4. Visualizza i membri del gruppo usando il comando "membri"
Come dice esplicitamente il nome, i comandi "members" mostrano fondamentalmente i membri di un gruppo in Linux. Il comando "members" non è disponibile per impostazione predefinita nella maggior parte delle distribuzioni Linux. Devi installarlo usando il gestore di pacchetti della tua distribuzione. Ad esempio, su sistemi basati su Debian, puoi installarlo usando il comando:
$ sudo apt install members
Una volta installato, puoi visualizzare i membri di un determinato gruppo in Linux usando il comando "membri" come di seguito:
$ members sudo
Visualizza i membri del gruppo utilizzando il comando membri in Linux
Per impostazione predefinita, il comando "membri" visualizza tutti gli utenti. Usa -p o -s per visualizzare solo i membri di un gruppo principale o secondario.
5. Elenca tutti gli utenti che appartengono a un gruppo usando il comando "libuser-lid"
Il "libuser-lid" comando utilizzato per visualizzare le informazioni sui gruppi contenenti il nome utente o sugli utenti contenuti nel nome del gruppo.
Anche il comando "libuser-lid" non è disponibile per impostazione predefinita in molte distribuzioni Linux. Il "libuser" fornisce questo comando, quindi è necessario installarlo utilizzando il gestore di pacchetti della distribuzione. Ad esempio, su Debian, Ubuntu, installa il pacchetto "libuser" usando il comando:
$ sudo apt install libuser
Per elencare tutti gli utenti in un gruppo, esegui:
$ sudo libuser-lid -g sudo
Tieni presente che questo comando richiede superutente privilegi per l'esecuzione.
Risultato di esempio:
sk(uid=1000)
Elenca tutti gli utenti in un gruppo in Linux usando il comando libuser-lid
Per maggiori dettagli, fare riferimento alle pagine di manuale del rispettivo comando.
È tutto per ora. Questi sono alcuni metodi diversi per trovare l'elenco degli utenti in un gruppo in Linux. Spero che questo aiuti.
Lettura correlata:
- Come scoprire a quali gruppi appartiene un utente in Linux
- Come elencare tutti gli utenti in Linux