Linuxová skupina je kolekce jednoho nebo více uživatelů se stejnými požadavky na oprávnění k souborům a adresářům. Uživatel může být členem více než skupiny najednou. V Linuxu jsou informace o každé skupině uloženy v "/etc/group" soubor. V tomto tutoriálu uvidíme všechny možné způsoby, jak snadno zjistit, do kterých skupin uživatel patří v operačních systémech Linux a Unix.
Zjištění skupin, do kterých uživatelský účet patří, bude v mnoha případech užitečné. Nedávno jsem například instaloval Dropbox na svůj server Ubuntu . Při konfiguraci Dropboxu jsem musel zadat své aktuální uživatelské jméno a název skupiny. Můžete se také dostat do situace, kdy potřebujete identifikovat skupiny, do kterých uživatel patří. Pokud ano, použijte kteroukoli z následujících metod, abyste zjistili, ve které skupině se uživatel nachází.
Zjistěte, do kterých skupin uživatel v Linuxu patří
Existuje mnoho způsobů, jak vypsat skupiny, kterých je uživatel Linuxu členem. Nejčastěji používaným způsobem je použití skupin příkaz.
Metoda 1 – příkaz skupin
Skupiny zobrazí aktuální názvy skupin a uživatelé patří do těchto skupin v operačních systémech Linux a Unix.
Nejprve zjistíme, kolik skupin je v našem systému Linux.
Chcete-li najít seznam dostupných v Linuxu, spusťte skupiny příkaz bez jakýchkoli argumentů jako níže:
$ groups
Ukázkový výstup:
sk adm disk cdrom sudo dip plugdev lpadmin sambashare kvm libvirt vboxusers
Seznam dostupných skupin v Linuxu
Jak můžete vidět ve výše uvedeném výstupu, v mém systému je aktuálně 12 skupin.
Nyní zjistěte, které skupiny konkrétního uživatele, například sk , patří. Chcete-li tak učinit, zadejte příkaz "groups" za uživatelským jménem jako níže:
$ groups sk
Ukázkový výstup:
sk : sk adm disk cdrom sudo dip plugdev lpadmin sambashare vboxusers kvm libvirt
Zjistěte, do kterých skupin uživatel patří v Linuxu pomocí příkazu groups
Zde sk je mé uživatelské jméno a uživatel sk je členem všech výše uvedených skupin. Možná jste si všimli, že „sk“ je uvedeno dvakrát. Protože jsem použil stejný název pro uživatelské jméno i název skupiny.
Více podrobností o příkazu "groups" naleznete v manuálových stránkách.
$ man groups
Metoda 2 – příkaz id
Další způsob, jak identifikovat skupiny, ve kterých je uživatel, je pomocí "id" příkaz. Příkaz id se používá k tisku informací o uživateli a skupině pro zadaného USER. Pokud není zadán USER, vytisknou se informace pro aktuálního uživatele.
Chcete-li identifikovat všechny skupiny, do kterých uživatel patří pomocí příkazu "id", spusťte:
$ id sk
Nahraďte sk s vaším uživatelským jménem.
Ukázkový výstup:
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)
Zjistěte, do kterých skupin uživatel v Linuxu patří, pomocí příkazu id
Jak vidíte zde, příkaz id nejen vypisuje skupiny, kterých je uživatel členem, ale také ID skupiny a ID uživatele (UID a GID) daného uživatele a skupin. Má podrobnější výstup než příkaz „groups“, takže pokud potřebujete ID skupiny/ID uživatele, použijte toto!
Pokud čísla tisknout nechcete, jednoduše použijte -Gn příznak jako níže:
$ id -Gn sk sk adm disk cdrom sudo dip plugdev lpadmin sambashare vboxusers kvm libvirt
Další podrobnosti naleznete na manuálových stránkách.
$ man id
Metoda 3 - pomocí souboru "/etc/group"
Jak jsem již uvedl, /etc/group obsahuje informace o každé skupině v systému Linux. Do kterých skupin daný uživatel patří, zjistíte z obsahu /etc/group soubor pomocí "grep" příkaz, jak je znázorněno níže:
$ grep sk /etc/group
Ukázkový výstup:
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
Pokud chcete vyloučit ID skupiny a uživatelské jméno a zobrazit pouze názvy skupin, přesuňte výstup příkazu "grep" do "awk" příkaz jako níže:
$ grep sk /etc/group | awk -F: '{ print $1 }'
Ukázkový výstup:
adm disk cdrom sudo dip plugdev lpadmin sk sambashare vboxusers kvm libvirt
Zjistěte, do kterých skupin uživatel v Linuxu patří, pomocí příkazů grep a awk
Metoda 4 – příkaz 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.
Můžeme vypsat všechny dostupné skupiny a jejich členy v systému Linux pomocí příkazu getent, jak je uvedeno níže:
$ getent group
Chcete-li zjistit, do kterých skupin konkrétní uživatel (např. sk) patří, spusťte:
$ getent group | grep sk
Ukázkový výstup:
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
Pokud chcete zobrazit pouze skupiny bez všech ostatních podrobností, filtrujte výstup pomocí příkazů „grep“ a „awk“, jak je uvedeno níže:
$ getent group | grep sk | awk -F: '{ print $1 }' adm disk cdrom sudo dip plugdev lpadmin sk sambashare vboxusers kvm libvirt
Zjistěte, do kterých skupin uživatel v Linuxu patří, pomocí příkazů getent, grep a awk
Seznam všech uživatelů patřících do skupiny v Linuxu
Najdeme zde také seznam všech uživatelů, kteří patří do konkrétní skupiny. Například následující příkaz zobrazí uživatele, kteří patří do skupiny s názvem úložiště .
$ grep -w storage /etc/group storage:x:95:sk
Snadné, že? Vskutku. Nalezení, do kterých skupin uživatel patří a uživatelů konkrétní skupiny, je super snadné!!
Související čtení:
- Jak vypsat seznam členů skupiny v Linuxu
- Jak najít všechny uživatele Sudo ve vašem systému Linux
To pomáhá.