GNU/Linux >> Znalost Linux >  >> Linux

Jak vypsat seznam všech uživatelů v Linuxu

Tento stručný průvodce vysvětluje, jak vytvořit seznam všech uživatelů v operačních systémech Linux. Než se pustíme do tématu, uvidíme, co je soubor /etc/passwd. Protože na tomto souboru závisíme v této příručce.

Stručná poznámka k souboru /etc/passwd

V Linuxu (a Unixu obecně) jsou základní informace o každém uživatelském účtu uloženy v "/etc/passwd" soubor. Není to nic jiného než prostý textový soubor, který obsahuje atributy všech uživatelských účtů přítomných v systému Linux.

Ve výchozím nastavení je tento soubor čitelný pro všechny uživatele pomocí jakýchkoli textových nebo grafických programů, jako je Vi, Nano, Gedit atd., nebo pomocí příkazů jako "cat ".

."

Pokud tento soubor otevřete..

$ cat /etc/passwd

...uvidíte několik položek jako níže:

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
[...]

Každý řádek v souboru /etc/passwd představuje jednoho uživatele. Uživatel root bude uveden nahoře. Každý řádek obsahuje sedm atributů nebo polí oddělených dvojtečkou bez mezer mezi jednotlivými poli. Názvy sedmi polí jsou uvedeny níže:

  1. jméno,
  2. heslo,
  3. ID uživatele,
  4. ID skupiny,
  5. gecos,
  6. domovský adresář,
  7. shell.

1. Jméno

"název" pole je přihlašovací jméno uživatele, které používáte k přihlášení do svého Linux boxu.

2. heslo

"heslo" pole obsahuje pouze písmeno X. Význam - heslo je zašifrováno a z bezpečnostních důvodů je uloženo v samostatném souboru s názvem "/etc/shadow". /etc/shadow běžní uživatelé nemohou číst. Zde X označuje, že uživatel má heslo. Pokud je toto pole prázdné, uživatel nemá žádné heslo, takže se může přihlásit bez hesla.

3. ID uživatele

„ID uživatele " (nebo zkráceně UID) označuje jedinečné číselné identifikační číslo uživatele. UID účtu root je 0 (nula). Čísla od 1 do 99 jsou vyhrazena pro systémové účty. A čísla začínající od 100 do 999 jsou vyhrazena pro běžné uživatele a skupiny.

4. ID skupiny

"ID skupiny" (nebo zkráceně GID) označuje identifikátor primární skupiny, do které uživatel patří. GID je obvykle stejné jako UID.

5. Gekony

"gekoni" pole obsahuje obecné informace o uživateli. Může například obsahovat skutečné jméno uživatele. Toto pole může být buď prázdné oddělené dvěma dvojtečkami, nebo může obsahovat více položek oddělených čárkami.

6. Domovský adresář

"domovský adresář" pole označuje úplnou cestu domovského adresáře uživatele, například /home/sk . Toto je adresář, ve kterém je uživatel jako první, když se přihlásí do systému. Domovský adresář obvykle obsahuje programy a konfigurační soubory patřící uživateli.

7. Shell

Poslední pole je "shell" . Označuje úplnou cestu výchozího shellu pro daného uživatele.

Nyní si vezměme následující řádek jako příklad:

root:x:0:0:root:/root:/bin/bash

Ve výše uvedeném řádku

  • kořen - je uživatelské jméno,
  • x - označuje, že uživatel root má heslo,
  • 0 - První 0 (nula) označuje UID,
  • 0 - Druhá nula označuje GID,
  • kořen – Označuje skutečné jméno uživatele.
  • /root - Je to domovský adresář uživatele root,
  • /bin/bash - Výchozí shell pro uživatele root.

Doufám, že získáte základní představu o souboru /etc/passwd. Nyní se vraťme k našemu tématu, tj. seznamu všech uživatelů v systému Linux.

Seznam všech uživatelů v Linuxu

Existuje několik způsobů, jak uvést všechny uživatele v systému Linux. Zde jsem zahrnul všechny možné způsoby.

1. Vypište všechny uživatele v Linuxu pomocí příkazu cat

Jak název napovídá, příkaz cat se obecně používá ke zřetězení souborů a tisku obsahu souborů.

Chcete-li zobrazit seznam všech uživatelů v systému Linux pomocí příkazu cut, spusťte:

$ cat /etc/passwd

Tento příkaz zobrazí seznam všech dostupných uživatelů

Ukázkový výstup:

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
systemd-network:x:100:102:systemd Network Management,,,:/run/systemd/netif:/usr/sbin/nologin
systemd-resolve:x:101:103:systemd Resolver,,,:/run/systemd/resolve:/usr/sbin/nologin
syslog:x:102:106::/home/syslog:/usr/sbin/nologin
messagebus:x:103:107::/nonexistent:/usr/sbin/nologin
_apt:x:104:65534::/nonexistent:/usr/sbin/nologin
uuidd:x:105:111::/run/uuidd:/usr/sbin/nologin
avahi-autoipd:x:106:112:Avahi autoip daemon,,,:/var/lib/avahi-autoipd:/usr/sbin/nologin
usbmux:x:107:46:usbmux daemon,,,:/var/lib/usbmux:/usr/sbin/nologin
dnsmasq:x:108:65534:dnsmasq,,,:/var/lib/misc:/usr/sbin/nologin
rtkit:x:109:114:RealtimeKit,,,:/proc:/usr/sbin/nologin
cups-pk-helper:x:110:116:user for cups-pk-helper service,,,:/home/cups-pk-helper:/usr/sbin/nologin
speech-dispatcher:x:111:29:Speech Dispatcher,,,:/var/run/speech-dispatcher:/bin/false
whoopsie:x:112:117::/nonexistent:/bin/false
kernoops:x:113:65534:Kernel Oops Tracking Daemon,,,:/:/usr/sbin/nologin
saned:x:114:119::/var/lib/saned:/usr/sbin/nologin
avahi:x:116:122:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/usr/sbin/nologin
colord:x:117:123:colord colour management daemon,,,:/var/lib/colord:/usr/sbin/nologin
hplip:x:118:7:HPLIP system user,,,:/var/run/hplip:/bin/false
geoclue:x:119:124::/var/lib/geoclue:/usr/sbin/nologin
gnome-initial-setup:x:120:65534::/run/gnome-initial-setup/:/bin/false
gdm:x:121:125:Gnome Display Manager:/var/lib/gdm3:/bin/false
sk:x:1000:1000:sk,,,:/home/sk:/bin/bash
Debian-exim:x:122:128::/var/spool/exim4:/usr/sbin/nologin
pulse:x:115:120:PulseAudio daemon,,,:/var/run/pulse:/usr/sbin/nologin
systemd-timesync:x:123:127:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin
tss:x:124:131:TPM software stack,,,:/var/lib/tpm:/bin/false
tcpdump:x:125:132::/nonexistent:/usr/sbin/nologin
_flatpak:x:126:133:Flatpak system-wide installation helper,,,:/nonexistent:/usr/sbin/nologin
systemd-coredump:x:999:999:systemd Core Dumper:/:/usr/sbin/nologin

Vypište všechny uživatele v Linuxu pomocí příkazu cat

Jak jsem již zmínil, první pole ve výše uvedených položkách představuje uživatele. Pokud nechcete všechna pole, ale chcete zobrazovat pouze uživatelská jména, pomohou vám následující metody.

3. Seznam uživatelů pomocí příkazu cut

Příkaz "cut" se používá k odstranění částí (nebo polí) z každého řádku souborů.

Chcete-li zobrazit seznam všech uživatelů s příkazem cut v systému Linux, spusťte:

$ cut -d: -f1 /etc/passwd

Tento příkaz zobrazí pouze uživatelská jména ze souboru /etc/passwd a ignoruje všechna ostatní pole.

Ukázkový výstup:

root
daemon
bin
sys
sync
games
man
lp
mail
news
uucp
proxy
www-data
backup
list
irc
gnats
nobody
systemd-network
systemd-resolve
syslog
messagebus
_apt
uuidd
avahi-autoipd
usbmux
dnsmasq
rtkit
cups-pk-helper
speech-dispatcher
whoopsie
kernoops
saned
avahi
colord
hplip
geoclue
gnome-initial-setup
gdm
sk
Debian-exim
pulse
systemd-timesync
tss
tcpdump
_flatpak
systemd-coredump

Vypište všechny uživatele v Linuxu pomocí příkazu cut

4. Tisk uživatelů v Linuxu pomocí příkazu awk

Můžeme také použít příkaz "awk" pro výpis všech uživatelů v Linuxu.

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

Tento příkaz také zobrazí pouze uživatele a vynechá všechny ostatní podrobnosti.

Vypište všechny uživatele v Linuxu pomocí příkazu awk

5. Zobrazit seznam uživatelů s compgen

Compgen je vestavěný BASH k manipulaci s programovatelnými dokončovacími zařízeními.

Chcete-li zobrazit seznam všech uživatelů používajících compgen, spusťte:

$ compgen -u

6. Zobrazit všechny uživatele pomocí příkazu getent

Dalším způsobem, jak zobrazit seznam uživatelů v Linuxu, je použít "getent" příkaz jako níže:

$ getent passwd

Tento příkaz přečte soubor /etc/passwd a zobrazí seznam všech uživatelů v tomto souboru.

Vypište všechny uživatele v Linuxu pomocí příkazu awk

Jednou významnou výhodou příkazu getent je, že nejen uvádí uživatele v souboru /etc/passwd, ale všechny uživatele ve všech nakonfigurovaných backendech userdb, například LDAP, na daném systému.

7. Seznam uživatelů pomocí příkazů „více“ nebo „méně“

Více a méně příkazů se používá k otevření daného souboru pro interaktivní čtení, což umožňuje posouvání a vyhledávání.

Chcete-li vytisknout všechny uživatele pomocí více či méně příkazů, spusťte:

$ more /etc/passwd

Nebo,

$ less /etc/passwd

Související čtení:

  • Jak vypsat seznam členů skupiny v Linuxu
  • Jak najít aktuálně přihlášené uživatele v Linuxu
  • Jak monitorovat aktivitu uživatele v systému Linux
  • Jak omezit přístup uživatelů k systému Linux
  • Rozdíl mezi více, méně a většinou příkazů
  • Jak přidat, odstranit a udělit uživatelům v Ubuntu oprávnění sudo
  • Jak zjistit, do kterých skupin uživatel v Linuxu patří
  • Správný způsob úpravy souborů /etc/passwd a /etc/group v systému Linux

Doufám, že to pomůže.


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

  2. Jak vypsat nebo seřadit všechny soubory podle velikosti v Linuxu

  3. Jak vypsat všechny nainstalované balíčky v Linuxu

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

  2. Jak vypsat všechny přihlášené uživatele

  3. Jak mohu uvést seznam všech zamčených uživatelů v Linuxu?

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

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

  3. Jak vypíšu všechny uživatele s rootem?