Inleiding
De fuser
opdracht is een Linux-hulpprogramma dat is ontworpen om te achterhalen welk proces een gegeven bestand, map of socket gebruikt. Het biedt ook informatie over de gebruiker die dat proces bezit en uitvoert, en het type toegang.
Hoe de fuser-hulpprogramma te gebruiken
U kunt de fuser
handleiding raadplegen om een overzicht te krijgen van alle opties die met fuser
kunnen worden gebruikt. U kunt ook fuser
zelf uitvoeren zonder enige opties om een overzicht te krijgen van de syntaxis van fuser
:
- fuser
OutputNo 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]]]
Hoe processen die worden uitgevoerd in een map te bekijken
fuser
kan ook worden gebruikt met de -v optie, die het hulpprogramma in de uitgebreide modus uitvoert. De uitgebreide optie wordt gebruikt om meer uitvoer te produceren zodat de gebruiker kan observeren wat fuser
doet. Voer fuser
uit in de huidige map, .
, terwijl u de -v
optie toevoegt:
- fuser -v .
Output USER PID ACCESS COMMAND
/home/sammy: sammy 17604 ..c.. bash
In dit geval is het enige proces dat wordt uitgevoerd in deze map de interactieve bash
-shell waaruit je nu commando’s uitvoert.
Wanneer uitgevoerd in de uitgebreide modus, geeft het fuser
-hulpprogramma informatie over de USER
, PID
, ACCESS
en COMMAND
van een proces. Het c
-teken onder ACCESS
toont het type toegang, wat in dit geval betekent de current-map. Er zijn andere soorten toegang, zoals executable dat wordt uitgevoerd, root-map, geopend file, en mapped-bestand of gedeelde bibliotheek.
Hoe processen vinden die netwerksockets gebruiken
U moet mogelijk ook processen opzoeken die TCP- en UDP-sockets gebruiken. Om dit voorbeeld te demonstreren, gebruikt u eerst nc
om een TCP-ontvanger op poort 8002 te maken, zodat er een actief proces is dat u kunt observeren:
- nc -l -p 8002
Dit zal de terminal blokkeren zolang het actief is. In een ander terminalvenster gebruikt u fuser
om het proces te vinden dat op TCP-poort 8002 wordt uitgevoerd met de optie -n
:
- fuser -v -n tcp 8002
Output USER PID ACCESS COMMAND
8002/tcp: sammy 17985 F.... nc
Let op: Standaard controleert het fuser
-gereedschap zowel IPv4- als IPv6-sockets, maar u kunt dit wijzigen met de opties -4
en -6
om alleen IPv4- of alleen IPv6-verbindingen te controleren, respectievelijk.
Deze uitvoer toont dat het proces-id (PID
) van het proces dat netcat gebruikt 17985
is en het commando waarmee het is gestart ‘nc’ is. Het proces-id (PID) kan op vele manieren worden gebruikt, waaronder om een lopend proces te stoppen of te beëindigen. U kunt meer leren over procesbeheer door Hoe ps, kill en nice te gebruiken om processen te beheren in Linux te lezen. U kunt ook fuser
zelf gebruiken om processen die op specifieke poorten draaien te beëindigen met behulp van de -k
vlag:
- fuser -k 8002/tcp
Output8002/tcp: 18056
Als u terugkeert naar uw eerste terminalvenster, zult u merken dat het programma nc
is beëindigd en teruggekeerd naar de shell.
Het hulpprogramma fuser kan ook worden gebruikt om specifieke signalen naar een proces te sturen. Wanneer het wordt gebruikt met de -k optie, stuurt het fuser-commando het KILL-signaal naar een proces. Er zijn veel andere signalen die naar een specifiek lopend proces kunnen worden gestuurd. U kunt deze lijsten met fuser -l
:
- fuser -l
OutputHUP 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
Conclusie
In dit artikel heeft u enkele voorbeeldgebruiken van fuser
geleerd om in gebruik zijnde poorten en mappen op een Linux-systeem te controleren. fuser
kan bijzonder nuttig zijn wanneer u probeert te begrijpen welke onbekende processen mogelijk op uw systeem worden uitgevoerd.
Volgende, wilt u misschien leren hoe u netstat
en du
gebruikt om andere serverresources te controleren.
Source:
https://www.digitalocean.com/community/tutorials/how-to-use-the-linux-fuser-command