Jak používat poslední příkaz v systému Linux

Kdo, kdy a odkud? Dobré bezpečnostní postupy říkají, že byste měli vědět, kdo přistupoval k vašemu počítači se systémem Linux. Ukážeme vám jak.

Soubor wtmp

Linux a další operační systémy podobné Unixu, jako je MacOS, jsou velmi dobré v protokolování. Někde v útrobách systému se skrývá log snad všeho, na co si vzpomenete. Soubor protokolu, který nás zajímá, se nazývá wtmp. „w“ může znamenat „kdy“ nebo „kdo“ – zdá se, že nikdo nesouhlasí. Část „tmp“ pravděpodobně znamená „dočasné“, ale může také znamenat „časové razítko“.

Co víme, je, že wtmp je protokol, který zachycuje a zaznamenává každou událost přihlášení a odhlášení. Kontrola dat v protokolu wtmp je základním krokem v přístupu k vašim povinnostem správce systému s ohledem na bezpečnost. Pro typický rodinný počítač to nemusí být z hlediska zabezpečení tak zásadní, ale je zajímavé mít možnost zkontrolovat kombinované používání počítače.

Na rozdíl od mnoha textových souborů protokolu v Linuxu je wtmp binární soubor. Pro přístup k datům v něm musíme použít nástroj určený pro tento úkol.

Tento nástroj je posledním příkazem.

Poslední příkaz

Poslední příkaz načte data z protokolu wtmp a zobrazí je v okně terminálu.

Pokud napíšete poslední a stisknete Enter, bude zobrazit všechny záznamy ze souboru protokolu.

last

Každý záznam z wtmp je zobrazen v okně terminálu.

Zleva doprava každý řádek obsahuje:

Uživatelské jméno osoby, která se přihlásila.
Terminál, do kterého byli přihlášeni. Terminálový záznam :0 znamená, že byli přihlášeni na samotném počítači se systémem Linux.
IP adresa počítače, ke kterému byli přihlášeni.
Časové a datové razítko přihlášení.
Doba trvání relace.

  Jak nainstalovat Darktable na Linux

Poslední řádek nám říká datum a čas nejdříve zaznamenané relace v protokolu.

Při každém spuštění počítače je do protokolu zapsán přihlašovací záznam pro fiktivního uživatele „reboot“. Pole terminálu je nahrazeno verzí jádra. Trvání přihlášené relace pro tyto položky představuje dobu provozuschopnosti počítače.

Zobrazení určitého počtu řádků

Použití posledního příkazu samostatně vytvoří výpis celého protokolu, přičemž většina z nich prosviští kolem okna terminálu. Část, která zůstane viditelná, jsou nejstarší data v protokolu. Tohle asi není to, co jsi chtěl vidět.

Můžete říct last, aby vám poskytl konkrétní počet řádků výstupu. Udělejte to zadáním požadovaného počtu řádků na příkazovém řádku. Všimněte si pomlčky. Chcete-li zobrazit pět řádků, musíte zadat -5 a ne 5:

last -5

To poskytuje prvních pět řádků z protokolu, což jsou nejnovější data.

Zobrazení síťových názvů pro vzdálené uživatele

Volba -d (Domain Name System) říká poslednímu, aby se pokusil přeložit IP adresy vzdálených uživatelů na název počítače nebo sítě.

last -d

Není vždy možné pro last převést IP adresu na název sítě, ale příkaz to udělá, když to bude možné.

Skrytí IP adres a síťových názvů

Pokud vás IP adresa nebo název sítě nezajímá, použijte volbu -R (bez názvu hostitele) k potlačení tohoto pole.

Protože to poskytuje úhlednější výstup bez ošklivých obtékání, byla tato možnost použita ve všech následujících příkladech. Pokud byste použili poslední ke snaze identifikovat neobvyklou nebo podezřelou aktivitu, toto pole byste nepotlačili.

Výběr záznamů podle data

Pomocí volby -s (od) můžete omezit výstup tak, aby zobrazoval pouze události přihlášení, ke kterým došlo od určitého data.

Pokud byste chtěli vidět pouze události přihlášení, které proběhly od 26. května 2019, použili byste následující příkaz:

last -R -s 2019-05-26

Výstup zobrazuje záznamy s událostmi přihlášení, které proběhly od času 00:00 zadaného dne, až po nejnovější záznamy v log souboru.

  Jak si vytvořit svůj vlastní Linux NAS s Open Media Vault

Hledání do data ukončení

K zadání koncového data můžete použít -t (až do). To vám umožní vybrat sadu přihlašovacích záznamů, které proběhly mezi dvěma daty zájmu.

Tento příkaz požaduje poslední načtení a zobrazení přihlašovacích záznamů od 00:00 (úsvit) 26. do času 00:00 (úsvit) 27. dne. Toto zužuje seznam na přihlašovací relace, které se konaly pouze 26.

Formáty času a data

S volbami -s a -t můžete použít časy i data.

Různé časové formáty, které lze použít s posledními možnostmi, které používají data a časy, jsou (údajně):

YYYYMMDDhhmmss
YYYY-MM-DD hh:mm:ss
YYYY-MM-DD hh:mm – sekundy jsou nastaveny na 00
YYYY-MM-DD – čas je nastaven na 00:00:00
hh:mm:ss – datum je nastaveno na dnešek
hh:mm – datum bude nastaveno na dnešek, sekundy na 00
Nyní
včera – čas je nastaven na 00:00:00
dnes – čas je nastaven na 00:00:00
zítra – čas je nastaven na 00:00:00
+ 5 min
-5 dní

Proč „údajně“?

Druhý a třetí formát v seznamu nefungoval během výzkumu pro tento článek. Tyto příkazy byly testovány na distribucích Ubuntu, Fedora a Manjaro. Jedná se o deriváty distribucí Debian, RedHat a Arch. To pokrývá všechny hlavní rodiny distribuce Linuxu.

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

Jak vidíte, příkaz nevrátil vůbec žádné záznamy.

Použití prvního formátu data a času ze seznamu se stejným datem a časy jako předchozí příkaz vrátí záznamy:

last -R -s 20190526110000 -t 20190527130000

Vyhledávání podle relativních jednotek

Můžete také určit časové úseky, které se měří v minutách nebo dnech vzhledem k aktuálnímu datu a času. Zde žádáme o záznamy z doby před dvěma dny až do jednoho dne.

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

Včera, dnes a teď

Včera a zítra můžete použít jako zkratku pro včerejší datum a dnešní datum.

last -R -s yesterday -t today

Ne, že by to dnes nezahrnovalo žádné rekordy. To je očekávané chování. Příkaz požaduje záznamy od počátečního data do koncového data. Nezahrnuje záznamy z data ukončení.

  5 nejlepších doků pro použití v systému Linux

Možnost now je zkratka pro „dnes v aktuálním čase“. Chcete-li zobrazit události přihlášení, které proběhly od 00:00 (úsvit) do doby, kdy zadáte příkaz, použijte tento příkaz:

last -R -s today -t now

Zobrazí se všechny události přihlášení až do současnosti, včetně těch, které jsou stále přihlášeny.

Současná možnost

Volba -p (současnost) vám umožňuje zjistit, kdo byl v určitém okamžiku přihlášen.

Nezáleží na tom, kdy se přihlásili nebo odhlásili, ale pokud byli přihlášeni k počítači v době, kterou určíte, budou zahrnuti do výpisu.

Pokud zadáte čas bez data, předpokládá se, že máte na mysli „dnes“.

last -R -p 09:30

Lidé, kteří jsou stále přihlášeni (samozřejmě), nemají čas na odhlášení; jsou popisováni jako stále přihlášení . Pokud nebyl počítač od zadané doby restartován, bude uveden jako stále spuštěný.

Pokud použijete zkratku now s volbou -p (současnost), můžete zjistit, kdo je přihlášen v době zadání příkazu.

last -R -p now

Toto je poněkud zdlouhavý způsob, jak dosáhnout toho, čeho lze dosáhnout pomocí příkazu who.

Příkaz lastb

Příkaz lastb si zaslouží zmínku. Čte data z protokolu s názvem btmp. Ohledně tohoto názvu logu existuje trochu větší shoda. Písmeno ‚b‘ znamená špatné, ale část ‚tmp‘ je stále předmětem diskuse.

lastb uvádí špatné (neúspěšné) pokusy o přihlášení. Přijímá stejné možnosti jako minule. Protože se jednalo o neúspěšné pokusy o přihlášení, všechny záznamy budou mít trvání 00:00.

Musíte použít sudo s lastb.

sudo lastb -R

Poslední slovo o věci

Vědět, kdo, kdy a odkud se přihlásil do vašeho počítače se systémem Linux, jsou užitečné informace. V kombinaci s podrobnostmi o neúspěšných pokusech o přihlášení vás vyzbrojí prvními kroky při vyšetřování podezřelého chování.