FUSER
Section: Dienstprogramme für Benutzer (1)
Updated: 29. September 2020
Page Index
BEZEICHNUNG
fuser - Prozesse anhand von Dateien oder Sockets identifizieren
ÜBERSICHT
fuser [
-fuv] [
-a|
-s] [
-4|
-6] [
-c|
-m|
-n space]
[
-k [
-i] [
-M] [
-w] [
-SIGNAL] ]
name ...
fuser -l
fuser -V
BESCHREIBUNG
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.
OPTIONEN
- -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
-
NAME specifies a file on a mounted file system or a block device that is
mounted. All processes accessing files on that file system are listed. If
a directory is specified, it is automatically changed to NAME/ to use any
file system that might be mounted on that directory.
- -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.
- -
-
setzt alle Optionen zurück und setzt das Signal auf SIGKILL.
DATEIEN
- /proc
-
Ort des /proc-Dateisystems
BEISPIELE
- 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.
EINSCHRÄNKUNGEN
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.
FEHLER
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.
SIEHE AUCH
kill(1),
killall(1),
lsof(8),
pkill(1),
ps(1),
kill(2).