GNU/Linux >> Linux Esercitazione >  >> Linux

Come elencare i membri di un gruppo in Linux

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
mail
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:

  1. utilizzando il file "/etc/group",
  2. usando il comando "getent",
  3. usando il comando "groupmems",
  4. usando il comando "membri",
  5. 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


Linux
  1. Come Linux è arrivato al mainframe

  2. Come elencare le dipendenze di un pacchetto in Linux

  3. Come aggiungere un utente a un gruppo in Linux

  4. Come elencare tutti gli utenti in un gruppo Linux?

  5. Come posso cancellare l'autorizzazione s su una directory in Linux?

Come elencare i pacchetti installati in Linux

Come elencare le partizioni del disco in Linux

Come elencare gli utenti in Linux

Come trovare l'elenco dei repository installati in Linux

Come elencare i dischi su Linux

Come elencare tutti gli utenti di un gruppo in Linux