V tomto tutoriálu uvidíme, jak najít poslední přihlášené uživatele v Linuxu pomocí last
, lastb
a lastlog
příkazy s příklady.
Úvod
Jako správce systému Linux byste měli pravidelně kontrolovat datum a čas přihlášení uživatelů na vašem serveru Linux. Poskytuje vám některé užitečné podrobnosti, například kolik uživatelů je aktivních, kolik uživatelů je neaktivních a kdy se přihlašují a na jak dlouho atd.
Pokud některé uživatelské účty nebyly delší dobu používány, můžete je jednoduše uzamknout, pokud již nejsou potřeba. Můžete také použít data posledního přihlášení při auditu svých linuxových serverů a zjistit, který uživatel mohl způsobit problém.
Naštěstí operační systém GNU/Linux obsahuje trojici příkazů, jmenovitě last
, lastb
a lastlog
pro zobrazení posledních dat přihlášení uživatelů.
1. Zobrazit seznam naposledy přihlášených uživatelů v Linuxu s posledním příkazem
Jak název napovídá, last
příkaz se používá k zobrazení posledních přihlášených uživatelů v systémech Linux a Unix. Čte přes /var/log/wtmp
a najde všechny přihlášené i odhlášené uživatele od vytvoření souboru. Můžete také uvést nedávná data přihlášení konkrétního uživatele a dokonce zjistit, kdo restartoval systém Linux s pomocí last
příkaz.
Upozorňujeme, že váš systém zaznamenává informace pouze do wtmp
soubor. Pokud tento soubor není z jakéhokoli důvodu k dispozici, jednoduše jej vytvořte pomocí touch
příkaz jako níže:
$ sudo touch /var/log/wtmp
Nyní zjistíme poslední data a časy přihlášení pomocí last
příkaz.
Chcete-li zobrazit poslední přihlášení, jejich trvání a další informace ve vašem systému Linux, jednoduše spusťte:
$ poslední
Ukázkový výstup:
ostechni pts/0 192.168.225.37 Čt 7. ledna 08:30 stále přihlášeni inostechni tty1 Čt 7. ledna 08:29 stále přihlášeni při restartování spouštění systému 5.4.0-53-generic Čt 7. ledna 08:20 stále spuštěno 5.4. 0-48-generic Pá 20. listopadu 10:13 - 11:44 (01:31)...reboot system boot 5.4.0-33-generic St 8. července 08:49 - 11:41 (02:52)ostechni web konzole Po 6. července 08:19 - 08:20 (00:00)ostechni pts/2 192.168.225.37 Po 6. července 08:14 - 08:30 (00:15)ostechni pts/0 192.168. Po Jul 276 37 41 - 12:27 (04:45) restart systému boot 5.4.0-33-generic Po Jul 6 07:21 - 12:27 (05:06)ostechni pts/3 192.168.225.37 So Juc 4 12:01 - 12 :12 (00:10)ostechni pts/2 192.168.225.37 So 4. července 11:14 - 13:01 (01:46)ostechni pts/0 192.168.225.37 So 4. července 07:55 - 05 )reboot system boot 5.4.0-33-generic So 4. července 07:53 - 13:03 (05:09)ostechni tty1 Pá 29. května 10:07 - down (00:00)reboot system boot 5.4.0-33-generic Pá 29. května 10:06 - 10:07 (00:01)ostechni pts/0 192.168.225.37 Pá 29. května 09:36 - 10:06 ( 00:29)ostechni tty1 pá 29. května 09:36 - dolů (00:29) restart systému boot 5.4.0-31-generic pá 29. května 09:35 - 10:06 (00:30)ostechni tty1 ne 24. května 13 :17 - dolů (00:02)reboot system boot 5.4.0-31-generic Ne 24. května 13:16 - 13:20 (00:03)wtmp začíná Ne 24. května 13:16:52 2020

Jak vidíte ve výše uvedeném výstupu, poslední příkaz zobrazuje následující podrobnosti o posledních přihlášeních:
- Jméno uživatele. Pokud je některý uživatel stále přihlášen, zobrazí se také tyto podrobnosti.
- Typ koncového zařízení (např. tty nebo pts), na kterém se relace uskutečnila.
- Zdrojová IP adresa nebo název hostitele, ze kterého se uživatel přihlásil.
- Datum a časové razítko přihlášení (tj. čas zahájení a ukončení relace přihlášení).
- Celkové trvání relace.
- Poslední řádek označuje datum a čas nejdříve zaznamenané relace v
wtmp
soubor protokolu.
Ve výše uvedeném výstupu jste si možná všimli, že existuje přihlašovací záznam speciálního uživatele s názvem reboot
. last
příkaz uchovává záznamy o tomto uživateli při každém spuštění počítače.
Když spustíme last
příkaz bez jakýchkoli voleb, zobrazí celý výstup protokolu. Má mnoho možností pro filtrování, formátování a omezení výstupu podle vašich představ. Zahrnul jsem příklady nejběžnějších možností.
1.1. Omezit výstup na konkrétního uživatele
Jak již bylo řečeno, last
příkaz vypíše všechna poslední přihlášení zaznamenaná v wtmp
soubor. Pokud chcete zobrazit poslední přihlášení konkrétního uživatele (tj. zobrazit všechna přihlášení konkrétního uživatele), například ostechnix , příkaz by byl:
$ last ostechnix
Ukázkový výstup:
ostechni pts/0 192.168.225.37 čt 7. ledna 08:30 stále přihlášeni inostechni tty1 čt 7. ledna 08:29 stále přihlášeni inostechni pts/0 192.168.225.37 st. 6. ledna 11:222 - 13:22 - 0 [...]

Můžete také zadat více uživatelských jmen oddělených čárkami, jak je uvedeno níže:
$ last ostechnix sk
1.2. Omezte výstup na konkrétní tty nebo pts
last
příkaz uchovává záznam typu koncového zařízení (např. tty nebo pts), na kterém se relace uskutečnila.
Řekněme například, že uživatelé se mohli přihlásit k počítači se systémem Linux buď lokálně, nebo přes ssh. Pokud chcete omezit výstup na konkrétní tty
, jednoduše spusťte:
$ last tty1
Ukázkový výstup:
ostechni tty1 Čt 7. ledna 08:29 stále přihlášeni inostechni tty1 St 6. ledna 11:00 - dolů (02:31)ostechni tty1 Pá 20. listopadu 11:52 - dolů (00:38)[...]Jména ttys mohou být zkrácena. Můžete například spustit
last 1
místolast tty1
.Podobně vypsat pouze
pts
přihlašovací údaje relací, spusťte:$ posledních bodů/0 ostechni pts/0 192.168.225.37 ČT 7. ledna 08:30 stále přihlášeni inostechni pts/0 192.168.225.37 st. 6. led 11:02 - 13:31 (02:28) sk 16. ledna 2. 83. 2519 st. - 11:02 (00:00)[...]Můžete také zadat více uživatelských jmen pomocí ttys, jak je uvedeno níže:
$ last ostechnix sk pts/0 tty11.3. Omezte výstup na konkrétní počet řádků
wtmp
log soubor může mít velký počet záznamů. Pokud chcete omezit výstuplast
příkaz na určitý počet řádků, použijte-n
příznak jako níže:$ last -n 5Nebo,
posledních $ -5Výše uvedený příkaz zobrazí pouze 5 řádků ve výstupu:
ostechni pts/0 192.168.225.37 Čt 7. ledna 08:30 stále přihlášeni inostechni tty1 Čt 7. ledna 08:29 stále přihlášeni při restartování spouštění systému 5.4.0-53-generic Čt 7. ledna 08:20 stále běží/08192 pts .225.37 St Jan 6 11:02 - 13:31 (02:28)sk pts/0 192.168.225.37 St Jan 6 11:02 - 11:02 (00:00)wtmp begin Ne 24. května 13:202:521.4. Zobrazit název hostitele místo adresy IP
Ve výchozím nastavení
last
zobrazí zdrojovou IP, ze které se uživatel přihlásil. Pokud chcete místo IP adresy zobrazit název hostitele, použijte-d
(nebo--dns
) možnost:$ last -d -5Můžete také zobrazit úplná uživatelská jména a názvy domén ve výstupu pomocí
-w
(nebo--fullnames
).1.5. Skrýt název hostitele a IP adresu
Chcete-li potlačit název hostitele nebo pole IP, použijte
-R
možnost.$ posledních -5 -RUkázkový výstup:
ostechni pts/0 Čt 7. ledna 08:30 stále přihlášeni inostechni tty1 Čt 7. ledna 08:29 stále přihlášeni při restartu spouštění systému Čt 7. ledna 08:20 stále běžíostechni pts/0 St Jan 6 11:02 - 13:31 ( 02:28)sk bodů/0 St 6. ledna 11:02 - 11:02 (00:00)wtmp začíná Ne 24. května 13:16:52 20201.6. Zobrazit záznamy o přihlášení uživatelů v konkrétní čas
-p
(nebo--present
) se používá k nalezení toho, kdo byl aktuálně nebo v určený čas přihlášen.Například spuštěním následujícího příkazu zobrazíte seznam naposledy přihlášených uživatelů dnes v 8:30:
$ last -p 08:30Ukázkový výstup:
ostechni tty1 Čt 7. ledna 08:29 stále přihlášeni při restartu spouštění systému 5.4.0-53-generic Čt 7. ledna 08:20 stále běžíwtmp začíná Ne 24. května 13:16:52 2020Chcete-li zobrazit, kdo je aktuálně přihlášen (tj. v době spuštění tohoto příkazu, spusťte:
$ last -p nyní![]()
1.7. Zobrazit přihlášené uživatele v určitém časovém intervalu
last
příkaz má dvě možnosti, a to-s
(--since
) a-t
(--until
) pro zobrazení přihlášených uživatelů v určitém časovém období.-s
volba se používá k zobrazení stavu přihlášení od zadaného času a-t
volba se používá k zobrazení stavu přihlášení do zadaného času.Pokud například chcete zobrazit poslední přihlášení, která proběhla od
2021-01-07
do2021-01-11
, příkaz je:$ last -s 2021-01-07 -t 2021-01-11Ukázkový výstup:
ostechni pts/0 192.168.225.37 Čt 7. ledna 08:30 - 13:16 (04:46)ostechni tty1 Čt 7. ledna 08:29 - dolů (04:47) restart systému boot 5.4.0-53-generic Čt 7. ledna 08:20 - 13:16 (04:56)wtmp začíná Ne 24. května 13:16:52 2020Chcete-li zobrazit poslední přihlášení z včera do dnes , spustit:
$ last -s včera -t todayPokud chcete vypsat pouze záznamy o přihlášení od 7. ledna 2021 do dnešního data, spusťte:
$ last -s 2021-01-07 ostechni pts/0 192.168.225.37 po 11. leden 06:39 stále přihlášený při restartu spouštění systému 5.4.0-59-generic po 11. led 06:37 stále běžíostechni pts/0 192.168.225.37 čt:3. leden 600 04:46)ostechni tty1 Čt 7. ledna 08:29 - dolů (04:47)reboot systému boot 5.4.0-53-generic Čt 7. ledna 08:20 - 13:16 (04:56)wtmp začíná Ne 24. května 13 :16:52 20201.8. Zobrazit poslední přihlášené uživatele s úplným datem a časem
-F
(--fulltimes
) se používá k zobrazení celého data a času přihlášení a odhlášení vlast
výstup příkazu.$ posledních -5 -FUkázkový výstup:
ostechni pts/0 192.168.225.37 Po 11. leden 06:39:29 2021 stále přihlášen[...]1.9. Zobrazit název hostitele v posledním sloupci
-a
(--hostlast
) se používá k zobrazení sloupce názvu hostitele jako posledního, aby se zabránilo zkrácení.$ last -d -a ostechni pts/0 Po 11. led 06:39 stále přihlášen ostechnix [...]1.10. Zobrazit poslední přihlašovací záznamy pseudo uživatele "reboot"
Jak jsem již zmínil, poslední příkaz uchovává záznam o speciálních pseudouživatelích s názvem "reboot" a "shutdown".
Chcete-li zobrazit poslední přihlašovací údaje uživatelů „reboot“ a „shutdown“, použijte následující příkazy:
$ poslední restartPoslední vypnutí $2. Zobrazit neúspěšné pokusy o přihlášení pomocí lastb v Linuxu
lastb
je stejný jakolast
příkaz, ale uvádí pouze všechny špatné pokusy o přihlášení. Získává neúspěšné přihlašovací údaje z/var/log/btmp
soubor.Upozorňujeme, že váš systém zaznamenává informace pouze do
btmp
soubor, pokud je přítomen. Pokud tento soubor není z jakéhokoli důvodu k dispozici, jednoduše jej vytvořte pomocítouch
příkaz jako níže:$ sudo touch /var/log/btmpNyní můžeme zobrazit neúspěšné pokusy o přihlášení pomocí příkazu lastb, jak je uvedeno níže:
$ sudo lastbUkázkový výstup:
NEZNÁMÝ tty1 Po 11. led 07:51 - 07:51 (00:00)sk tty1 Po 11. led 07:51 - 07:51 (00:00) NEZNÁMÝ tty1 Po 11. led 07:51 - 07:51 ( 00:00)sk tty1 Po 11. led 07:51 - 07:51 (00:00)ostechni ssh:notty 192.168.225.37 Po 11. led 07:49 - 07:49 (00:00)ostechni ssh:1683.292 Po 11. led 07:49 - 07:49 (00:00)ostechni ssh:notty 192.168.225.37 Po 11. led 07:49 - 07:49 (00:00)NEZNÁMÝ tty1 St Jan 6 10:59 ( 10:59) 00:00)btmp začíná středa 6. ledna 10:59:57 2021![]()
Výše uvedené příkazy vypisují všechny neúspěšné pokusy o přihlášení všech uživatelů v systému Linux. Zobrazuje také neúspěšné pokusy o přihlášení, ke kterým došlo přes SSH.
3. Najděte naposledy přihlášené uživatele v Linuxu pomocí příkazu lastlog
poslední protokol zobrazuje nejnovější přihlášení všech uživatelů nebo konkrétního uživatele v operačních systémech Linux a Unix. Získává seznam naposledy přihlášených uživatelů z
/var/log/lastlog
soubor a zobrazí výsledek ve standardním výstupu.Chcete-li zobrazit nejnovější přihlášení všech uživatelů, spusťte:
$ lastlogUkázkový výstup:
Port uživatelského jména z nejnovějšího systému **Nikdy se nepřihlásíš**démon **Nikdy se nepřihlásíš**bin **Nikdy se nepřihlásíš**[...]systemd-coredump **Nikdy se nepřihlásíš**ostechnix tty1 Po Jan 11 07:51:46 +0000 2021lxd **Nikdy se nepřihlásíš**dnsmasq **Nikdy se nepřihlásíš**libvirt-qemu **Nikdy se nepřihlásíš**libvirt-dnsmasq **Nikdy se nepřihlásíš**cockpit-ws **Nikdy se nepřihlásíš v**cockpit-wsinstance **Nikdy se nepřihlásil**libvirtdbus **Nikdy se nepřihlásil**_flatpak **Nikdy se nepřihlásil**sk pts/0 192.168.225.37 St Jan 6 11:02:17 +0000 2021root **Neve r přihlášen**nikdo **Nikdy se nepřihlásil**![]()
Jak vidíte ve výše uvedeném výstupu,
lastlog
zobrazí poslední přihlašovací záznamy systémových uživatelských účtů a také dalších servisních účtů, jako jebin
,daemon
,sys
,nobody
atd.
lastlog
vypíše přihlašovací jméno, port, zdrojovou IP adresu, ze které se uživatel přihlásil a datum a čas posledního přihlášení. Pokud se uživatel nikdy nepřihlásil, vytiskne zprávu** Never logged in**
místo portu a času ve výstupu.Možná se divíte, proč se mnoho servisních účtů nikdy nepřihlásilo. Je to proto, že přihlašovací shelly pro tyto účty jsou nastaveny buď na
/sbin/nologin
. Je to běžná bezpečnostní praxe používaná k omezení přímého přístupu k shellu.3.1. Zobrazit podrobnosti o posledním přihlášeném konkrétním uživateli
Pokud chcete zobrazit poslední záznam konkrétního uživatele, například ostechnix , příkaz by byl:
$ lastlog -u ostechnixUkázkový výstup:
Port uživatelského jména z Latestostechnix tty1 Po Jan 11 07:51:46 +0000 20213.2. Zobrazit poslední přihlášené záznamy před X dnů nebo posledních X dnů
lastlog
příkaz dokáže zobrazit záznamy o posledních přihlášeních před nebo po X dnech.Například pomocí
-b
můžete získat nedávné záznamy o přihlášení všech uživatelů před více než 5 dny příznak jako níže:$ lastlog -b 5Podobně pro zobrazení záznamů o přihlášení novějších než 5 dní použijte
-t
příznak:$ lastlog -t 53.3. Odstraňte nebo vymažte poslední přihlašovací údaje pomocí lastlog v Linuxu
Pokud nechcete záznam lastlog uživatele, jednoduše je vymažte pomocí
-C
(--clear
) příznak:$ sudo lastlog -u ostechnix -CChcete-li ověřit, zda je záznam protokolu vymazán, spusťte:
$ lastlog -u ostechnixUsername Port od nejnovějšíostechnix **Nikdy se nepřihlašujete**Získání nápovědy
Další podrobnosti naleznete v části nápovědy příslušného příkazu.
$ last --help$ lastb --help$ lastlog --helpNebo si projděte manuálové stránky každého příkazu:
$ muž poslední$ man lastb$ man lastlogZávěr
last
,lastb
alastlog
Commands přichází na pomoc k detekci podezřelých uživatelských aktivit v systému Linux. Zjištění, kdo je nedávno přihlášen (nebo odhlášen) k serveru Linux, kdy se přihlásil a na jak dlouho, jsou důležité podrobnosti, které vám určitě pomohou při odstraňování problémů.Související čtení:
- Jak najít aktuálně přihlášené uživatele v Linuxu
- Jak vypsat seznam všech uživatelů v systému Linux
- Jak monitorovat aktivitu uživatele v systému Linux
- Jak omezit přístup uživatelů k systému Linux