Linux last command se používá ke kontrole dříve přihlášeného uživatele na váš server. Tento příkaz je v Linuxu velmi důležitý, protože pomáhá pro audit trail. Předpokládejme, že se v systému Linux něco změnilo, v této situaci si nejste jisti, kdo změny provedl. Pomocí příkazu 'poslední' můžete určit, kdo se v konkrétním čase přihlásil.
Poslední příkaz zobrazí seznam všech uživatelů přihlášených a odhlášených z '/var/log/wtmp' od vytvoření souboru. Wtmp je soubor protokolu, který zachycuje a zaznamenává každou událost přihlášení a odhlášení. Toto je binární soubor, který nelze zobrazit žádným textovým editorem. Tento trik je docela chytrý, protože žádný uživatel nebo root nemůže upravit soubor, jak chce.
Poslední příkaz vám poskytne informace o jménech všech přihlášených uživatelů, tty, IP adrese (pokud se uživatel připojuje na dálku), datum/čas a jak dlouho se uživatel přihlásil.
Jak spustit poslední příkaz
Stačí na konzoli napsat „poslední“.
Zde je ukázka:
$ last
leni pts/0 10.0.76.162 Mon Dec 2 12:32 - 13:25 (00:53)
pungki tty1 Mon Dec 2 09:31 still logged in
reboot system boot 2.6.32-358.23.2 Mon Dec 2 09:20 - 13:25 (04:05)
Zde je návod, jak číst poslední informace:
První sloupec - jméno uživatele, který se přihlásil.
Druhý sloupec - poskytněte nám informace o tom, jak je uživatel připojen (přes pts nebo tty). Výjimkou pro aktivitu restartu bude stav zobrazen jako 'system boot'.
Třetí sloupec - ukazuje, odkud se uživatel připojil. Pokud se uživatel připojí ze vzdáleného počítače, zobrazí se název hostitele nebo adresa IP. Pokud vidíte :0.0 nebo nic, znamená to, že uživatel je připojen přes místní terminál. S výjimkou aktivity restartu se jako stav zobrazí verze jádra.
Zbývající sloupce - zobrazuje čas přihlášení a datové razítko, když došlo k aktivitě protokolu. Čísla v závorce nám říkají, kolik hodin a minut ke spojení došlo.
pts (pseudoterminál) – znamená, že se uživatel připojuje přes vzdálená připojení jako SSH nebo telnet.
tty (dálnopis) – znamená, že se uživatel připojuje prostřednictvím přímého připojení k počítači nebo místnímu terminálu.
1. Omezit počet řádků
Když máte k zobrazení hodně řádků, můžete omezit počet řádků, které chcete vidět, pomocí -n
možnost.
V následujícím příkazu zobrazí 3 řádky počínaje aktuálním časem a zpět.
$ last -n 3
leni pts/0 10.0.76.162 Mon Dec 2 12:32 - 13:25 (00:53)
pungki tty1 Mon Dec 2 09:31 still logged in
reboot system boot 2.6.32-358.23.2 Mon Dec 2 09:20 - 13:25 (04:05)
2. Skrýt název hostitele/IP adresu
Použijte -R
možnost skrýt název hostitele nebo IP adresu před tiskem.
Ukázkový výstup
$ last -R
leni pts/0 Mon Dec 2 12:32 - 13:25 (00:53)
pungki tty1 Mon Dec 2 09:31 still logged in
reboot system boot Mon Dec 2 09:20 - 13:25 (04:05)
3. Zobrazit název hostitele v posledním sloupci
Někdy je snadné vytisknout název hostitele nebo IP adresu v posledním sloupci. Chcete-li to provést, můžete použít -a
možnost, jak je uvedeno níže:
$ last -a
leni pts/0 Mon Dec 2 12:32 - 13:25 (00:53) 10.0.76.162
pungki tty1 Mon Dec 2 09:31 still logged in :0.0
reboot system boot Mon Dec 2 09:20 - 13:25 (04:05) 2.6.32-358.23.2.el6.i686
4. Vytiskněte celý čas a data přihlášení a odhlášení
Ve výchozím nastavení poslední příkaz nezobrazí celé datum a čas. Můžete použít -F
možnost pro toto.
Zde je ukázka:
$ last -F
leni pts/0 10.0.76.162 Mon Dec 2 12:32:24 2013 - Mon Dec 2013 13:25:24 2013 (00:53
)
5. Vyhledávání mezi konkrétními daty
K prohledávání protokolů mezi konkrétními daty můžete použít volby -s (od) a -t (do).
Například následující příkaz vytiskne protokoly od 1. února do 1. května 2019.
$sudo last -F -s 2019-02-01 -t 2019-05-01
6. Vytisknout konkrétní uživatelské jméno
Pokud chcete sledovat konkrétního uživatele, můžete jej vytisknout. Zadejte jméno uživatele s posledním příkazem.
$ last leni
leni tty1 Mon Dec 2 18-42 still logged in
leni pts/0 Mon Dec 2 12:32 - 13:25 (00:53) 10.0.76.162
Nebo pokud chcete vědět, kdy je restart dokončen, můžete jej také zobrazit
$ last reboot
reboot system boot Mon Dec 2 09:20 - 16:55 (07:34)
reboot system boot Sun Dec 1 04:26 - 04:27 (00:01)
reboot system boot Wed Nov 27 20:27 - 01:24 (04:57)
reboot system boot Tue Nov 26 21:06 - 06:13 (09:06)
7. Vytiskněte konkrétní tty/pts
Last může také vytisknout informace o konkrétních tty/pts. Stačí zadat tty
name nebo pty name za posledním příkazem.
Ukázkové výstupy:
$ last tty1
pungki tty1 Mon Dec 2 09:31 still logged in
pungki tty1 Mon Dec 2 04:26 - down (00:00)
pungki tty1 Mon Dec 2 04:07 - down (00:00)
pungki tty1 Sun Dec 1 18:55 - 04:07 (09:12)
$ last pts/0
leni pts/0 10.0.76.162 Mon Dec 2 12:32 - 13:25 (00:53)
pungki pts/0 :0.0 Wed Nov 27 20:28 - down (04:56)
Když v hranatých závorkách vidíte hodnotu down, znamená to, že uživatel byl přihlášen od určitého času až do restartu nebo vypnutí systému.
8. Použijte jiný soubor než /var/log/wtmp
Ve výchozím nastavení bude poslední příkaz analyzovat informace z '/var/log/wtmp'. Pokud chcete, aby byl poslední příkaz analyzován z jiného souboru, můžete použít -f
parametr.
Například můžete otočit protokol po určité podmínce. Řekněme, že předchozí soubor se jmenuje '/var/log/wtmp.1' .
Poslední příkaz pak bude vypadat následovně:
$ last -f /var/log/wtmp.1
9. Zobrazit změny úrovně běhu
Existuje -x
pokud chcete zobrazit změny úrovně běhu.
Zde je ukázkový výstup:
pungki tty1 Mon Dec 2 19:21 still logged in
runlevel (to lvl 3) 2.6.32-358.23.2 Mon Dec 2 19:20 - 19:29 (00:08)
reboot system boot 2.6.32-358.23.2 Mon Dec 2 19:20 - 19:29 (00:08)
shutdown system down 2.6.32-358.23.2 Mon Dec 2 18:56 - 19:20 (00:23)
runlevel (to lvl 0) 2.6.32-358.23.2 Mon Dec 2 18:56 - 18:56 (00:00)
leni tty1 Mon Dec 2 18:42 - down (00:00)
Můžete vidět, že existují dvě položky úrovně běhu. Runlevel, který má to lvl 3
vstup znamená, že systém běží v režimu plné konzoly. Žádné aktivní X Window nebo GUI. Mezitím, když je systém vypnut, Linux nám běží na úrovni 0. Proto vám naposledy ukázal to lvl 0
vstup.
Chcete-li zobrazit datum a čas posledního vypnutí, použijte následující příkaz:
#last -x | grep shutdown | head -1
10. Zobrazit špatná přihlášení
Zatímco poslední příkaz zaznamenává úspěšná přihlášení, pak příkaz lastb zaznamená neúspěšné pokusy o přihlášení. Ke spuštění příkazu lastb musíte mít přístup root. Lastb bude analyzovat informace z /var/log/btmp.
Zde je ukázkový výstup z příkazu lastb.
# lastb
leni tty1 Mon Dec 2 22:12 - 22:12 (00:00)
rahma tty1 Mon Dec 2 22:11 - 22:11 (00:00)
11. Zobrazit IP adresu locahost
Pomocí -d
(pro nelokální přihlášení), linux ukládá nejen název hostitele vzdáleného hostitele, ale také jeho IP číslo.
# last -d
root pts/1 192.168.1.100 Fri Jun 22 01:58 still logged in
root pts/0 192.168.1.100 Fri Jun 22 01:52 still logged in
12. Otočte protokoly wtmp
Protože '/var/log/wtmp' zaznamenává každou jednotlivou aktivitu přihlášení, velikost souboru může rychle narůst. Ve výchozím nastavení bude Linux střídat '/var/log/wtmp' každý měsíc. Podrobnosti o rotaci jsou uvedeny v souboru /etc/logrotate.conf.
Zde je obsah mého souboru '/etc/logrotate.conf'.
/var/log/wtmp {
monthly
create 0664 root umtp
minsize 1M
rotate 1
}
A pro '/var/log/btmp' je zde výchozí konfigurace rotace aktivity
/var/log/btmp {
missingok
monthly
create 0600 root umtp
minsize 1M
rotate 1
}
Vymazat historii posledních příkazů
Jak víme, že to zapisuje do wtmp, takže pokud chceme smazat poslední historii, můžeme to udělat přes
#> /var/log/wtmp
Or
#> /var/log/lastlog
Závěr
V tomto tutoriálu jsme se naučili používat poslední příkaz v Linuxu ke kontrole protokolů ze souboru wtmp. Pro více podrobností prosím navštivte poslední manuálovou stránku zadáním man last na vaší konzoli.