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éssudo 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éssudodnftelepí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ítenilsofMiutá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:
sudolsofA 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/bashEzzel az alábbi képen látható kimenetet kapja:
PARANCS PID FELHASZNÁLÓ FD TÍPUSÚ ESZKÖZ MÉRET/OFF NODE NAMEksmtuned1025root 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ázEzzel 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 3075Ez 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-énTCPEz megadja a TCP kapcsolatokat a rendszerben.
Az alábbi paranccsal is szűrhet az adott port szerint:
sudolsof-én:22Ez 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!