Hogyan lehet ellenőrizni a megnyitott fájlokat Linuxon

How Check Open Files Linux



Lehet, hogy találkozott már azzal a mondással, hogy a Linuxban minden fájl. Bár ez nem teljesen igaz, mégis tartalmaz egy sor igazságot.

Linux és Unix-szerű rendszerekben minden olyan, mint egy fájl. Ez azt jelenti, hogy a Unix rendszer erőforrásaihoz fájlleírót rendelnek, beleértve a tárolóeszközöket, hálózati aljzatokat, folyamatokat stb.







A fájlleíró egy egyedi szám, amely azonosítja a fájlt és más bemeneti/kimeneti eszközöket. Leírja az erőforrásokat és a kernel elérési módját. Tekintsük úgy, mint egy átjárót a kernel absztrakciós hardver erőforrásaihoz.



Sajnos a fájlleírók fogalma túlmutat ezen oktatóanyag keretein; Tekintse meg az alábbi linket, ha többet szeretne megtudni:



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





Ez azt jelenti, hogy a Unix és a Unix-szerű rendszerek, például a Linux, nagymértékben használják az ilyen fájlokat. Linux -felhasználóként hihetetlenül hasznos látni a megnyitott fájlokat, a folyamatot és az azokat használó felhasználókat.

Ez az oktatóanyag a megnyitott fájlok megtekintésének módjaira összpontosít, és hogy melyik folyamat vagy felhasználó felelős.



Előfeltételek

Mielőtt elkezdenénk, győződjön meg arról, hogy rendelkezik:

  • Linux rendszer
  • Felhasználó root vagy sudo jogosultságokkal

Ha ezek megvannak, kezdjük el:

LSOF segédprogram

A Victor A Abell által létrehozott List open files vagy röviden lsof egy parancssori segédprogram, amely lehetővé teszi számunkra, hogy megtekinthessük a megnyitott fájlokat és azokat megnyitó folyamatokat vagy felhasználókat.

Az lsof segédprogram elérhető a nagyobb Linux disztribúciókban; előfordulhat azonban, hogy nincs telepítve, ezért manuálisan kell telepítenie.

Az lsof telepítése Debian/Ubuntu rendszeren

A Debianra való telepítéshez használja a következő parancsot:

sudo apt-get frissítés

sudo apt-get installlsof-és

Telepítés a REHL/CentOS -ra

A REHL és CentOS rendszerekre történő telepítéshez használja a következő parancsot:

sudodnf frissítés

sudodnftelepítéslsof

Hogyan kell telepíteni az Arch -ra

Archon hívja fel a csomagkezelőt a következő paranccsal:

sudopacman-Övé

sudopacman-Slsof

Telepítés a Fedora -ra

Fedora esetén használja a következő parancsot:

sudo yum telepítenilsof

Miután telepítette és frissítette az lsof segédprogramot, elkezdhetjük használni.

Alapvető használat

Az lsof eszköz használatához írja be a következő parancsot:

sudolsof

A fenti parancs végrehajtása után az lsof sok információt dob ​​ki az alábbiak szerint:

A fenti kimenet a folyamatok által megnyitott összes fájlt mutatja. A kimenetnek különböző oszlopai vannak, amelyek mindegyike a fájlra vonatkozó információkat reprezentálja.

  • A COMMAND oszlop - a fájlt használó folyamat nevét mutatja.
  • PID - a fájl folyamatának folyamatazonosítóját mutatja.
  • A TID - Megjeleníti a folyamat feladatazonosítóját (szálait).
  • FELADATCMD - Képviseli a feladatparancs nevét.
  • USER - A folyamat tulajdonosa.
  • FD - A fájl leíró számát mutatja. A folyamatok így használják a fájlt; az ebben az oszlopkimenetben elérhető lehetőségek a következők:
  • cwd - aktuális munkakönyvtár.
  • én én -memóriával leképezett fájl
  • pd - szülőkönyvtár
  • jld - börtönkönyvtár
  • ltx - megosztott könyvtári szöveg
  • rtd - gyökérkönyvtár.
  • txt - programkód és adatok
  • NS - kernel nyomkövetési fájl.
  • téved - Fájlleíró információs hiba
  • mmp -Memóriával leképezett eszköz.
  • TÍPUS - Megjeleníti a fájlhoz társított csomópont típusát, például:
  • Unix - Unix domain aljzathoz.
  • NEKED - a könyvtárat képviseli
  • REG - képviseli a rendes aktát
  • CHR - a speciális karakterfájlt jelenti.
  • LINK - szimbolikus linkfájl
  • BLK - Blokkolja a speciális fájlt
  • INET - Internet domain aljzat
  • FIFO - elnevezett cső (First In First Out fájl)
  • PIPA - csövekhez

És még sok más.

  • ESZKÖZÖK - Az eszközszámokat vesszővel elválasztva jeleníti meg a speciális karakterfájl, a blokk speciális, a rendes, a könyvtár és az NFS fájl sorrendjében.
  • MÉRET/KI - megmutatja a fájl méretét pr fájl eltolás bájtban.
  • CSOMÓPONT - megmutatja a helyi fájl csomópont számát, az Internet protokoll típusát stb.
  • NÉV - megmutatja a csatolási pont nevét és az fs fájlokat, amelyeken a fájl található.

Jegyzet: Kérjük, olvassa el az lsof kézikönyvet az oszlopokkal kapcsolatos részletes információkért.

A fájlokat megnyitó folyamatok megjelenítése

Az Lsof olyan lehetőségeket kínál számunkra, amelyek segítenek a kimenet szűrésében, hogy csak az adott fájlt megnyitó folyamatok jelenjenek meg.

Például a /bin /bash fájlt megnyitó fájl megtekintéséhez használja a következő parancsot:

sudolsof/am/bash

Ezzel az alábbi képen látható kimenetet kapja:

PARANCS PID FELHASZNÁLÓ FD TÍPUSÚ ESZKÖZ MÉRET/OFF NODE NAME

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

Hogyan jelenítse meg a fájlokat, amelyeket egy adott felhasználó nyitott meg

A kimenetet is szűrhetjük, hogy megmutassa az adott felhasználó által megnyitott fájlokat. Ehhez a -u zászlót, majd a felhasználónevet használjuk:

sudolsof-utöbb száz

Ezzel az alábbi képen látható kimenetet kapja:

Hogyan jelenítsük meg egy adott folyamat által megnyitott fájlokat

Tegyük fel, hogy meg akarjuk tekinteni az összes fájlt, amelyet egy adott folyamat nyitott meg? Ehhez a folyamat PID -jét használhatjuk a kimenet szűrésére.

Például az alábbi parancs a bash által megnyitott fájlokat mutatja.

sudolsof-p 3075

Ez csak a systemd által megnyitott fájlokat fogja megadni az alábbiak szerint:

A könyvtárban megnyitott fájlok megjelenítése

Ahhoz, hogy a fájlokat egy adott könyvtárban nyissuk meg, átadhatjuk a +D opciót, majd a könyvtár elérési útját.

Például listázza a megnyitott fájlokat az /etc könyvtárban.

sudolsof +D/stb.

Az alábbiakban ennek kimenete látható:

Hálózati kapcsolat megjelenítése

Mivel a Linuxban minden egy fájl, megkaphatjuk a hálózati fájlokat, például a TCP -fájlokat vagy a kapcsolatokat.

Használhatjuk a következő parancsot:

sudolsof-énTCP

Ez megadja a TCP kapcsolatokat a rendszerben.

Az alábbi paranccsal is szűrhet az adott port szerint:

sudolsof-én:22

Ez megadja a kimenetet az alábbiak szerint:

A fájlok folyamatos megjelenítése

Az Lsof módot biztosít számunkra, hogy a kimenetet néhány másodpercenként hurkoljuk. Ez lehetővé teszi a folyamat vagy felhasználó által megnyitott fájlok folyamatos figyelését.

Ez az opció azonban megköveteli, hogy manuálisan fejezze be a folyamatot.

Például az alábbi parancs folyamatosan figyeli a 22 -es porton megnyitott fájlokat:

sudolsof -r-én:22

Amint láthatja, a harmadik ciklusban az lsof elkapja a létrehozott kapcsolatot a szerverrel SSH -n.

Következtetés

Az Lsof egy hihetetlenül hasznos segédprogram. Lehetővé teszi a kritikus fájlok megfigyelését, valamint a felhasználók és a folyamatok megnyitását. Ez hihetetlenül hasznos lehet a rendszer hibaelhárításakor vagy rosszindulatú kísérletek keresésekor.

Amint az ebben az oktatóanyagban látható, különféle példák és módszerek segítségével kombinálhatja az lsof eszköz által biztosított funkciókat az egyéni felügyelethez.

Köszönöm, hogy elolvastad és megosztottad! Remélem tanultál valami újat!