Úvod
Operační systém Linux je unikátní díky své víceuživatelské vlastnosti, která umožňuje více uživatelů na jednom systému současně. Sledování všech uživatelů je však zásadní.
V tomto článku získejte několik příkazů pro seznam všech uživatelů Linuxu spolu s jejich přihlašovacími údaji. Tyto příkazy fungují na CentOS, Ubuntu, Arch Linux a také další distribuce Linuxu.
Předpoklady
- Nainstalovaná a spuštěná distribuce Linuxu
- Uživatel s právy sudo
- Přístup k terminálu/příkazovému řádku
Seznam všech uživatelů Linuxu, 2 možnosti
Seznam všech uživatelů v Linuxu pomocí souboru /etc/passwd
Podrobnosti o místních uživatelích lze nalézt v /etc/passwd soubor. Každý řádek obsažený v souboru obsahuje informace o jednom uživateli.
Existují dvě možnosti.
Otevřete etc/passwd soubor zadáním příkazu:
cat etc/passwd
Případně můžete použít less
příkaz:
less etc/passwd
Seznam všech uživatelů Linuxu s getent Příkaz
Záznamy databáze nakonfigurované v /etc/nsswitch.conf soubor obsahuje databázi passwd se všemi uživatelskými jmény a přihlašovacími informacemi.
K extrahování těchto dat použijte příkaz:
getent passwd
Obě Možnost 1 a Možnost 2 zobrazí všechny uživatele a jejich přihlašovací údaje.
Každý řádek představuje jednoho uživatele a má sedm (7) pole.
Pole jsou oddělena : (dvojtečky) a každý řádek obsahuje následující informace:
1. Uživatelské jméno
2. Zašifrované heslo (reprezentované x , který se nachází v /etc/shadow soubor)
3. Číslo ID uživatele (známé jako UID )
4. ID skupiny uživatelů (známé jako GID )
5. Celé jméno uživatele
6. Domovský adresář uživatele
7. Přihlašovací shell (standardně nastaven na bin/bash )
Jak vypsat pouze uživatelská jména systému Linux
V případě, že nepotřebujete všechny informace týkající se každého uživatele, můžete uvést pouze uživatelská jména na systému. Existují dva způsoby, jak zobrazit pouze první pole (uživatelské jméno) každého uživatele.
Možnost 1 :Pomocí příkazu awk nebo cut.
Chcete-li vypsat pouze uživatelská jména, můžete použít jeden z následujících dvou (2) příkazů:
awk –F: ‘{ print $1}’ /etc/passwd
cut –d: –f1 /etc/passwd
Možnost 2 :Pomocí getent
pomocí příkazu awk
a cut
.
Číst a zobrazovat uživatelské jméno bez dalších informací pomocí getent
spusťte následující příkaz:
getent passwd | awk -F: ‘{ print $1}’
Případně použijte příkaz:
getent passwd | –d: –f1
Jak vyhledat stávající uživatele systému Linux
getent
příkaz také umožňuje zkontrolovat, zda je v systému přítomen uživatel.
Tyto informace vám poskytne kterýkoli z následujících dvou příkazů:
getent passwd | grep username
getent passwd username
Pokud uživatel existuje, zobrazí přihlašovací údaje. Na druhou stranu, pokud takový uživatel neexistuje, nebude žádný výstup.
Například na obrázku níže dotaz zobrazuje, zda uživatel s názvem příklad existuje. Výstup dokazuje, že takový uživatel existuje.
Systémový uživatel versus běžný uživatel
uživatel systému je ten, který vytváří normální uživatele. Proto je v tomto případě uživatel systému root. Tento uživatel je vytvořen při první instalaci operačního systému Linux. Navíc můžete vytvořit systémové uživatele pro konkrétní aplikace.
Na druhou stranu normální uživatelé jsou všichni uživatelé, které root (nebo uživatel s právy sudo) vytvoří. Každý normální a systémový uživatel má skutečný přihlašovací shell, domovský adresář a také ID uživatele (UID). Číslo ID uživatele se zadává automaticky v rozsahu mezi minimální a maximální hodnotou.
Jak zkontrolovat UID_MIN a UID_MAX
Pokud chcete zkontrolovat, jaký je rozsah UID pro běžné uživatele, použijte grep s následujícím příkazem:
grep –E”^UID_MIN|^UID_MAX” /etc/login.defs
Výstup ukazuje, že všichni normální uživatelé mají UID od 1000 (UID_MIN) do 6000 (UID_MAX).
Jak vytvořit seznam běžných uživatelů
S ohledem na tato čísla se zeptáte na seznam všech uživatelů v tomto rozsahu příkazem:
getent passwd {1000..6000}
Dotaz uvádí všechny běžné uživatele, jak je vidět na obrázku níže. V tomto příkladu jsou dva normální uživatelé v určeném rozsahu.