Už jste někdy chtěli vypsat seznam všech uživatelů ve vašem systému Linux nebo spočítat počet uživatelů v systému? Existují příkazy pro vytvoření uživatele, smazání uživatele, seznam přihlášených uživatelů, ale jaký je příkaz pro seznam všech uživatelů v systému Linux?
Tento výukový program vám ukáže, jak zobrazit seznam uživatelů v systémech Linux.
Získejte seznam všech uživatelů pomocí souboru / etc / passwd Č. souboru
Informace o místním uživateli jsou uloženy v souboru /etc/passwd
. Každý řádek v tomto souboru představuje přihlašovací údaje pro jednoho uživatele. Soubor můžete otevřít pomocí cat
nebo less
:
Každý řádek v souboru má sedm polí oddělených dvojtečkami, které obsahují následující informace:
Pokud chcete zobrazit pouze uživatelské jméno můžete použít awk
nebo cut
příkazy k tisku pouze prvního pole obsahujícího uživatelské jméno:
Získejte seznam všech uživatelů pomocí příkazu getent #
Příkaz getent
zobrazuje položky z databází nakonfigurovaných v souboru /etc/nsswitch.conf
, včetně passwd
databáze, kterou lze použít k dotazování na seznam všech uživatelů.
Chcete-li získat seznam všech uživatelů systému Linux, zadejte následující příkaz :
Jak vidíte, výstup je stejný jako při zobrazení obsah souboru /etc/passwd
. Pokud používáte LDAP k ověřování uživatelů, getent
zobrazí všechny uživatele systému Linux ze souboru /etc/passwd
i z databáze LDAP.
Můžete také použít awk
nebo cut
k vytištění pouze prvního pole obsahujícího uživatelské jméno:
Zkontrolovat, zda uživatel v systému Linux existuje #
Nyní, když víme, jak vypsat seznam všech uživatelů, abychom zkontrolovali, zda uživatel existuje v naší linuxové schránce, můžeme jednoduše filtrovat seznam uživatelů přepsáním seznamu do příkazu grep
.
Například zjistit, zda v našem systému Linux existuje uživatel s názvem jack
, můžeme použít následující příkaz:
Pokud uživatel existuje, výše uvedený příkaz vytiskne přihlašovací údaje uživatele informace. Žádný výstup, který znamená, že uživatel neexistuje.
Můžeme také zkontrolovat, zda uživatel existuje, aniž bychom použili příkaz grep
, jak je uvedeno níže:
Stejně jako dříve, pokud uživatel existuje, zobrazí příkaz přihlašovací údaje uživatele.
Chcete-li zjistit, kolik uživatelských účtů existuje máte ve svém systému, připojte výstup getent passwd
k příkazu wc
:
Jak vidíte z výstupu výše, můj systém Linux má 33 uživatelských účtů.
Systémoví a normální uživatelé #
Neexistuje žádný skutečný technický rozdíl mezi systémem a běžnými (normálními) uživateli. Uživatelé systému se obvykle vytvářejí při instalaci operačního systému a nových balíčků. V některých případech můžete vytvořit systémového uživatele, který bude používán některými aplikacemi.
Normální uživatelé jsou uživatelé vytvoření rootem nebo jiným uživatelem s oprávněním sudo. Normální uživatel má obvykle skutečný přihlašovací shell a domovský adresář.
Každý uživatel má číselné ID uživatele s názvem UID. Pokud není zadáno při vytváření nového uživatele pomocí příkazu useradd
, bude ze souboru /etc/login.defs
automaticky vybrán UID v závislosti na UID_MIN
a UID_MIN
hodnoty.
Zkontrolovat UID_MIN
a UID_MIN
hodnoty ve vašem systému, můžete použít následující příkaz:
Z výše uvedeného výstupu vidíme, že všichni normální uživatelé by měli mít UID mezi 1000 a 60000. Znalost minimální a maximální hodnoty nám umožňuje dotazovat se na seznam všech normálních uživatelů v našem systému.
Následující příkaz zobrazí seznam všech běžných uživatelů v našem systému Linux:
Hodnoty vašeho systému UID_MIN
a UID_MIN
se mohou lišit, takže obecnější verze výše uvedeného příkazu bude:
Chcete-li vytisknout pouze uživatelská jména, stačí přesměrovat výstup na příkaz cut
:
Závěr #
V tomto výukovém programu jste se naučili seznam a filtrování uživatelů ve vašem systému Linux a jaké jsou hlavní rozdíly mezi systémem a normálním Linuxem uživatelé.
Stejné příkazy platí pro jakoukoli distribuci Linuxu, včetně Ubuntu, CentOS, RHEL, Debian a Linux Mint.