GNU/Linux >> Znalost Linux >  >> Linux

Jak vypsat seznam členů skupiny v Linuxu

Všichni uživatelé v systému Linux musí být členy alespoň jedné skupiny. Tato skupina je známá jako primární skupina. Pokud uživatel nemá primární skupinu, nemůže se přihlásit. Kromě primární skupiny mohou být uživatelé také členy dalších skupin. Nastavení primární skupiny je uloženo v souboru/etc/passwd . Název primární skupiny je uveden ve 4. poli tohoto souboru. Nastavení ostatních (sekundárních) skupin jsou uložena v "/etc/group" soubor. Tento tutoriál vysvětluje různé způsoby, jak najít a vypsat všechny skupiny a vypsat seznam členů skupiny v operačních systémech Linux a Unix.

Seznam všech skupin v Linuxu

Před uvedením všech uživatelů patřících do skupiny nejprve najdeme seznam dostupných skupin pomocí "compgen" příkaz. Compgen je vestavěný BASH k manipulaci s programovatelnými dokončovacími zařízeními.

Chcete-li zobrazit seznam všech dostupných skupin v systému Linux, spusťte "compgen" pomocí -g možnost jako níže:

$ compgen -g

Ukázkový výstup:

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

Vypište všechny skupiny v Linuxu pomocí příkazu compgen

Seznam všech skupin můžete získat také pomocí "getent" příkaz:

$ getent group

Ukázkový výstup:

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:

Vypište všechny skupiny v Linuxu pomocí příkazu getent

První pole v souboru "/etc/group" je název skupiny. Můžeme tedy použít "awk" nebo "vystřihnout" příkazy vytisknou pouze první pole, které obsahuje název skupiny, jak je uvedeno níže:

$ getent group | awk -F: '{ print $1}'
$ getent group | cut -d: -f1

Pokud chcete zobrazit skupiny stránku po stránce, použijte „více“ nebo „méně“ příkaz jako níže:

$ more /etc/group 
$ less /etc/group 

Nyní se podívejme na členy skupiny.

Seznam členů skupiny v Linuxu

Existuje několik způsobů, jak najít členy skupiny v Linuxu. Metody, které jsme zde použili k identifikaci členů skupiny, jsou uvedeny níže:

  1. pomocí souboru „/etc/group“,
  2. pomocí příkazu „getent“,
  3. pomocí příkazu „groupmems“,
  4. pomocí příkazu "members",
  5. pomocí příkazu "lid".

1. Seznam členů skupiny pomocí /etc/group file

Po vytvoření skupiny se informace o skupině uloží do "/etc/group" soubor. Pojďme se podívat na obsah tohoto souboru pomocí "cat" příkaz:

$ cat /etc/group

Ukázkový výstup:

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:

Zobrazení informací o skupinách Linux

Jak jsem již zmínil, první pole v "/etc/group" je vyhrazeno pro název skupiny. Jak můžete vidět ve výše uvedeném výstupu, systém Linux může obsahovat několik skupin.

Chcete-li zobrazit členy konkrétní skupiny v počítači se systémem Linux, použijte "grep" příkaz k filtrování podrobností skupiny ze souboru "/etc/group" jako níže:

$ grep '^sudo' /etc/group

Nebo,

$ grep -w sudo /etc/group

Výše uvedené příkazy zobrazí uživatele patřící do skupiny s názvem "sudo" .

sudo:x:27:sk

Seznam členů skupiny v Linuxu pomocí příkazu grep

Jak vidíte ve výše uvedeném výstupu, skupina "sudo" obsahuje pouze jednoho člena s názvem "sk".

2. Zobrazte členy skupiny pomocí příkazu „getent“

"gettent" příkaz zobrazí položky z databází podporovaných knihovnami Name Service Switch, které jsou konfigurovány v "/etc/nsswitch.conf" soubor.

Chcete-li najít členy dané skupiny v Linuxu pomocí příkazu "getent", spusťte:

$ getent group sudo

Tento příkaz zobrazí členy skupiny "sudo".

Najděte členy skupiny v Linuxu pomocí příkazu getent

Jednou významnou výhodou příkazu getent je, že nejen uvádí místní uživatele, ale všechny uživatele ve všech nakonfigurovaných backendech userdb, například LDAP, na daném systému.

3. Tisk uživatelů ve skupině pomocí příkazu "groupmems"

"groupmems" umožňuje uživateli spravovat vlastní seznam členství ve skupině bez oprávnění superuživatele. Je součástí balíčku shadow utils.

Chcete-li vytisknout členy skupiny pomocí příkazu "groupmems", spusťte:

$ sudo groupmems -g sudo -l

Vytiskněte členy skupiny pomocí příkazu groupmems v Linuxu

Tento příkaz má dvě nevýhody. Zabývá se pouze skupinami v souboru "/etc/group", ale ne těmi v LDAP nebo jiných uživatelských databázích. Při pokusu o otevření "/etc/gshadow" také vyžaduje oprávnění superuživatele soubor.

4. Zobrazte členy skupiny pomocí příkazu "členové"

Jak název výslovně napovídá, příkazy "members" v podstatě zobrazují členy skupiny v Linuxu. Příkaz "members" není ve výchozím nastavení k dispozici ve většině distribucí Linuxu. Musíte jej nainstalovat pomocí správce balíčků vaší distribuce. Například na systémech založených na Debianu jej můžete nainstalovat pomocí příkazu:

$ sudo apt install members

Po instalaci můžete zobrazit členy dané skupiny v Linuxu pomocí příkazu "members" jako níže:

$ members sudo

Zobrazte členy skupiny pomocí příkazu members v Linuxu

Ve výchozím nastavení příkaz "členové" zobrazuje všechny uživatele. Použijte -p nebo -s pro zobrazení pouze členů primární skupiny nebo sekundární skupiny.

5. Seznam všech uživatelů patřících do skupiny pomocí příkazu "libuser-lid"

"libuser-lid" příkaz používaný k zobrazení informací o skupinách obsahujících uživatelské jméno nebo uživatelích obsažených v názvu skupiny.

Příkaz "libuser-lid" také není standardně dostupný v mnoha distribucích Linuxu. "libuser" poskytuje tento příkaz, takže jej musíte nainstalovat pomocí správce balíčků vaší distribuce. Například na Debianu, Ubuntu nainstalujte balíček "libuser" pomocí příkazu:

$ sudo apt install libuser

Chcete-li vypsat všechny uživatele ve skupině, spusťte:

$ sudo libuser-lid -g sudo

Upozorňujeme, že tento příkaz vyžaduje superuživatele oprávnění ke spuštění.

Ukázkový výstup:

 sk(uid=1000)

Vypište všechny uživatele ve skupině v Linuxu pomocí příkazu libuser-lid

Další podrobnosti naleznete na stránkách manuálu příslušného příkazu.

To je prozatím vše. Toto je několik různých metod, jak najít seznam uživatelů ve skupině v Linuxu. Doufám, že to pomůže.

Související čtení:

  • Jak zjistit, do kterých skupin uživatel v Linuxu patří
  • Jak vypsat seznam všech uživatelů v systému Linux


Linux
  1. Jak se Linux dostal k sálovému počítači

  2. Jak přidat uživatele do skupiny v Linuxu

  3. Seznam členů skupiny v Linuxu

  1. Jak vypsat seznam závislostí balíčku v Linuxu

  2. Jak vypsat všechny uživatele ve skupině Linuxu?

  3. Jak vymažu oprávnění s k adresáři v Linuxu?

  1. Jak používat příkaz Linux SS

  2. Jak vypsat seznam uživatelů v Linuxu

  3. Jak zobrazím členy skupiny?