Aus dem Alltag eines Sysadmin: Lsof
Kurz über lang
Je kürzer das Kommando, desto länger ist die Liste der möglichen Parameter. Das gilt nicht nur für
© j.berger, Photocase.com
Je kürzer das Kommando, desto länger ist die Liste der möglichen Parameter. Das gilt nicht nur für
Lsof, ohne jeden weiteren Parameter ausgeführt, gibt eine lange, lange Liste aller geöffneten Dateien aus. Der Rattenschwanz ist nach der PID sortiert, beginnt also mit »init«
. Auf dem Notebook, das ich gern zum Testen benutze, bringt es diese Liste auf nicht weniger als 6778 Einträge – schnell erfassbar ist etwas ganz anderes. Fast alle Kommandozeilenparameter, die Lsof entgegenzunehmen willens ist, lichten nur diesen Dateien-Filz.
Wenn ich zum Beispiel wissen möchte, welcher Prozess eine bestimmte Datei im Zugriff hat, gebe ich einfach deren Namen als Parameter an. Daraufhin liefert das Kommando »lsof /var/log/syslog«
– leicht gekürzt – die folgende Ausgabe:
COMMAND PID USER rsyslogd 683 syslog
Auf meinem System läuft also Rsyslog. Jetzt interessiert mich aber auch, mit welchen Dateien Rsyslog außerdem noch jongliert – das Kommando »lsof -c rsyslog«
verrät es. Alternativ lasse ich mir außerdem alle Dateien ausgeben, die dem Benutzer »syslog«
gehören. Diese Funktion übernimmt der Parameter »-u syslog«
.
Da unter Linux sprichwörtlich alles ein File ist, also auch die Netzwerk-Sockets, präsentiert mir das Kommando »lsof -iTCP«
alle aktuellen Netzwerkverbindungen. Wenn ich aber nur Dienste sehen will, die auf Verbindungen warten, ergänze ich die Zeile zu:
lsof -iTCP | grep LISTEN
Interessiert mich dagegen nur der Datenverkehr auf einem ganz bestimmten Port, etwa für SSH, zeigt mir »lsof -i :22«
alle mit dem Port 22 assoziierten Verbindungen an.
Auch ausgehende Verbindungen zu einem bestimmten Server kann ich ausfiltern. Dazu hänge ich an den »-i«
-Parameter ein »@«
gefolgt vom Namen oder der IP-Adresse des Zielsystems an, Abbildung 1 zeigt ein Beispiel. Diesen Filter zu verfeinern gelingt, indem ich die Nummer des Zielports anhänge:
lsof -i@example.com:22
Mit »-a«
haben die Lsof-Erfinder um Victor A. Abell an Anwender wie mich gedacht, die gelegentlich Filterfunktionen verketten wollen:
lsof -a -u charly -i@example.com:22
Dieser Befehl listet alle ausgehenden SSH-Verbindungen zum Server Example.com, die Benutzer »charly«
aufgebaut hat. Lsof ist also nur auf den ersten Blick unscheinbar, nach dem zweiten und »man lsof«
wird es zum unverzichtbaren Werkzeug. (jk)
Umfang: 1 Heftseiten
Preis € 0,99
(inkl. 19% MwSt.)
Alle Rezensionen aus dem Linux-Magazin
Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...