Ako používať posledný príkaz v systéme Linux


Kto, kedy a odkiaľ? Dobré bezpečnostné postupy hovoria, že by ste mali vedieť, kto pristupuje k vášmu počítaču so systémom Linux. Ukážeme vám ako.

Súbor wtmp

Linux a ďalšie operačné systémy podobné Unixu, napríklad MacOS, sú veľmi dobré v protokolovaní. Niekde v útrobách systému sa nachádza denník snáď všetkého, na čo si spomeniete. Súbor denníka, ktorý nás zaujíma, sa nazýva wtmp. „W“ môže znamenať „kedy“ alebo „kto“ – zdá sa, že nikto nesúhlasí. Časť „tmp“ pravdepodobne znamená „dočasné“, ale môže to znamenať aj „časovú pečiatku“.

Vieme, že wtmp je denník, ktorý zachytáva a zaznamenáva každú udalosť prihlásenia a odhlásenia. Kontrola údajov v protokole wtmp je základným krokom pri zaujatí bezpečnostného prístupu k vašim povinnostiam správcu systému. V prípade typického rodinného počítača to nemusí byť z hľadiska bezpečnosti také kritické, ale je zaujímavé mať možnosť skontrolovať kombinované používanie počítača.

Na rozdiel od mnohých textových protokolových súborov v Linuxe je wtmp binárny súbor. Na prístup k údajom v ňom musíme použiť nástroj určený na túto úlohu.

Tento nástroj je posledný príkaz.

Posledný príkaz

Príkaz last načíta údaje z protokolu wtmp a zobrazí ich v okne terminálu.

Ak napíšete posledný a stlačíte Enter, zobrazia sa všetky záznamy zo súboru denníka.

last

Každý záznam z wtmp sa zobrazí v okne terminálu.

Zľava doprava každý riadok obsahuje:

  • The username of the person who logged in.
  • The terminal they were logged into. A terminal entry of :0 means they were logged in on the Linux computer itself.
  • The IP address of the machine they were logged into.
  • The login time and date stamp.
  • The duration of the session.

Posledný riadok nám hovorí o dátume a čase najskoršej zaznamenanej relácie v protokole.

Pri každom spustení počítača sa do denníka zapíše prihlasovací záznam pre fiktívneho používateľa „reboot“. Pole terminálu sa nahradí verziou jadra. Trvanie prihlásenej relácie pre tieto položky predstavuje dobu prevádzky počítača.

Zobrazenie konkrétneho počtu riadkov

Použitie samotného príkazu last vytvorí výpis celého protokolu, pričom väčšina z nich preletí okolo okna terminálu. Časť, ktorá zostane viditeľná, sú najskoršie údaje v protokole. Toto ste asi nechceli vidieť.

Môžete povedať posledný, aby vám poskytol konkrétny počet riadkov výstupu. Vykonajte to zadaním požadovaného počtu riadkov na príkazovom riadku. Všimnite si pomlčku. Ak chcete zobraziť päť riadkov, musíte zadať -5 a nie 5:

last -5

To dáva prvých päť riadkov z denníka, čo sú najnovšie údaje.

Zobrazenie názvov sietí pre vzdialených používateľov

Možnosť -d (Systém názvov domén) hovorí poslednému, aby sa pokúsil preložiť adresy IP vzdialených používateľov na názov počítača alebo siete.

last -d

Pre last nie je vždy možné previesť IP adresu na názov siete, ale príkaz to urobí, keď to bude možné.

Skrytie adries IP a názvov sietí

Ak vás IP adresa alebo názov siete nezaujíma, použite na potlačenie tohto poľa možnosť -R (bez názvu hostiteľa).

Pretože to poskytuje prehľadnejší výstup bez škaredých okolkov, táto možnosť bola použitá vo všetkých nasledujúcich príkladoch. Ak by ste použili posledný na identifikáciu nezvyčajnej alebo podozrivej aktivity, nepotlačili toto pole.

Výber záznamov podľa dátumu

Môžete použiť možnosť -s (od) na obmedzenie výstupu tak, aby zobrazoval iba udalosti prihlásenia, ktoré sa uskutočnili od určitého dátumu.

Ak by ste chceli vidieť iba udalosti prihlásenia, ktoré sa uskutočnili od 26. mája 2019, použili by ste nasledujúci príkaz:

last -R -s 2019-05-26

Na výstupe sú zobrazené záznamy s udalosťami prihlásenia, ktoré prebehli od času 00:00 v určený deň až po najnovšie záznamy v log súbore.

Vyhľadávanie do dátumu ukončenia

Na určenie dátumu ukončenia môžete použiť -t (do). To vám umožňuje vybrať súbor prihlasovacích záznamov, ktoré sa uskutočnili medzi dvoma dátumami záujmu.

Tento príkaz žiada last na načítanie a zobrazenie prihlasovacích záznamov od 00:00 (úsvit) 26. dňa do času 00:00 (úsvit) 27. dňa. Toto zužuje zoznam na prihlasovacie relácie, ktoré sa uskutočnili iba 26.

Formáty času a dátumu

Časy aj dátumy môžete použiť s možnosťami -s a -t.

Rôzne časové formáty, ktoré možno použiť s poslednými možnosťami, ktoré používajú dátumy a časy, sú (údajne):

  • YYYYMMDDhhmmss
  • YYYY-MM-DD hh:mm:ss
  • YYYY-MM-DD hh:mm – seconds are set to 00
  • YYYY-MM-DD – time is set to 00:00:00
  • hh:mm:ss – date is set to today
  • hh:mm – date will be set to today, seconds to 00
  • now
  • yesterday – time is set to 00:00:00
  • today – time is set to 00:00:00
  • tomorrow – time is set to 00:00:00
  • +5min
  • -5days

Prečo „údajne“?

Druhý a tretí formát v zozname nefungovali počas výskumu pre tento článok. Tieto príkazy boli testované na distribúciách Ubuntu, Fedora a Manjaro. Ide o deriváty distribúcií Debian, RedHat a Arch. To pokrýva všetky hlavné rodiny distribúcie Linuxu.

last -R -s 2019-05-26 11:00 -t 2019-05-27 13:00

Ako vidíte, príkaz nevrátil žiadne záznamy.

Použitie prvého formátu dátumu a času zo zoznamu s rovnakým dátumom a časom ako predchádzajúci príkaz vráti záznamy:

last -R -s 20190526110000 -t 20190527130000

Vyhľadávanie podľa relatívnych jednotiek

Môžete tiež určiť časové obdobia, ktoré sa merajú v minútach alebo dňoch vzhľadom na aktuálny dátum a čas. Tu žiadame o záznamy spred dvoch dní až po jeden deň.

last -R -s -2days -t -1days

Včera, dnes a teraz

Ako skratku pre včerajší a dnešný dátum môžete použiť včera a zajtra.

last -R -s yesterday -t today

Nie že by to dnes nezahŕňalo žiadne rekordy. To je očakávané správanie. Príkaz požaduje záznamy od dátumu začiatku do dátumu ukončenia. Nezahŕňa záznamy s dátumom ukončenia.

Možnosť teraz je skratka pre „dnes v aktuálnom čase“. Ak chcete zobraziť udalosti prihlásenia, ktoré prebehli od 00:00 (úsvit) do času, kedy zadáte príkaz, použite tento príkaz:

last -R -s today -t now

Zobrazia sa všetky aktuálne udalosti prihlásenia vrátane tých, ktoré sú stále prihlásené.

Súčasná možnosť

Možnosť -p (súčasnosť) vám umožňuje zistiť, kto bol v určitom čase prihlásený.

Nezáleží na tom, kedy sa prihlásili alebo odhlásili, ale ak boli prihlásení do počítača v čase, ktorý určíte, budú zahrnutí do zoznamu.

Ak zadáte čas bez dátumu, posledný predpokladá, že máte na mysli „dnes“.

last -R -p 09:30

Ľudia, ktorí sú stále prihlásení (samozrejme), nemajú čas na odhlásenie; sú opísané ako stále prihlásení . Ak sa počítač od zadaného času nereštartoval, bude uvedený ako stále spustený.

Ak použijete skratku now s voľbou -p (prítomný), môžete zistiť, kto je prihlásený v čase zadávania príkazu.

last -R -p now

Toto je trochu zdĺhavý spôsob, ako dosiahnuť to, čo sa dá dosiahnuť pomocou príkazu who.

Príkaz lastb

Príkaz lastb si zaslúži zmienku. Číta údaje z denníka s názvom btmp. Na tento názov logu existuje trochu väčšia zhoda. „b“ znamená zlé, ale časť „tmp“ je stále predmetom diskusie.

lastb uvádza zoznam chybných (neúspešných) pokusov o prihlásenie. Akceptuje rovnaké možnosti ako posledné. Pretože išlo o neúspešné pokusy o prihlásenie, všetky záznamy budú mať trvanie 00:00.

Musíte použiť sudo s lastb.

sudo lastb -R

Posledné slovo o veci

Vedieť, kto sa prihlásil do vášho počítača so systémom Linux, kedy a odkiaľ, je užitočná informácia. V kombinácii s podrobnosťami o neúspešných pokusoch o prihlásenie vás vyzbrojí prvými krokmi pri vyšetrovaní podozrivého správania.