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žuriranjesudo apt-get installlsof-i
Kako instalirati na REHL/CentOS
Za instalaciju na REHL i CentOS koristite naredbu:
sudodnf ažuriranjesudodnfinstaliratilsof
Kako instalirati na Arch
Na Archu pozovite upravitelja paketa naredbom:
sudoPac Man-NjegovsudoPac Man-Slsof
Kako instalirati na Fedoru
Na Fedori koristite naredbu:
sudo yum installlsofNakon što instalirate i ažurirate uslužni program lsof, možemo ga početi koristiti.
Osnovna upotreba
Za korištenje alata lsof unesite naredbu:
sudolsofNakon š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/bashOvo će vam dati izlaz kao što je prikazano u nastavku:
ZAPOVJEDI PID KORISNIK VELIČINA TIPA FD TIPA/OFF NAZIV ČVORAksmtuned1025root 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-ustotineOvo ć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 3075Ovo ć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/itdIspod 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-iTCPTo će vam omogućiti TCP veze u sustavu.
Također možete filtrirati prema određenom portu pomoću naredbe prikazane ispod:
sudolsof-i:22Ovo ć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!