Du kanske har stött på talesättet, Allt är en fil i Linux. Även om detta inte är helt sant, håller det en uppsättning sanningar till det.
I Linux och Unix-liknande system är allt som en fil. Det betyder att resurserna i Unix -systemet tilldelas en filbeskrivning, inklusive lagringsenheter, nätverksuttag, processer etc.
En filbeskrivare är ett unikt nummer som identifierar en fil och andra in-/utmatningsenheter. Den beskriver resurser och hur kärnan kommer åt dem. Tänk på det som en inkörsport till Kernel -abstraktionens hårdvaruresurser.
Tyvärr ligger begreppet filbeskrivare utanför ramen för denna handledning; överväga länken nedan för att komma igång med att lära dig mer:
https://en.wikipedia.org/wiki/File_descriptor
Det betyder att Unix och Unix-liknande system som Linux använder sådana filer kraftigt. Som Linux -kraftanvändare är det otroligt användbart att se de öppna filerna och processen och användare som använder dem.
Denna handledning kommer att fokusera på sätt att se filerna öppna och vilken process eller användare som är ansvarig.
Förkunskaper
Innan vi börjar, se till att du har:
- Ett Linux -system
- Användare med root- eller sudo -privilegier
Om du har dessa, låt oss komma igång:
LSOF -verktyg
Skapad av Victor A Abell, List open files, eller kortfattat lsof, är ett kommandoradsverktyg som låter oss se de öppna filerna och processerna eller användare som öppnade dem.
Lsof -verktyget finns i större Linux -distributioner; Du kan dock upptäcka att den inte är installerad och därför kan behöva installeras manuellt.
Så här installerar du lsof på Debian/Ubuntu
För att installera det på Debian, använd kommandot:
sudo apt-get uppdateringsudo apt-get installlsof-och
Så här installerar du på REHL/CentOS
För att installera på REHL och CentOS, använd kommandot:
sudodnf uppdateringsudodnfInstalleralsof
Hur man installerar på Arch
På Arch, ring pakethanteraren med kommandot:
sudoPac Man-HanssudoPac Man-Slsof
Hur man installerar på Fedora
På Fedora använder du kommandot:
sudo yum installeralsofNär du har lsof -verktyget installerat och uppdaterat kan vi börja använda det.
Grundläggande användning
Om du vill använda lsof -verktyget anger du kommandot:
sudolsofNär du väl har utfört ovanstående kommando kommer lsof att dumpa mycket information enligt nedan:
Ovanstående utmatning visar alla filer som öppnats av processerna. Utdata har olika kolumner, var och en representerar specifik information om filen.
- KOMMANDO -kolumnen - visar namnet på processen som använder filen.
- PID - visar processidentifieraren för processen som använder filen.
- TID - Visar processens uppgifts -ID (trådar).
- TASKCMD - Representera namnet på uppgiftskommandot.
- ANVÄNDARE - Ägaren till processen.
- FD - Visar filbeskrivningsnumret. Detta är hur processer använder filen; alternativen som finns tillgängliga i denna kolumnutmatning inkluderar:
- cwd - nuvarande arbetskatalog.
- jag Jag -minneskartad fil
- pd - överordnad katalog
- jld - fängelsekatalog
- ltx - delad bibliotekstext
- rtd - rotkatalog.
- Text - programkod och data
- NS - kärnspårningsfil.
- fela - Fel på filbeskrivningsinformation
- mmp -Minneskartad enhet.
- TYP - Visar vilken typ av nod som är associerad med filen, till exempel:
- Unix - för Unix -domänuttag.
- TILL DIG - representerar katalogen
- REG - representerar den vanliga filen
- CHR - representerar specialteckenfilen.
- LÄNK - symbolisk länkfil
- BLK - Blockera specialfil
- INET - Internet domän uttag
- FIFO - ett namngivet rör (First In First Out -fil)
- RÖR - för rör
Och många fler.
- ENHETER - Visar enhetsnumren separerade med kommatecken i ordningen med specialteckenfil, block special, vanlig, katalog och NFS -fil.
- STORLEK/AV - visar storleken på filen pr -filförskjutning i byte.
- NOD - visar nodnumret för den lokala filen, typ för internetprotokollstyp, etc.
- NAMN - visar namnet på den monteringspunkt och fs som filen ligger på.
Notera: Se lsof Manual för detaljerad information om kolumnerna.
Hur man visar processer som öppnade en fil
Lsof ger oss alternativ som hjälper oss att filtrera utdata för att bara visa processerna som öppnade en specifik fil.
Till exempel, för att se filen som öppnade filen /bin /bash, använd kommandot som:
sudolsof/am/våldsamt slagDetta ger dig en utmatning enligt nedan:
KOMMANDO PID ANVÄNDARE FD TYPENHETSSTORLEK/AV NODNAMNksmtuned1025root txt REG253,0 1150704 428303 /usr/am/våldsamt slag
våldsamt slag 2968centos txt REG253,0 1150704 428303 /usr/am/våldsamt slag
våldsamt slag 3075centos txt REG253,0 1150704 428303 /usr/am/våldsamt slag
Hur Visa filer Öppnade av en specifik användare
Vi kan också filtrera utdata för att visa filerna som öppnats av en specifik användare. Vi gör detta genom att använda -u -flaggan följt av användarnamnet som:
sudolsof-uhundratalsDetta ger dig en utmatning enligt nedan:
Hur man visar filer som öppnats av en specifik process
Antag att vi vill se alla filer som öppnas av en specifik process? För detta kan vi använda processens PID för att filtrera utmatningen.
Till exempel visar kommandot nedan filerna som öppnats av bash.
sudolsof-s 3075Detta ger dig bara filerna som öppnats av systemd enligt bilden:
Hur man visar filer som öppnas i en katalog
För att få filerna öppnade i en specifik katalog kan vi skicka alternativet +D följt av katalogsökvägen.
Till exempel, lista öppna filer i katalogen /etc.
sudolsof +D/etcNedan är utdata för detta:
Så här visar du nätverksanslutning
Eftersom allt i Linux är en fil kan vi få nätverksfiler som TCP -filer eller anslutningar.
Vi kan använda kommandot:
sudolsof-iTCPDetta ger dig TCP -anslutningar i systemet.
Du kan också filtrera efter den specifika porten med kommandot som visas nedan:
sudolsof-i:22Detta ger dig utmatningen enligt nedan:
Hur man kontinuerligt visar filer
Lsof ger oss ett läge att slinga utgången varannan sekund. Detta gör att du kan övervaka filerna som öppnas av en process eller användare kontinuerligt.
Detta alternativ kräver dock att du avslutar processen manuellt.
Till exempel övervakar kommandot nedan kontinuerligt filerna som öppnas på port 22:
sudolsof -r-i:22
Som du kan se, i den tredje slingan, fångar lsof den etablerade anslutningen till servern på SSH.
Slutsats
Lsof är ett otroligt användbart verktyg. Den låter dig övervaka både viktiga filer och övervaka användare och bearbetar öppning av filer. Detta kan vara oerhört användbart vid felsökning eller sökning efter skadliga försök till systemet.
Som visas i den här självstudien kan du med hjälp av olika exempel och metoder kombinera funktionaliteten från lsof -verktyget för anpassad övervakning.
Tack för att du läser och delar! Jag hoppas att du har lärt dig något nytt!