Un gruppo Linux è una raccolta di uno o più utenti con requisiti di autorizzazione identici su file e directory. Un utente può essere un membro di più di un gruppo alla volta. In Linux, le informazioni di ogni gruppo sono archiviate in "/etc/group" file. In questo tutorial, vedremo tutti i modi possibili per scoprire facilmente a quali gruppi appartiene un utente nei sistemi operativi Linux e simili a Unix.
Scoprire i gruppi a cui appartiene un account utente sarà utile in molte occasioni. Ad esempio, l'altro giorno stavo installando Dropbox sul mio server Ubuntu . Durante la configurazione di Dropbox, ho dovuto inserire il mio nome utente corrente e il nome del gruppo. Potresti anche trovarti in una situazione in cui devi identificare i gruppi a cui appartiene un utente. In tal caso, utilizza uno dei seguenti metodi per sapere in quale gruppo si trova un utente.
Scopri a quali gruppi appartiene un utente in Linux
Esistono molti modi per elencare i gruppi di cui un utente Linux è membro. Il metodo più comunemente utilizzato è l'utilizzo di gruppi comando.
Metodo 1 - comando gruppi
I gruppi comando visualizza i nomi dei gruppi correnti e gli utenti appartengono a quei gruppi nei sistemi operativi Linux e simili a Unix.
Per prima cosa, scopriamo quanti gruppi ci sono nel nostro sistema Linux.
Per trovare l'elenco dei disponibili in Linux, esegui i gruppi comando senza argomenti come di seguito:
$ groups
Risultato di esempio:
sk adm disk cdrom sudo dip plugdev lpadmin sambashare kvm libvirt vboxusers
Elenca i gruppi disponibili in Linux
Come puoi vedere nell'output sopra, ci sono attualmente 12 gruppi nel mio sistema.
Ora scopri in quali gruppi un utente specifico, ad esempio sk , appartiene a. Per fare ciò, inserisci il comando "gruppi" seguito dal nome utente come di seguito:
$ groups sk
Risultato di esempio:
sk : sk adm disk cdrom sudo dip plugdev lpadmin sambashare vboxusers kvm libvirt
Scopri a quali gruppi appartiene un utente in Linux usando il comando groups
Qui, sk è il mio nome utente e l'utente sk è il membro di tutti i gruppi di cui sopra. Potresti aver notato che "sk" è elencato due volte. Perché ho usato lo stesso nome sia per il nome utente che per il nome del gruppo.
Per maggiori dettagli sul comando "gruppi", fare riferimento alle pagine di manuale.
$ man groups
Metodo 2 - comando id
Un altro modo per identificare i gruppi in cui si trova un utente è utilizzare "id" comando. Il comando id viene utilizzato per stampare le informazioni sull'utente e sul gruppo per l'UTENTE specificato. Se l'UTENTE non è specificato, stamperà le informazioni per l'utente corrente.
Per identificare tutti i gruppi a cui appartiene un utente usando il comando "id", esegui:
$ id sk
Sostituisci sk con il tuo nome utente.
Risultato di esempio:
uid=1000(sk) gid=1000(sk) groups=1000(sk),4(adm),6(disk),24(cdrom),27(sudo),30(dip),46(plugdev),116(lpadmin),126(sambashare),1001(vboxusers),129(kvm),136(libvirt)
Scopri a quali gruppi appartiene un utente in Linux usando il comando id
Come puoi vedere qui, il comando id non solo elenca i gruppi di cui è membro l'utente, ma anche l'id del gruppo e l'id utente (UID e GID) dell'utente specificato e dei gruppi. Ha un output più dettagliato rispetto al comando "groups", quindi se hai bisogno dell'id gruppo/id utente usa questo!
Se non vuoi stampare i numeri, usa semplicemente -Gn segnala come di seguito:
$ id -Gn sk sk adm disk cdrom sudo dip plugdev lpadmin sambashare vboxusers kvm libvirt
Per maggiori dettagli, fare riferimento alle pagine man.
$ man id
Metodo 3:utilizzo del file "/etc/group"
Come ho già affermato, il /etc/group file contiene le informazioni su ciascun gruppo in un sistema Linux. Puoi trovare a quali gruppi appartiene l'utente specificato dai contenuti di /etc/group file con l'aiuto di "grep" comando come mostrato di seguito:
$ grep sk /etc/group
Risultato di esempio:
adm:x:4:syslog,sk disk:x:6:sk cdrom:x:24:sk sudo:x:27:sk dip:x:30:sk plugdev:x:46:sk lpadmin:x:116:sk sk:x:1000: sambashare:x:126:sk vboxusers:x:1001:sk kvm:x:129:sk libvirt:x:136:sk,libvirtdbus
Se vuoi escludere gli ID del gruppo e il nome utente e visualizzare solo i nomi dei gruppi, reindirizza l'output del comando "grep" a "awk" comando come di seguito:
$ grep sk /etc/group | awk -F: '{ print $1 }'
Risultato di esempio:
adm disk cdrom sudo dip plugdev lpadmin sk sambashare vboxusers kvm libvirt
Trova a quali gruppi appartiene un utente in Linux usando i comandi grep e awk
Metodo 4 - 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.
Possiamo elencare tutti i gruppi disponibili e i loro membri in un sistema Linux usando il comando getent come di seguito:
$ getent group
Per trovare a quali gruppi appartiene un utente specifico (ad es. sk), esegui:
$ getent group | grep sk
Risultato di esempio:
adm:x:4:syslog,sk disk:x:6:sk cdrom:x:24:sk sudo:x:27:sk dip:x:30:sk plugdev:x:46:sk lpadmin:x:116:sk sk:x:1000: sambashare:x:126:sk vboxusers:x:1001:sk kvm:x:129:sk libvirt:x:136:sk,libvirtdbus
Se vuoi visualizzare solo i gruppi escludendo tutti gli altri dettagli, filtra l'output con i comandi "grep" e "awk" come di seguito:
$ getent group | grep sk | awk -F: '{ print $1 }' adm disk cdrom sudo dip plugdev lpadmin sk sambashare vboxusers kvm libvirt
Trova a quali gruppi appartiene un utente in Linux usando i comandi getent, grep e awk
Elenca tutti gli utenti che appartengono a un gruppo in Linux
Possiamo anche trovare l'elenco di tutti gli utenti che appartengono a un gruppo specifico. Ad esempio, il comando seguente mostra gli utenti che appartengono al gruppo denominato storage .
$ grep -w storage /etc/group storage:x:95:sk
Facile, vero? Infatti. Trovare a quali gruppi appartiene un utente e gli utenti di un gruppo specifico è semplicissimo!!
Lettura correlata:
- Come elencare i membri di un gruppo in Linux
- Come trovare tutti gli utenti Sudo nel tuo sistema Linux
Questo aiuta.