Kako provjeriti otvorene datoteke u Linuxu

How Check Open Files Linux

Možda ste naišli na izreku: Sve je datoteka u Linuxu. Iako to nije posve točno, ipak sadrži niz istina.

U sustavima nalik Linuxu i Unixu sve je poput datoteke. To znači da se resursima u Unix sustavu dodjeljuje opis datoteke, uključujući uređaje za pohranu, mrežne utičnice, procese itd.



Deskriptor datoteke jedinstveni je broj koji identificira datoteku i druge ulazno/izlazne uređaje. Opisuje resurse i način na koji kernel pristupa njima. Zamislite to kao pristupnik hardverskim resursima za apstrakciju Kernela.



Nažalost, pojam deskriptora datoteka izlazi iz okvira ovog vodiča; razmotrite dolje navedenu vezu za početak učenja:



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

To znači da Unix i Unix slični sustavi, poput Linuxa, jako koriste takve datoteke. Kao snažan korisnik Linuxa, vidjeti otvorene datoteke i proces i korisnike koji ih koriste nevjerojatno je korisno.

Ovaj vodič će se usredotočiti na načine pregledavanja otvorenih datoteka i koji je proces ili korisnik odgovoran.



Preduvjeti

Prije nego počnemo, provjerite imate li:

  • Linux sustav
  • Korisnik s root ili sudo privilegijama

Ako imate ove, započnimo:

LSOF Utility

Kreirao Victor A Abell, List open files, ili skraćeno lsof, uslužni je program naredbenog retka koji nam omogućuje pregled otvorenih datoteka i procesa ili korisnika koji su ih otvorili.

Pomoćni program lsof dostupan je u većim distribucijama Linuxa; međutim, možda ćete otkriti da nije instaliran pa ćete ga možda morati instalirati ručno.

Kako instalirati lsof na Debian/Ubuntu

Da biste ga instalirali na Debian, upotrijebite naredbu:

sudo apt-get ažuriranje

sudo apt-get installlsof-i

Kako instalirati na REHL/CentOS

Za instalaciju na REHL i CentOS koristite naredbu:

sudodnf ažuriranje

sudodnfinstaliratilsof

Kako instalirati na Arch

Na Archu pozovite upravitelja paketa naredbom:

sudoPac Man-Njegov

sudoPac Man-Slsof

Kako instalirati na Fedoru

Na Fedori koristite naredbu:

sudo yum installlsof

Nakon što instalirate i ažurirate uslužni program lsof, možemo ga početi koristiti.

Osnovna upotreba

Za korištenje alata lsof unesite naredbu:

sudolsof

Nakon što izvršite gornju naredbu, lsof će izbaciti mnogo podataka kao što je prikazano u nastavku:

Gornji izlaz prikazuje sve datoteke koje su otvorili procesi. Izlaz ima različite stupce, od kojih svaki predstavlja određene informacije o datoteci.

  • Stupac ZAPOVIJED - prikazuje naziv procesa koji koristi datoteku.
  • PID - prikazuje Identifikator procesa procesa pomoću datoteke.
  • TID - Prikazuje ID zadatka (niti) procesa.
  • TASKCMD - Predstavlja naziv naredbe task.
  • KORISNIK - Vlasnik procesa.
  • F D - Prikazuje broj deskriptora datoteke. Ovako procesi koriste datoteku; opcije dostupne u ispisu ovog stupca uključuju:
  • cwd - trenutni radni imenik.
  • meme -datoteka preslikana u memoriju
  • pd - roditeljski imenik
  • jld - direktorij zatvora
  • ltx - tekst zajedničke biblioteke
  • rtd - korijenski direktorij.
  • txt - programski kod i podaci
  • NS - datoteka za praćenje jezgre.
  • griješiti - Pogreška u informacijama o opisniku datoteke
  • mmp -Uređaj s kartiranjem memorije.
  • TIP - Pokazuje vrstu čvora povezanu s datotekom, kao što su:
  • Unix - za Unix domenski utičnicu.
  • TEBI - predstavlja imenik
  • REG - predstavlja redovitu datoteku
  • CHR - predstavlja datoteku s posebnim znakovima.
  • VEZA - datoteka simbolične veze
  • BLK - Blokirajte posebnu datoteku
  • INET - utičnica internetske domene
  • FIFO - imenovana cijev (datoteka First In First Out)
  • CIJEV - za cijevi

I još mnogo toga.

  • UREĐAJI - Prikazuje brojeve uređaja odvojene zarezima po redoslijedu datoteke s posebnim znakovima, blokiranje posebnih, običnih, imeničkih i NFS datoteka.
  • VELIČINA/ISKLJ - prikazuje veličinu pomaka pr datoteke datoteke u bajtovima.
  • ČVOR - prikazuje broj čvora lokalne datoteke, vrstu za vrstu internetskog protokola itd.
  • IME - prikazuje naziv točke montiranja i fs na kojima se datoteka nalazi.

Bilješka: Za detaljne informacije o stupcima pogledajte lsof priručnik.

Kako prikazati procese koji su otvorili datoteku

Lsof nam nudi opcije koje nam pomažu filtrirati izlaz kako bi prikazali samo procese koji su otvorili određenu datoteku.

Na primjer, da biste vidjeli datoteku koja je otvorila datoteku /bin /bash, upotrijebite naredbu kao:

sudolsof/am/bash

Ovo će vam dati izlaz kao što je prikazano u nastavku:

ZAPOVJEDI PID KORISNIK VELIČINA TIPA FD TIPA/OFF NAZIV ČVORA

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

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

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

Kako prikazati datoteke koje je otvorio određeni korisnik

Također možemo filtrirati izlaz za prikaz datoteka koje je otvorio određeni korisnik. To radimo pomoću zastavice -u iza koje slijedi korisničko ime kao:

sudolsof-ustotine

Ovo će vam dati izlaz kao što je prikazano u nastavku:

Kako prikazati datoteke koje je otvorio određeni postupak

Pretpostavimo da želimo vidjeti sve datoteke koje je otvorio određeni proces? U tu svrhu možemo koristiti PID procesa za filtriranje izlaza.

Na primjer, naredba u nastavku prikazuje datoteke koje je otvorio bash.

sudolsof-str 3075

Ovo će vam dati samo datoteke koje je systemd otvorio kao što je prikazano:

Kako prikazati datoteke otvorene u imeniku

Da bismo otvorili datoteke u određenom direktoriju, možemo proslijediti opciju +D nakon koje slijedi put direktorija.

Na primjer, navedite otvorene datoteke u direktoriju /etc.

sudolsof +D/itd

Ispod je izlaz za ovo:

Kako prikazati mrežnu vezu

Budući da je sve u Linuxu datoteka, možemo dobiti mrežne datoteke poput TCP datoteka ili veza.

Možemo koristiti naredbu:

sudolsof-iTCP

To će vam omogućiti TCP veze u sustavu.

Također možete filtrirati prema određenom portu pomoću naredbe prikazane ispod:

sudolsof-i:22

Ovo će vam dati izlaz kao što je prikazano u nastavku:

Kako kontinuirano prikazivati ​​datoteke

Lsof nam daje način za petlju izlaz svakih nekoliko sekundi. To vam omogućuje kontinuirano praćenje datoteka koje je otvorio proces ili korisnik.

Ova opcija, međutim, zahtijeva da ručno završite proces.

Na primjer, naredba ispod neprestano nadzire datoteke otvorene na portu 22:

sudolsof -r-i:22

Kao što vidite, u trećoj petlji lsof hvata uspostavljenu vezu sa poslužiteljem na SSH -u.

Zaključak

Lsof je nevjerojatno koristan alat. Omogućuje vam praćenje kritičnih datoteka, kao i praćenje korisnika i procesa koji otvaraju datoteke. To može biti nevjerojatno korisno pri rješavanju problema ili traženju zlonamjernih pokušaja u sustavu.

Kao što je prikazano u ovom vodiču, pomoću različitih primjera i metoda možete kombinirati funkcije koje pruža alat lsof za prilagođeno praćenje.

Hvala vam što čitate i dijelite! Nadam se da ste naučili nešto novo!