Wie man den Linux Fuser-Befehl verwendet

Einführung

Das fuser-Befehl ist ein Linux-Dienstprogramm, das entwickelt wurde, um festzustellen, welcher Prozess eine bestimmte Datei, Verzeichnis oder Socket verwendet. Es liefert auch Informationen über den Benutzer, der den Prozess ausführt, und den Typ des Zugriffs.

Wie man das fuser-Dienstprogramm verwendet

Sie können die fuser Handbuchseite überprüfen, um einen Überblick über alle Optionen zu erhalten, die mit fuser verwendet werden können. Sie können auch fuser ohne Optionen ausführen, um einen Überblick über die Syntax von fuser zu erhalten:

  1. fuser
Output
No process specification given Usage: fuser [-fMuv] [-a|-s] [-4|-6] [-c|-m|-n SPACE] [-k [-i] [-SIGNAL]] NAME... fuser -l fuser -V Show which processes use the named files, sockets, or filesystems. -a,--all display unused files too -i,--interactive ask before killing (ignored without -k) -k,--kill kill processes accessing the named file -l,--list-signals list available signal names -m,--mount show all processes using the named filesystems or block device -M,--ismountpoint fulfill request only if NAME is a mount point -n,--namespace SPACE search in this name space (file, udp, or tcp) -s,--silent silent operation -SIGNAL send this signal instead of SIGKILL -u,--user display user IDs -v,--verbose verbose output -w,--writeonly kill only processes with write access -V,--version display version information -4,--ipv4 search IPv4 sockets only -6,--ipv6 search IPv6 sockets only - reset options udp/tcp names: [local_port][,[rmt_host][,[rmt_port]]]

Wie man Prozesse in einem Verzeichnis ansieht

fuser kann auch mit der Option -v verwendet werden, die das Tool im ausführlichen Modus ausführt. Die ausführliche Option wird verwendet, um mehr Ausgaben zu erzeugen, damit der Benutzer beobachten kann, was fuser tut. Führen Sie fuser im aktuellen Verzeichnis, ., aus, während Sie die Option -v einschließen:

  1. fuser -v .
Output
USER PID ACCESS COMMAND /home/sammy: sammy 17604 ..c.. bash

In diesem Fall ist der einzige Prozess, der in diesem Verzeichnis läuft, die interaktive bash-Shell, von der Sie gerade Befehle ausführen.

Wenn der Verbose-Modus aktiviert ist, gibt das Dienstprogramm fuser Informationen über USER, PID, ACCESS und COMMAND eines Prozesses. Der Buchstabe c unter ACCESS zeigt den Typ des Zugriffs an, was in diesem Fall das aktuelle Verzeichnis bedeutet.c Es gibt auch andere Arten von Zugriffen, wie z.B. executable in Ausführung, root-Verzeichnis, offene file und mapped-Datei oder gemeinsam genutzte Bibliothek.

Wie man Prozesse findet, die Netzwerksockets verwenden

Es kann auch notwendig sein, Prozesse mit TCP- und UDP-Sockets zu suchen. Um dieses Beispiel zu demonstrieren, verwenden Sie zunächst nc, um einen TCP-Listener am Port 8002 zu erstellen, damit ein laufender Prozess beobachtet werden kann:

  1. nc -l -p 8002

Dies blockiert das Terminal, solange es läuft. In einem anderen Terminalfenster verwenden Sie fuser, um den auf TCP-Port 8002 laufenden Prozess mit der Option -n zu finden:

  1. fuser -v -n tcp 8002
Output
USER PID ACCESS COMMAND 8002/tcp: sammy 17985 F.... nc

Hinweis: Standardmäßig überprüft das Werkzeug fuser sowohl IPv4- als auch IPv6-Sockets, aber Sie können dies mit den Optionen -4 und -6 ändern, um nur IPv4- oder nur IPv6-Verbindungen zu überprüfen, entsprechend.

Diese Ausgabe zeigt, dass die Prozess-ID (PID) des Prozesses, der netcat verwendet, 17985 ist und das Kommando, mit dem es gestartet wurde, ’nc‘ lautet. Die Prozess-ID (PID) kann auf verschiedene Arten verwendet werden, einschließlich zum Stoppen oder Beenden eines laufenden Prozesses. Sie können mehr über die Prozessverwaltung erfahren, indem Sie How To Use ps, kill, and nice to Manage Processes in Linux lesen. Sie können auch fuser selbst verwenden, um Prozesse, die auf bestimmten Ports laufen, mit der -k-Option zu beenden:

  1. fuser -k 8002/tcp
Output
8002/tcp: 18056

Wenn Sie zu Ihrem ersten Terminalfenster zurücknavigieren, werden Sie feststellen, dass das Programm nc beendet wurde und zur Shell zurückgekehrt ist.

Das Dienstprogramm fuser kann auch verwendet werden, um spezifische Signale an einen Prozess zu senden. Wenn es mit der Option -k verwendet wird, sendet der fuser-Befehl das KILL-Signal an einen Prozess. Es gibt viele andere Signale, die an einen bestimmten laufenden Prozess gesendet werden können. Sie können diese mit fuser -l auflisten:

  1. fuser -l
Output
HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH POLL PWR SYS

Fazit

In diesem Artikel haben Sie einige Beispielverwendungen von fuser zum Überwachen von verwendeten Ports und Verzeichnissen auf einem Linux-System gelernt. fuser kann besonders nützlich sein, wenn Sie versuchen zu verstehen, welche unbekannten Prozesse auf Ihrem System ausgeführt werden.

Als nächstes möchten Sie vielleicht lernen, wie Sie netstat und du verwenden, um andere Serverressourcen zu überwachen.

Source:
https://www.digitalocean.com/community/tutorials/how-to-use-the-linux-fuser-command