fuser - Prozesse anhand von Dateien oder Sockets
identifizieren
ÜBERSICHT
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
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.