So überprüfen Sie die geöffneten Dateien unter Linux

So überprüfen Sie die geöffneten Dateien unter Linux

Möglicherweise sind Sie auf das Sprichwort gestoßen: „Alles ist eine Datei unter Linux.Obwohl dies nicht ganz wahr ist, hält es eine Reihe von Wahrheiten,.

In Linux- und Unix-ähnlichen Systemen ist alles wie eine Datei. Das bedeutet.

Ein Dateideskriptor ist eine eindeutige Nummer, die eine Datei- und andere Eingabe-/Ausgabegeräte identifiziert. Es beschreibt Ressourcen und wie der Kernel auf sie zugreift. Betrachten Sie es als ein Tor zur Kernel -Abstraktionshardware -Ressourcen.

Leider geht das Konzept der Dateideskriptoren über den Rahmen dieses Tutorials hinaus. Betrachten Sie den unten angegebenen Link, um mehr zu erlernen: mehr:

https: // en.Wikipedia.org/wiki/file_descriptor

Das bedeutet, dass Unix- und Unix-ähnliche Systeme wie Linux solche Dateien stark verwenden. Als Linux -Power -Benutzer ist es unglaublich nützlich, die offenen Dateien und den Prozess und die Benutzer zu sehen, die sie verwenden.

Dieses Tutorial konzentriert sich auf Möglichkeiten, die geöffneten Dateien anzuzeigen und welcher Prozess oder Benutzer verantwortlich ist.

Voraussetzungen

Stellen Sie vor Beginn sicher, dass Sie:

  • Ein Linux -System
  • Benutzer mit Root- oder Sudo -Berechtigungen

Wenn Sie diese haben, lassen Sie uns beginnen:

LSOF -Dienstprogramm

Erstellt von Victor A Abell, List Open Dateien oder kurz LSOF ist ein Befehlszeilen-Dienstprogramm, mit dem wir die offenen Dateien und Prozesse oder Benutzer, die sie geöffnet haben, anzeigen können.

Das LSOF -Dienstprogramm ist in wichtigen Linux -Verteilungen erhältlich. Sie finden es jedoch möglicherweise nicht installiert und müssen daher möglicherweise manuell installieren.

So installieren Sie LSOF auf Debian/Ubuntu

Verwenden Sie den Befehl, um es auf Debian zu installieren:

sudo apt-Get-Update
sudo apt -get install lsof -y

So installieren Sie auf REHL/CentOS

Verwenden Sie den Befehl, um auf RehL und CentOS zu installieren:

sudo dnf update
sudo dnf installieren lsof

So installieren Sie auf dem Arch

Rufen Sie bei Arch den Paketmanager mit dem Befehl an:

sudo pacman -sy
sudo pacman -s lsof

So installieren Sie auf Fedora

Verwenden Sie auf Fedora den Befehl:

sudo yum install lSof

Sobald Sie das LSOF -Dienstprogramm installiert und aktualisiert haben, können wir damit beginnen.

Grundlegende LSOF -Verwendung

Um das LSOF -Tool zu verwenden, geben Sie den Befehl ein:

sudo lsof

Sobald Sie den obigen Befehl ausgeführt haben, wird LSOF wie unten gezeigt viele Informationen abgeben:

Die obige Ausgabe zeigt alle von den Prozessen geöffneten Dateien. Die Ausgabe enthält verschiedene Spalten, die jeweils spezifische Informationen zur Datei darstellen.

  • Die Befehlsspalte - Zeigt den Namen des Prozesses an, der die Datei verwendet.
  • PID - Zeigt die Prozesskennung des Prozesses mithilfe der Datei an.
  • Der Tid - Zeigt die Task -ID (Threads) des Prozesses an.
  • Taskcmd - Stellen Sie den Namen des Aufgabebefehls dar.
  • BENUTZER - Der Eigentümer des Prozesses.
  • Fd - Zeigt die Dateideskriptorennummer an. So verwenden Prozesse die Datei; Die in dieser Spaltenausgabe verfügbaren Optionen umfassen:
  • CWD - Aktuelles Arbeitsverzeichnis.
  • Mem - Speicher-abgebildete Datei
  • PD - übergeordnetes Verzeichnis
  • jld - Gefängnisverzeichnis
  • LTX - gemeinsamer Bibliothekstext
  • Rtd - Wurzelverzeichnis.
  • txt - Programmcode und Daten
  • tr - Kernel -Trace -Datei.
  • irren - Dateideskriptorinformationsfehler
  • MMP - Speicher-abgebildetes Gerät.
  • TYP - Zeigt die Art des Knotens an, die der Datei zugeordnet sind, z. B.:
  • Unix - Für Unix Domain Socket.
  • Dir - repräsentiert das Verzeichnis
  • Regs - Darstellung der regulären Datei
  • Chr - repräsentiert die spezielle Zeichendatei.
  • VERKNÜPFUNG - Symbolische Linkdatei
  • Blk - Spezielle Datei blockieren
  • Inet - Internet -Domain -Sockel
  • FIFO - ein benanntes Rohr (zuerst in der ersten Out -Datei)
  • ROHR - für Pfeifen

Und viele mehr.

  • GERÄTE - Zeigt die von Commas getrennten Gerätenummern in der Reihenfolge der Spezialzeichendatei, der Blockspecial-, regulär-, verzeichnis- und nFS -Datei an.
  • Größe/Aus - Zeigt die Größe des Datei -PR -Dateiversatzes in Bytes an.
  • KNOTEN - Zeigt die Knotennummer der lokalen Datei an, type für den Internet -Protokolltyp usw.
  • NAME - Zeigt den Namen des Mountspunkts und FS an, auf dem sich die Datei befindet.

Notiz: Weitere Informationen zu den Spalten finden Sie im LSOF -Handbuch.

So zeigen Sie Prozesse, die eine Datei geöffnet haben

LSOF bietet uns Optionen, mit denen wir die Ausgabe filtern, um nur die Prozesse anzuzeigen, die eine bestimmte Datei geöffnet haben.

Verwenden Sie beispielsweise die Datei, die die Datei /bin /bash geöffnet hat, den Befehl als:

sudo lsof /bin /bash

Dadurch erhalten Sie eine Ausgabe, wie unten gezeigt:

Befehl PID -Benutzer FD -Typ Gerätegröße/Aus -Knotenname
KSmtuned 1025 Root TXT Reg 253,0 1150704 428303/usr/bin/bash
Bash 2968 Centos TXT Reg 253,0 1150704 428303/USR/Bin/Bash
Bash 3075 Centos TXT Reg 253,0 1150704 428303/USR/Bin/Bash

Wie Showdateien von einem bestimmten Benutzer geöffnet werden

Wir können die Ausgabe auch filtern, um die von einem bestimmten Benutzer geöffneten Dateien anzuzeigen. Wir tun dies mit der Flagge -u -Flagge, gefolgt vom Benutzernamen als:

sudo lsof -u centos

Dadurch erhalten Sie eine Ausgabe, wie unten gezeigt:

So zeigen Sie Dateien, die durch einen bestimmten Prozess geöffnet sind

Angenommen, wir möchten alle von einem bestimmten Prozess geöffneten Dateien anzeigen? Dafür können wir die PID des Prozesses verwenden, um die Ausgabe zu filtern.

Der folgende Befehl zeigt beispielsweise die von Bash geöffneten Dateien.

sudo lsof -p 3075

Dadurch erhalten Sie nur die von Systemd geöffneten Dateien wie gezeigt:

So zeigen Sie Dateien, die in einem Verzeichnis geöffnet sind

Um die Dateien in einem bestimmten Verzeichnis zu öffnen, können wir die Option +D übergeben, gefolgt vom Verzeichnispfad.

Listen Sie beispielsweise geöffnete Dateien im Verzeichnis /etc. auf.

sudo lsof +d /etc

Unten ist die Ausgabe dafür:

So zeigen Sie die Netzwerkverbindung

Da alles unter Linux eine Datei ist, können wir die Netzwerkdateien wie TCP -Dateien oder Verbindungen abrufen.

Wir können den Befehl verwenden:

sudo lsof -i tcp

Dadurch erhalten Sie die TCP -Verbindungen im System.

Sie können auch mit dem nachstehend gezeigten Befehl nach dem spezifischen Port filtern:

sudo lsof -i: 22

Dadurch erhalten Sie die Ausgabe, wie unten gezeigt:

So zeigen Sie kontinuierlich Dateien an

LSOF bietet uns einen Modus, um die Ausgabe alle paar Sekunden zu schleifen. Auf diese Weise können Sie die von einem Prozess oder Benutzer eröffneten Dateien kontinuierlich überwachen.

Diese Option erfordert jedoch, dass Sie den Prozess manuell beenden.

Beispielsweise überwacht der folgende Befehl die auf Port 22 geöffneten Dateien kontinuierlich:

sudo lsof -r -i: 22

Wie Sie sehen können, fängt LSOF in der dritten Schleife die festgelegte Verbindung zum Server auf SSH an.

Abschluss

LSOF ist ein unglaublich nützliches Dienstprogramm. Sie können Sie für kritische Dateien überwachen und Benutzer und Prozesse öffnen, die Dateien öffnen. Dies kann unglaublich nützlich sein, wenn Sie beheben oder nach böswilligen Versuchen für das System suchen.

Wie in diesem Tutorial gezeigt, können Sie mit verschiedenen Beispielen und Methoden die vom LSOF -Tool zur benutzerdefinierten Überwachung bereitgestellten Funktionen kombinieren.

Vielen Dank für das Lesen und Teilen! Ich hoffe du hast etwas Neues gelernt!