Skupiny Linuxu jsou kolekce uživatelů. Jsou určeny ke snadnému poskytování oprávnění skupině uživatelů. V tomto tutoriálu se podíváme na různé způsoby, jak vypsat seznam všech skupin v Linuxu.
2 způsoby, jak zobrazit seznam všech skupin v Linuxu
- soubor /etc/group
- příkaz gettent
1. /etc/group
Soubor /etc/group obsahuje všechny místní skupiny. Můžeme tedy otevřít tento soubor a podívat se na všechny skupiny.
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: ...

Pokud hledáte konkrétní skupinu, pak ji pomocí příkazu grep odfiltrujte.
root@localhost:~# cat /etc/group | grep sudo sudo:x:27:journaldev,test root@localhost:~#
2. příkaz getent
Linux getent příkaz načte položky z databází podporovaných knihovnami přepínání služeb názvů. Můžeme jej použít k získání všech informací o skupinách z databáze skupin.
root@localhost:~# getent group root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4:syslog tty:x:5: ...

Podívejme se na několik dalších příkladů výpisu všech skupin v Linuxu.
Linux vypíše všechny názvy skupin
Pomocí příkazu cut můžeme vytisknout pouze názvy skupin. To je užitečné, když hledáme přítomnost konkrétního názvu skupiny ve skriptu shellu.
root@localhost:~# cut -d: -f1 /etc/group root daemon bin sys adm tty ...

Můžeme také použít příkaz cut s příkazem getent.
root@localhost:~# getent group | cut -d: -f1 root daemon bin sys adm tty disk ...

Příkaz cut rozdělí každý řádek pomocí oddělovače dvojtečkou (:). Poté se pomocí volby -f1 vybere první pole, což je název skupiny.
Výpis všech názvů skupin v abecedním pořadí
Výstup výše uvedených příkazů lze předat příkazu sort, aby se výstup vytiskl v přirozeném pořadí řazení.
root@localhost:~# getent group | cut -d: -f1 | sort adm audio backup bin cdrom crontab daemon ...

Počet všech linuxových skupin
Pokud vás zajímá počet linuxových skupin, použijte následující příkazy.
root@localhost:~# cat /etc/group | grep -c "" 68 root@localhost:~# getent group | grep -c "" 68 root@localhost:~#

Vypsat všechny skupiny uživatele
Můžeme použít příkaz groups k získání všech skupin uživatele.
root@localhost:~# groups journaldev journaldev : journaldev sudo test_users test_users_pwd root@localhost:~# root@localhost:~# groups root root : root root@localhost:~#

Vypsat skupiny aktuálního uživatele
Pokud spustíte příkaz groups bez jakéhokoli vstupu uživatele, vytiskne se skupiny aktuálního uživatele.
root@localhost:~# groups root root@localhost:~# su - journaldev journaldev@localhost:~$ groups journaldev sudo test_users test_users_pwd journaldev@localhost:~$

Vypsat uživatelské skupiny spolu s ID skupiny
K vytištění informací o uživateli můžeme použít příkaz id. Tento příkaz vypíše všechny skupiny spolu s jejich ID skupiny.
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:~#

Seznam všech uživatelů skupiny
Můžeme použít příkaz getent nebo soubor /etc/groups k získání všech uživatelů, kteří patří do skupiny.
root@localhost:~# getent group sudo sudo:x:27:journaldev,test root@localhost:~# root@localhost:~# getent group sudo | cut -d: -f4 journaldev,test root@localhost:~#

Závěr
K získání všech podrobností o skupinách Linuxu lze použít příkaz getent a soubor /etc/group. Můžeme je použít spolu s příkazy cut and sort, abychom prezentovali výstup lepším způsobem.
Odkazy
- manuálovou stránku gettent
- vyjmout manuálovou stránku příkazu