# lsof – Übersicht und erweitertes Anwendungsspektrum
 
Der lsof-Befehl (list open files) ist ein zentrales Werkzeug zur Identifikation von geöffneten Dateien, Prozessen und Netzwerkverbindungen unter Linux. Er unterstützt Systemüberwachung, Fehlerdiagnose und Sicherheitsanalysen und bietet detaillierte Filteroptionen.
 
## Grundlegende Funktionalität
 
lsof zeigt alle von Prozessen geöffneten Dateitypen an – reguläre Dateien, Verzeichnisse, Bibliotheken, Sockets und Geräte. Die flexible Filterung ermöglicht, spezifische Informationen herauszufiltern und gezielt Systeme zu analysieren.
 
## Wesentliche Parameter
 
- **-p PID**  
  Listet alle Dateien eines bestimmten Prozesses auf.  
  Beispiel:  
  ```bash
  lsof -p 1234

Ausgabe zeigt alle Dateizugriffe des Prozesses mit der PID 1234.

  • -u USER
    Filtert die Ausgabe auf Prozesse, die einem bestimmten Benutzer gehören.
    Beispiel:

    lsof -u user

    Zeigt alle Dateien, die von Prozessen des Benutzers “user” geöffnet wurden.

  • -i
    Zeigt alle aktiven Internet- und Netzwerkverbindungen an.
    Beispiel:

    lsof -i
  • Weitere Filteroptionen:

    • -a: Kombiniert mehrere Filterkriterien logisch.
    • -d: Beschränkt die Ausgabe auf konkrete Dateideskriptoren (z. B. txt für Textdateien).
      Beispiel:
    lsof -a -p 1234 -d txt

Typische Einsatzszenarien

1. Auflisten aller offenen Dateien eines Prozesses

Befehl zur Anzeige aller von Prozess 1234 verwendeten Dateien:

lsof -p 1234

Beispielhafte Ausgabe:

COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
bash     1234 user  cwd    DIR  202,1     4096  2 /home/user
bash     1234 user  txt    REG  202,1   103752 13 /bin/bash
bash     1234 user  mem    REG  202,1   203456 14 /lib/x86_64-linux-gnu/libc.so.6

2. Überprüfen eines bestimmten Ports

Finde heraus, welcher Prozess Port 80 verwendet:

lsof -i :80

Beispielhafte Ausgabe:

COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
apache2  2521   root    4u  IPv4  23456      0t0  TCP *:http (LISTEN)
apache2  2522 www-data  4u  IPv4  23456      0t0  TCP *:http (LISTEN)

3. Filtern nach Benutzer

Sehen Sie sich alle offenen Dateien des Benutzers “user” an:

lsof -u user

Dieser Filter ist besonders nützlich, um Benutzer-spezifische Aktivitäten und Ressourcennutzung zu überwachen.

4. Auflisten aller Netzwerkverbindungen

Ermöglicht einen Überblick über alle aktiven Internetverbindungen:

lsof -i

Beispielhafte Ausgabe:

COMMAND    PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd      1023  root    3u  IPv4  34567      0t0  TCP *:ssh (LISTEN)
chrome    2045 user   55u  IPv4  45678      0t0  TCP 192.168.1.5:40234->93.184.216.34:http (ESTABLISHED)

Erweiterte Nutzungsmöglichkeiten

  • Kombination mehrerer Filter mit dem Parameter -a zur präzisen Diagnose.
  • Einsatz von -d zur gezielten Analyse eines bestimmten Dateityps.
  • Integration in Skripte zur kontinuierlichen Systemüberwachung.

Tags:lsofLinuxTerminalBefehleSystemdiagnose


[[Linux-Blog-Overview]]