Ako skontrolovať otvorené súbory v systéme Linux

How Check Open Files Linux



Možno ste sa stretli s príslovím, že všetko je v Linuxe súbor. Aj keď to nie je celkom pravda, skrýva to súbor právd.

V systémoch podobných Linuxu a Unixu je všetko ako súbor. To znamená, že zdrojom v systéme Unix bude priradený deskriptor súborov vrátane úložných zariadení, sieťových zásuviek, procesov atď.







Deskriptor súboru je jedinečné číslo, ktoré identifikuje súbor a ďalšie vstupno -výstupné zariadenia. Opisuje zdroje a spôsob, akým k nim jadro pristupuje. Predstavte si to ako bránu k hardvérovým zdrojom abstrakcie jadra.



Pojem deskriptorov súborov bohužiaľ presahuje rámec tohto tutoriálu; zvážte nasledujúci odkaz a začnite sa dozvedieť viac:



https://en.wikipedia.org/wiki/File_descriptor





To znamená, že Unix a unixové systémy, ako napríklad Linux, takéto súbory vo veľkej miere používajú. Ako skúsený používateľ Linuxu je sledovanie otvorených súborov a postupu a používateľov, ktorí ich používajú, veľmi užitočný.

Tento tutoriál sa zameria na spôsoby zobrazenia otvorených súborov a na to, ktorý proces alebo používateľ je zodpovedný.



Predpoklady

Skôr ako začneme, uistite sa, že máte:

  • Linuxový systém
  • Užívateľ s oprávneniami root alebo sudo

Ak máte tieto, začnime:

Nástroj LSOF

Vytvoril Victor A Abell, Zoznam otvorených súborov alebo skrátene lsof je nástroj príkazového riadka, ktorý nám umožňuje zobraziť otvorené súbory a procesy alebo používateľov, ktorí ich otvorili.

Obslužný program lsof je k dispozícii vo veľkých distribúciách Linuxu; môže sa však zdať, že nie je nainštalovaný, a preto môže byť potrebné nainštalovať manuálne.

Ako nainštalovať lsof na Debian/Ubuntu

Ak ho chcete nainštalovať do Debianu, použite príkaz:

sudo apt-get aktualizácia

sudo apt-get nainštalovaťlsof-a

Ako nainštalovať na REHL/CentOS

Ak chcete nainštalovať na REHL a CentOS, použite príkaz:

sudoaktualizácia dnf

sudodnfInštalácialsof

Ako nainštalovať na Arch

V Arche zavolajte správcu balíkov pomocou príkazu:

sudopacman-Jeho

sudopacman-Slsof

Ako nainštalovať na Fedoru

Na Fedore použite príkaz:

sudo mňam inštalácialsof

Akonáhle budete mať nainštalovaný a aktualizovaný nástroj lsof, môžeme ho začať používať.

Základné použitie

Ak chcete použiť nástroj lsof, zadajte príkaz:

sudolsof

Po vykonaní vyššie uvedeného príkazu lsof uloží veľa informácií, ako je uvedené nižšie:

Vyššie uvedený výstup zobrazuje všetky súbory otvorené týmito procesmi. Výstup má rôzne stĺpce, z ktorých každý predstavuje konkrétne informácie o súbore.

  • Stĺpec PRÍKAZ - zobrazuje názov procesu, ktorý používa súbor.
  • PID - ukazuje identifikátor procesu pomocou súboru.
  • TID - Zobrazuje ID úlohy (vlákna) procesu.
  • TASKCMD - Predstavte názov príkazu úlohy.
  • UŽÍVATEĽ - Vlastník procesu.
  • FD - Zobrazuje číslo deskriptora súboru. Takto procesy používajú súbor; možnosti dostupné v tomto stĺpcovom výstupe zahŕňajú:
  • cwd - aktuálny pracovný adresár.
  • meme -súbor mapovaný do pamäte
  • pd - nadradený adresár
  • jld - väzenský adresár
  • ltx - text zdieľanej knižnice
  • rtd - koreňový adresár.
  • TXT - programový kód a údaje
  • NS - súbor sledovania jadra.
  • chyba - Chyba informácie o deskriptore súboru
  • mmp -Zariadenie s mapou pamäte.
  • TYP - Zobrazuje typ uzla priradeného k súboru, napríklad:
  • Unix - pre soket domény Unix.
  • VÁM - predstavuje adresár
  • REG - predstavujúci bežný súbor
  • CHR - predstavuje súbor špeciálnych znakov.
  • ODKAZ - súbor symbolických odkazov
  • BLK - Blokovať špeciálny súbor
  • Internet - zásuvka internetovej domény
  • FIFO - pomenovaná fajka (súbor First In First Out)
  • RÚRA - pre potrubia

A mnoho ďalších.

  • ZARIADENIA - Zobrazuje čísla zariadení oddelené čiarkami v poradí súboru špeciálnych znakov, bloku špeciálnych, bežných, adresárových a súborov NFS.
  • VEĽKOSŤ/VYPNUTO - zobrazuje veľkosť posunu súboru pre súbor v bajtoch.
  • NODE - zobrazuje číslo uzla lokálneho súboru, typ pre typ internetového protokolu atď.
  • NÁZOV - zobrazuje názov bodu pripojenia a fs, na ktorých sa súbor nachádza.

Poznámka: Podrobné informácie o stĺpcoch nájdete v príručke k dokumentu.

Ako zobraziť procesy, ktoré otvorili súbor

Lsof nám poskytuje možnosti, ktoré nám pomáhajú filtrovať výstup tak, aby zobrazoval iba procesy, ktoré otvorili konkrétny súbor.

Ak chcete napríklad zobraziť súbor, ktorý otvoril súbor /bin /bash, použite príkaz ako:

sudolsof/dopoludnia/bash

To vám poskytne výstup, ako je uvedené nižšie:

ZARIADITE VEĽKOSŤ PID UŽÍVATEĽA TYPU TYPU/VYPNUTIE NÁZVU

ksmtuned1025root txt REG253,0 1150704 428303 /usr/dopoludnia/bash

bash 2968centos txt REG253,0 1150704 428303 /usr/dopoludnia/bash

bash 3075centos txt REG253,0 1150704 428303 /usr/dopoludnia/bash

Ako zobrazovať súbory otvorené konkrétnym používateľom

Môžeme tiež filtrovať výstup a zobrazovať súbory otvorené konkrétnym používateľom. Vykonáme to pomocou príznaku -u, za ktorým nasleduje používateľské meno, ako:

sudolsof-ustovky

To vám poskytne výstup, ako je uvedené nižšie:

Ako zobraziť súbory otvorené konkrétnym procesom

Predpokladajme, že chceme zobraziť všetky súbory otvorené konkrétnym procesom? Na to môžeme použiť PID procesu na filtrovanie výstupu.

Nasledujúci príkaz napríklad zobrazuje súbory otvorené pomocou bash.

sudolsof-p 3075

Získate tak iba súbory otvorené systémom systemd, ako je znázornené na obrázku:

Ako zobraziť súbory otvorené v adresári

Aby sa súbory otvorili v konkrétnom adresári, môžeme zadať možnosť +D a za ním cestu k adresáru.

Vytvorte napríklad zoznam otvorených súborov v adresári /etc.

sudol +f/atď

Nasleduje výstup z tohto:

Ako zobraziť sieťové pripojenie

Pretože všetko, čo je v Linuxe, je súbor, môžeme získať sieťové súbory, ako sú súbory TCP alebo pripojenia.

Môžeme použiť príkaz:

sudolsof-iTCP

To vám poskytne pripojenia TCP v systéme.

Filtrovať môžete aj podľa konkrétneho portu pomocou nižšie uvedeného príkazu:

sudolsof-i:22

To vám poskytne výstup ako je uvedené nižšie:

Ako nepretržite zobrazovať súbory

Lsof nám poskytuje režim na slučku výstupu každých niekoľko sekúnd. To vám umožní nepretržite monitorovať súbory otvorené procesom alebo používateľom.

Táto možnosť však vyžaduje, aby ste proces ukončili ručne.

Nasledujúci príkaz napríklad nepretržite monitoruje súbory otvorené na porte 22:

sudolsof -r-i:22

Ako vidíte, v tretej slučke lsof zachytí vytvorené spojenie so serverom na SSH.

Záver

Lsof je neuveriteľne užitočný nástroj. Umožňuje vám monitorovať kritické súbory, ako aj monitorovať používateľov a procesy otvárania súborov. To môže byť veľmi užitočné pri riešení problémov alebo pri hľadaní škodlivých pokusov o systém.

Ako je uvedené v tomto návode, pomocou rôznych príkladov a metód môžete skombinovať funkcie poskytované nástrojom lsof pre vlastné monitorovanie.

Ďakujeme za prečítanie a zdieľanie! Dúfam, že ste sa dozvedeli niečo nové!