GNU/Linux >> Znalost Linux >  >> Linux

Seznam uživatelů v Linuxu – Nejlepší metoda

Aby správce systému mohl konfigurovat a spravovat oprávnění, potřebuje seznam všech uživatelů. Existují příkazy pro vytvoření uživatele, odstranění uživatele, ale je kritickým úkolem vypsat všechny uživatele v systému Linux. Z bezpečnostních důvodů je také zcela nezbytné ujistit se, že máte správný počet uživatelů a že jste některé nezapomněli smazat.

Zde v LinuxAPT, jako součást našich služeb správy serveru, pravidelně pomáháme našim zákazníkům provádět související dotazy na systém Linux.

V této souvislosti se podíváme na to, jak vytvořit seznam uživatelů v systémech Linux.


Jak zobrazit seznam všech uživatelů pomocí souboru /etc/passwd?

Informace o uživateli jsou uloženy v souboru /etc/passwd. Obsahuje jeden řádek s uživatelským jménem pro každý uživatelský účet v systému. K zobrazení obsahu souboru můžete použít příkaz less nebo cat:

$ cat /etc/passwd

Ve výstupu uvidíte, že každý řádek má sedm polí oddělených dvojtečkami, které obsahují následující informace:

  • Uživatelské jméno.
  • Šifrované heslo, kde x znamená, že heslo je uloženo v souboru etc/shadow.
  • UID (ID uživatele).
  • GID (ID skupiny uživatele).
  • Celé jméno uživatele.
  • Uživatel $HOME adresář.
  • Cesta přihlašovacího prostředí.


Pokud chcete vypsat pouze uživatelské jméno, můžete pomocí příkazů awk nebo cut vytisknout pouze uživatelské jméno:

awk -F: '{ print $1}' /etc/passwd
cut -d: -f1 /etc/passwd

Výstup bude následující:

Output
root
daemon
bin
sys
sync
games
man
lp
mail
news
uucp
proxy
www-data
...
...
geoclue
gdm
gnome-initial-setup
sshd


Jak zobrazit seznam všech uživatelů pomocí příkazu getent?

Příkaz Getent načte položky z databází. Zobrazí seznam uživatelů z databáze LDAP a souboru /etc/passwd.

Chcete-li získat seznam všech uživatelů systému Linux, zadejte následující příkaz:

$ getent passwd

Výstup bude stejný jako obsah souboru /etc/passwd. Můžete také použít awk nebo cut k vytištění pouze uživatelského jména:

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


Jak zkontrolovat, zda v systému Linux existuje uživatel?

Nyní víme, jak získat seznam uživatelů. Ale co když chcete zkontrolovat, zda uživatel v aktuálním systému existuje nebo ne. Můžete zkontrolovat pomocí příkazu grep a bez použití příkazu grep.

Například chceme zkontrolovat, zda uživatel linuxapt existuje nebo ne, pak byste měli zadat příkaz, jak je uvedeno níže:

$ getent passwd | grep linuxapt
$ getent passwd linuxapt
Output
linuxapt:x:1001:1001:,,,:/home/linuxapt:/bin/bash

Pokud uživatel v systému existuje, vytiskne podrobnosti o tomto uživateli, jinak nevytiskne nic.

Pokud chcete, aby ve vašem systému existoval celkový počet uživatelů, můžete jej získat pomocí :

$ getent passwd | wc -l

Vrátí počet uživatelů jako následující výstup:

Output
47


Jak odlišit systémové a běžné uživatele?

Systémoví uživatelé se vytvářejí, když instalujete OS nebo aktualizujete nové balíčky. Mezi systémovými uživateli a běžnými uživateli již není žádný rozdíl.

Normální uživatelé jsou uživatelé vytvoření rootem nebo jiným uživatelem s právy sudo. Obvykle má normální uživatel skutečný přihlašovací shell a domovský adresář.

Každý uživatel má UID (User ID) buď je to systémový uživatel nebo normální uživatel. Když normální uživatel přidá uživatele pomocí příkazu adduser. Uživatel bude přidán a UID bude přiřazeno automaticky s odkazem na UID_MIN a UID_MAX ze souboru /etc/login.defs.

UID_MIN a UID_MAX můžete zkontrolovat níže uvedeným příkazem:

$ grep -E '^UID_MIN|^UID_MAX' /etc/login.defs

Zobrazí výstup jako níže:

Output
UID_MIN             1000
UID_MAX            60000

Z výše uvedeného výstupu můžeme vidět, že všichni normální uživatelé by měli mít jedinečné ID mezi 1000 a 60000.

Nyní vydáme příkaz k získání seznamu normálních uživatelů, jejichž jedinečné ID mezi 1000 a 60000.

$ getent passwd {1000..60000}
Output
linuxapt:x:1000:1000:LinuxAPT,,,:/home/linuxapt:/bin/bash
demouser:x:1001:1001:,,,:/home/demouser:/bin/bash

Chcete-li vytisknout pouze uživatelská jména, zadejte následující příkaz:

$ eval getent passwd {$(awk '/^UID_MIN/ {print $2}' /etc/login.defs)..$(awk '/^UID_MAX/ {print $2}' /etc/login.defs)} | cut -d: -f1
Output
linuxapt
demouser


Jak získat seznam skupin v Linuxu?

Všechny skupiny v Linuxu můžete vypsat pomocí následujícího příkazu:

$ getent group

Seznam všech skupin s konkrétním uživatelem získáte pomocí následujícího příkazu:

$ getent group | grep linuxapt



Linux
  1. Jak vytvořit více uživatelských účtů v Linuxu

  2. Správa uživatelů Linuxu a skupin Linuxu

  3. Osvědčené postupy zabezpečení Wordpress v systému Linux

  1. Jak najít všechny uživatele Sudo v Linuxu

  2. Jak vytvořit seznam uživatelů v CentOS 7

  3. 3 způsoby, jak zobrazit seznam uživatelů v Linuxu

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

  2. Jak zobrazit seznam uživatelů v Linuxu, příkaz Seznam všech uživatelů

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