Hvordan sjekke åpne filer i Linux

How Check Open Files Linux



Du har kanskje kommet over ordtaket, Alt er en fil i Linux. Selv om dette ikke er helt sant, holder det et sett med sannheter.

I Linux og Unix-lignende systemer er alt som en fil. Det betyr at ressursene i Unix -systemet får tildelt en filbeskrivelse, inkludert lagringsenheter, nettverkskontakter, prosesser, etc.







En filbeskrivelse er et unikt nummer som identifiserer en fil og andre input/output -enheter. Den beskriver ressurser og hvordan kjernen får tilgang til dem. Tenk på det som en inngangsport til Kernel abstraksjon maskinvare ressurser.



Dessverre er begrepet filbeskrivelser utenfor omfanget av denne opplæringen; Vurder lenken nedenfor for å komme i gang med å lære mer:



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





Det betyr at Unix og Unix-lignende systemer som Linux bruker slike filer tungt. Som Linux -strømbruker er det utrolig nyttig å se de åpne filene og prosessen og brukerne som bruker dem.

Denne opplæringen vil fokusere på måter å se filene åpne og hvilken prosess eller bruker som er ansvarlig.



Forhåndskrav

Før vi begynner, må du kontrollere at du har:

  • Et Linux -system
  • Bruker med root- eller sudo -rettigheter

Hvis du har disse, la oss komme i gang:

LSOF -verktøy

Opprettet av Victor A Abell, List open files, eller lsof for short, er et kommandolinjeverktøy som lar oss se de åpne filene og prosessene eller brukerne som åpnet dem.

Lsof -verktøyet er tilgjengelig i store Linux -distribusjoner; Det kan imidlertid hende du finner det ikke installert, og derfor må du kanskje installere det manuelt.

Slik installerer du lsof på Debian/Ubuntu

For å installere det på Debian, bruk kommandoen:

sudo apt-get oppdatering

sudo apt-get installlsof-og

Slik installerer du på REHL/CentOS

For å installere på REHL og CentOS, bruk kommandoen:

sudodnf oppdatering

sudodnfinstallerelsof

Slik installerer du på Arch

På Arch, ring pakkelederen ved hjelp av kommandoen:

sudoPac Man-Hans

sudoPac Man-Slsof

Slik installerer du på Fedora

På Fedora bruker du kommandoen:

sudo yum installerelsof

Når du har lsof -verktøyet installert og oppdatert, kan vi begynne å bruke det.

Grunnleggende bruk

For å bruke lsof -verktøyet, skriv inn kommandoen:

sudolsof

Når du har utført kommandoen ovenfor, vil lsof dumpe mye informasjon som vist nedenfor:

Utdataene ovenfor viser alle filene som er åpnet av prosessene. Utgangen har forskjellige kolonner, som hver representerer spesifikk informasjon om filen.

  • KOMMANDO -kolonnen - viser navnet på prosessen som bruker filen.
  • PID - viser prosessidentifikatoren for prosessen som bruker filen.
  • The TID - Viser oppgave -ID (tråder) for prosessen.
  • TASKCMD - Representer navnet på oppgavekommandoen.
  • BRUKER - Eieren av prosessen.
  • FD - Viser filbeskrivelsesnummeret. Slik bruker prosesser filen; alternativene som er tilgjengelige i denne kolonneutgangen, inkluderer:
  • cwd - nåværende arbeidskatalog.
  • meme -minnekartet fil
  • pd - overordnet katalog
  • jld - fengselskatalog
  • ltx - delt bibliotekstekst
  • rtd - rotkatalogen.
  • tekst - programkode og data
  • NS - kjernesporingsfil.
  • feil - Feil i filbeskrivelsesinformasjon
  • mmp -Minnekartet enhet.
  • TYPE - Viser typen node som er knyttet til filen, for eksempel:
  • Unix - for Unix -domenekontakt.
  • TIL DEG - representerer katalogen
  • REG - som representerer den vanlige filen
  • CHR - representerer spesialtegnfilen.
  • LINK - symbolsk lenkefil
  • BLK - Blokker spesialfil
  • INET - Internett -domenekontakt
  • FIFO - et navngitt rør (First In First Out Out -fil)
  • RØR - for rør

Og mange flere.

  • ENHETER - Viser enhetsnumrene atskilt med komma i rekkefølgen på spesialtegnfiler, blokkerer spesial, vanlig, katalog og NFS -fil.
  • STØRRELSE/AV - viser størrelsen på filen pr -filforskyvning i byte.
  • NODE - viser nodenummeret til den lokale filen, typen for internettprotokolltype, etc.
  • NAVN - viser navnet på festepunktet og fs som filen ligger på.

Merk: Vennligst se lsof Manual for detaljert informasjon om kolonnene.

Hvordan vise prosesser som åpnet en fil

Lsof gir oss alternativer som hjelper oss med å filtrere utdataene for å vise bare prosessene som åpnet en bestemt fil.

For eksempel, for å se filen som åpnet filen /bin /bash, bruk kommandoen som:

sudolsof/er/bash

Dette vil gi deg en utgang som vist nedenfor:

KOMMANDO PID BRUKER FD TYPE ENHET STØRRELSE/AV NODENAVN

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

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

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

Hvordan vise filer åpnet av en bestemt bruker

Vi kan også filtrere utdataene for å vise filene som er åpnet av en bestemt bruker. Vi gjør dette ved å bruke -u -flagget etterfulgt av brukernavnet som:

sudolsof-uhundrevis

Dette vil gi deg en utgang som vist nedenfor:

Hvordan vise filer åpnet av en bestemt prosess

Anta at vi vil se alle filene som er åpnet av en bestemt prosess? For dette kan vi bruke PID for prosessen til å filtrere utgangen.

For eksempel viser kommandoen nedenfor filene som er åpnet av bash.

sudolsof-s 3075

Dette gir deg bare filene som er åpnet av systemd som vist:

Hvordan vise filer som er åpnet i en katalog

For å få filene åpnet i en bestemt katalog, kan vi passere +D -alternativet etterfulgt av katalogbanen.

For eksempel, liste åpne filer i /etc -katalogen.

sudolsof +D/etc

Nedenfor er utgangen for dette:

Slik viser du nettverkstilkobling

Siden alt i Linux er en fil, kan vi få nettverksfilene, for eksempel TCP -filer eller tilkoblinger.

Vi kan bruke kommandoen:

sudolsof-JegTCP

Dette vil gi deg TCP -tilkoblinger i systemet.

Du kan også filtrere etter den spesifikke porten ved hjelp av kommandoen vist nedenfor:

sudolsof-Jeg:22

Dette vil gi deg utgangen som vist nedenfor:

Slik viser du filer kontinuerlig

Lsof gir oss en modus for å sløyfe utgangen noen få sekunder. Dette lar deg overvåke filene som åpnes av en prosess eller bruker kontinuerlig.

Dette alternativet krever imidlertid at du avslutter prosessen manuelt.

For eksempel overvåker kommandoen nedenfor kontinuerlig filene som åpnes på port 22:

sudolsof -r-Jeg:22

Som du kan se, i den tredje sløyfen, fanger lsof den etablerte forbindelsen til serveren på SSH.

Konklusjon

Lsof er et utrolig nyttig verktøy. Den lar deg overvåke kritiske filer, samt overvåke brukere og behandler åpning av filer. Dette kan være utrolig nyttig når du feilsøker eller ser etter ondsinnede forsøk på systemet.

Som vist i denne opplæringen, ved hjelp av forskjellige eksempler og metoder, kan du kombinere funksjonaliteten fra lsof -verktøyet for tilpasset overvåking.

Takk for at du leser og deler! Jeg håper du har lært noe nytt!