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:
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.
Und viele mehr.
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!