fuser - Prozesse anhand von Dateien oder Sockets identifizieren
fuser [
-fuv] [
-a|
-s] [
-4|
-6]
[
-c|
-m|
-n Namensraum] [
-k
[
-i] [
-M] [
-w] [
-SIGNAL] ]
Name
…
fuser -l
fuser -V
fuser zeigt anhand der angegebenen Dateien oder Dateisysteme die
Kennungen (PIDs) eines Prozesses an. Im Standard-Anzeigemodus folgt jedem
Dateinamen ein Buchstabe, der den Zugriffstyp angibt:
- c
- bezeichnet das aktuelle Verzeichnis.
- e
- bezeichnet das laufende ausführbare Programm.
- f
- bezeichnet die geöffnete Datei. f wird im
Standard-Anzeigemodus weggelassen.
- F
- bezeichnet die zum Schreiben geöffnete Datei.
F wird im Standard-Anzeigemodus weggelassen.
- r
- bezeichnet das Wurzelverzeichnis.
- m
- zugewiesene Datei oder Laufzeitibliothek.
- .
- ist ein Platzhalter, der im Standard-Anzeigemodus
weggelassen wird.
fuser gibt einen von Null verschiedenen Wert zurück, wenn auf
keine der angegebenen Dateien zugegriffen wurde oder wenn ein schwerwiegender
Fehler aufgetreten ist. Wenn mindestens ein Zugriff gefunden wurde, gibt
fuser Null zurück.
Um nach Prozessen anhand von TCP- und UDP-Sockets suchen zu können, muss
der entsprechende Namensraum mit der Option
-n angegeben werden.
Standardmäßig schaut
fuser sowohl in IPv6- als auch
IPv4-Sockets. Um das Standardverhalten zu ändern, verwenden Sie die
Optionen
-4 und
-6. Der oder die Socket(s) können anhand
des lokalen und fernen Ports und der fernen Adresse angegeben werden. Alle
Felder sind optional, aber Kommata vor den fehlenden Feldern müssen
vorhanden sein:
[
lcl_Port][,[
ferner_Host][,[
ferner_Port]]]
Für die IP-Adressen und Portnummern können entweder symbolische
oder numerische Werte verwendet werden.
fuser schreibt nur die PIDs in die Standardausgabe, alles andere wird in
die Standardfehlerausgabe geschrieben.
-
-a, --all
- zeigt alle in der Befehlszeile angegebenen Dateien an.
Standardmäßig werden nur Dateien angezeigt, auf die
mindestens ein Prozess zugreift.
- -c
- ist gleichbedeutend mit der Option -m (für
POSIX-Kompatibilität).
- -f
- wird stillschweigend ignoriert (für
POSIX-Kompatibilität).
-
-k, --kill
- tötet Prozesse, die auf die Datei zugreifen. Das
Signal SIGKILL wird gesendet, es sei denn, Sie ändern es mit
- SIGNAL. Ein fuser-Prozess tötet sich niemals
selbst, könnte aber von anderen fuser-Prozessen
getötet werden. Die effektive Benutzerkennung (UID) des Prozesses,
der fuser ausführt, wird auf dessen reale Benutzerkennung
gesetzt, bevor die Tötung versucht wird.
-
-i, --interactive
- bittet den Benutzer um Bestätigung, bevor ein
Prozess getötet wird. Diese Option wird stillschweigend ignoriert,
wenn nicht auch die Option -k angegeben ist.
-
-I, --inode
- bewirkt, dass für den Namensraum file alle
Vergleiche auf den oder die Inode(s) der angegebenen Datei oder Dateien
und nicht auf die Dateinamen bezogen werden, selbst wenn sich diese auf
netzwerkbasierten Dateisystemen befinden.
-
-l, --list-signals
- listet alle bekannten Signalnamen auf.
-
-m NAME, --mount NAME
- bezeichnet eine Datei auf einem eingehängten
Dateisystem oder einem blockorientierten Gerät, das
eingehängt ist. Alle Prozesse, die auf Dateien auf diesem
Dateisystem zugreifen, werden aufgelistet. Falls ein Verzeichnis angegeben
ist, wird es automatisch in NAME/ geändert, um jedes
Dateisystem zu verwenden, das in diesem Verzeichnis eingehängt sein
könnte.
-
-M, --ismountpoint
- erfüllt die Anforderung nur dann, wenn der
NAME einen Einhängepunkt bezeichnet. Dies ist ein sehr
wertvoller Sicherheitsmechanismus, der Sie daran hindert, den gesamten
Rechner zu töten, falls der NAME kein Dateisystem bezeichnen
sollte.
- -w
- tötet nur Prozesse, die Schreibzugriff haben. Diese
Option wird stillschweigend ignoriert, wenn nicht auch die Option
-k angegeben ist.
-
-n NAMENSRAUM, --namespace
NAMENSRAUM
- wählt einen anderen Namensraum. Die
Namensräume file (Dateinamen, die Voreinstellung),
udp (lokale UDP-Ports) und tcp (lokale TCP-Ports) werden
unterstützt. Für Ports kann entweder die Portnummer oder der
symbolische Name angegeben werden. Auch die Kurznotation
Name/ Namensraum (zum Beispiel
80/tcp) kann verwendet werden, falls dadurch keine
Mehrdeutigkeiten entstehen.
-
-s, --silent
- aktiviert den stillen Modus. Die Optionen -u und
-v werden in diesem Modus ignoriert. Die Option -a darf
nicht zusammen mit -s verwendet werden.
-
-SIGNAL
- verwendet beim Töten von Prozessen das angegebene
Signal anstelle von SIGKILL. Signale können entweder als Name (zum
Beispiel -HUP) oder als Nummer (zum Beispiel -1) angegeben
werden. Diese Option wird stillschweigend ignoriert, wenn die Option
-k nicht angegeben ist.
-
-u, --user
- hängt den Benutzernamen des Eigentümers jedes
Prozesses an jede PID an.
-
-v, --verbose
- aktiviert den ausführlichen Modus. Prozesse werden
ähnlich wie in ps angezeigt. Die Felder PID, BEN. und BEFEHL
sind ähnlich zu ps. ZUGR. zeigt, wie der Prozess auf die
Datei zugreift. Im ausführlichen Modus wird auch angezeigt, wann
auf eine bestimmte Datei als Einhängepunkt, Knfs-Export oder
Auslagerungsdatei zugegriffen wird. In diesem Fall wird kernel
anstelle der PID angezeigt.
-
-V, --version
- zeigt Versionsinformationen an.
-
-4, --ipv4
- sucht nur nach IPv4-Sockets. Diese Option darf nicht
zusammen mit der Option -6 verwendet werden und ist nur mit den
TCP- und UDP-Namensräumen wirksam.
-
-6, --ipv6
- sucht nur nach IPv6-Sockets. Diese Option darf nicht
zusammen mit der Option -4 verwendet werden und ist nur mit den
TCP- und UDP-Namensräumen wirksam.
- /proc
- Ort des /proc-Dateisystems
- fuser -km /home
- tötet alle Prozesse, die auf das Dateisystem /home
in irgendeiner Weise zugreifen.
-
if fuser -s /dev/ttyS1; then :; else
Befehl; fi
- ruft den angegebenen Befehl auf, falls kein anderer
Prozess /dev/ttyS1 nutzt.
- fuser telnet/tcp
- zeigt alle Prozesse am (lokalen) TELNET-Port.
Prozesse, die auf die gleiche Datei oder das gleiche Dateisystem mehrmals auf
die gleiche Weise zugreifen, werden nur einmal angezeigt.
Falls das gleiche Objekt in der Befehlszeile mehrmals angegeben ist,
können einige von dessen Einträgen ignoriert werden.
fuser könnte lediglich in der Lage sein, Teilinformationen zu
ermitteln, es sei denn, es wird mit höheren Privilegien
ausgeführt. Als Konsequenz könnten Dateien, die durch Prozesse
anderer Benutzer geöffnet wurden nicht aufgelistet und
ausführbare Programme nicht als zugewiesen klassifiziert werden.
fuser kann nicht auf Prozessen agieren, für die es keine
Zugriffsrechte auf die Dateideskriptortabelle hat. Am häufigsten tritt
dieses Problem beim Suchen nach TCP- oder UDP-Sockets auf, wenn
fuser
nicht mit Root-Rechten ausgeführt wird. In diesem Fall meldet
fuser keinen Zugriff.
Die Installation von
fuser SUID root wird Probleme vermeiden, die auf
unvollständige Informationen zurückzuführen sind, aber
könnte aus Sicherheitsgründen und zum Schutz der
Privatsphäre unerwünscht sein.
udp- und
tcp-Namensräume sowie UNIX-Domain-Sockets
können mit einem Kernel älter als Version 1.3.78 nicht
durchsucht werden.
Zugriffe durch den Kernel werden nur mit der Option
-v angezeigt.
Die Option
-k agiert nur auf Prozessen. Falls der Benutzer der Kernel
ist, gibt
fuser einen Hinweis aus, führt darüber hinaus
aber keine Aktion aus.
fuser wird keine blockorientierten Geräte sehen können, die
von Prozessen in einem anderen Einhängenamensraum eingehängt
wurden. Das kommt daher, weil die in der Dateideskriptortabelle sichtbare
Gerätekennung aus dem Prozessnamensraum stammt, nicht aus dem von
fuser.
Der Befehl
fuser -m /dev/sgX zeigt alle Prozesse an (oder tötet
diese, wenn die Option
-k angegeben ist), selbst dann, wenn Sie das
Gerät nicht eingerichtet haben. Es könnte weitere Geräte
geben, bei denen dies getan wird.
Die Option
-m von
mount erkennt jede Datei innerhalb eines
Geräts als die von Ihnen angegebene Datei; verwenden Sie
zusätzlich die Option
-M, um zu verdeutlichen, dass Sie nur den
Einhängepunkt angeben.
kill(1),
killall(1),
lsof(8),
mount_namespaces(7),
pkill(1),
ps(1),
kill(2).