![Come abilitare la funzione di registrazione dello schermo su iOS](/f/3ba377dfe2edd8377f3a87cb35ccc0d4.png?width=100&height=100)
In questo articolo spiegheremo come scoprire chi sta usando un particolare file in Linux. Questo ti aiuterà a conoscere l'utente del sistema o il processo che sta utilizzando un file aperto.
Possiamo usare il comando lsof per sapere se qualcuno sta usando un file e, se lo sono, chi. Legge la memoria del kernel nella sua ricerca di file aperti e ti aiuta a elencare tutti i file aperti. In questo caso, un file aperto può essere un file normale, una directory, un file speciale a blocchi, un file speciale a caratteri, uno stream, un file di rete e molti altri, perché in Linux tutto è un file.
Lsof viene utilizzato su un file system per identificare chi sta utilizzando i file su quel file system. puoi correre comando lsof sul filesystem Linux e l'output identifica il proprietario e le informazioni sul processo per i processi che utilizzano il file come mostrato nell'output seguente.
$ lsof /dev/null
Elenco di tutti i file aperti in Linux
COMANDO PID UTENTE FD TIPO DIMENSIONE DISPOSITIVO/OFF NOME NODO. systemd 1480 tecmint 0r CHR 1,3 0t0 6 /dev/null. sh 1501 tecmint 0r CHR 1,3 0t0 6 /dev/null. sh 1501 tecmint 1w CHR 1,3 0t0 6 /dev/null. dbus-daem 1530 tecmint 0u CHR 1,3 0t0 6 /dev/null. xfce4-ses 1603 tecmint 0r CHR 1,3 0t0 6 /dev/null. xfce4-ses 1603 tecmint 1w CHR 1,3 0t0 6 /dev/null. at-spi-bu 1604 tecmint 0r CHR 1,3 0t0 6 /dev/null. dbus-daem 1609 tecmint 0u CHR 1,3 0t0 6 /dev/null. at-spi2-r 1611 tecmint 0u CHR 1,3 0t0 6 /dev/null. xfconfd 1615 tecmint 0u CHR 1,3 0t0 6 /dev/null. xfwm4 1624 tecmint 0r CHR 1,3 0t0 6 /dev/null. xfwm4 1624 tecmint 1w CHR 1,3 0t0 6 /dev/null. xfce4-pan 1628 tecmint 0r CHR 1,3 0t0 6 /dev/null. xfce4-pan 1628 tecmint 1w CHR 1,3 0t0 6 /dev/null. Thunar 1630 tecmint 0r CHR 1,3 0t0 6 /dev/null. Thunar 1630 tecmint 1w CHR 1,3 0t0 6 /dev/null. xfdesktop 1632 tecmint 0r CHR 1,3 0t0 6 /dev/null. xfdesktop 1632 tecmint 1w CHR 1,3 0t0 6 /dev/null...
Per elencare i file aperti specifici dell'utente, eseguire il seguente comando replace tecnica
con il nome utente effettivo.
$ lsof -u tecmint
Elenco dei file aperti dall'utente
COMANDO PID UTENTE FD TIPO DIMENSIONE DISPOSITIVO/OFF NOME NODO. systemd 1480 tecmint cwd DIR 8,3 4096 2 / systemd 1480 tecmint rtd DIR 8,3 4096 2 / systemd 1480 tecmint txt REG 8,3 1595792 3147496 /lib/systemd/systemd. systemd 1480 tecmint mem REG 8,3 1700792 3150525 /lib/x86_64-linux-gnu/libm-2.27.so. systemd 1480 tecmint mem REG 8,3 121016 3146329 /lib/x86_64-linux-gnu/libudev.so.1.6.9. systemd 1480 tecmint mem REG 8,3 84032 3150503 /lib/x86_64-linux-gnu/libgpg-error.so.0.22.0. systemd 1480 tecmint mem REG 8,3 43304 3150514 /lib/x86_64-linux-gnu/libjson-c.so.3.0.1. systemd 1480 tecmint mem REG 8,3 34872 2497970 /usr/lib/x86_64-linux-gnu/libargon2.so.0. systemd 1480 tecmint mem REG 8,3 432640 3150484 /lib/x86_64-linux-gnu/libdevmapper.so.1.02.1. systemd 1480 tecmint mem REG 8,3 18680 3150450 /lib/x86_64-linux-gnu/libattr.so.1.1.0. systemd 1480 tecmint mem REG 8,3 18712 3150465 /lib/x86_64-linux-gnu/libcap-ng.so.0.0.0. systemd 1480 tecmint mem REG 8,3 27112 3150489 /lib/x86_64-linux-gnu/libuuid.so.1.3.0. systemd 1480 tecmint mem REG 8,3 14560 3150485 /lib/x86_64-linux-gnu/libdl-2.27.so...
Un altro uso importante di lsof è quello di scoprire il processo in ascolto su una porta specifica. Ad esempio identificare il processo in ascolto sulla porta 80 utilizzando il seguente comando.
$ sudo lsof -i TCP: 80
Scopri la porta di ascolto del processo
COMANDO PID UTENTE FD TIPO DIMENSIONE DISPOSITIVO/OFF NOME NODO. httpd 903 radice 4u IPv6 20222 0t0 TCP *:http (ASCOLTA) httpd 1320 apache 4u IPv6 20222 0t0 TCP *:http (ASCOLTA) httpd 1481 apache 4u IPv6 20222 0t0 TCP *:http (ASCOLTA) httpd 1482 apache 4u IPv6 20222 0t0 TCP *:http (ASCOLTA) httpd 1493 apache 4u IPv6 20222 0t0 TCP *:http (ASCOLTA) httpd 1763 apache 4u IPv6 20222 0t0 TCP *:http (ASCOLTA) httpd 2027 apache 4u IPv6 20222 0t0 TCP *:http (ASCOLTA) httpd 2029 apache 4u IPv6 20222 0t0 TCP *:http (ASCOLTA) httpd 2044 apache 4u IPv6 20222 0t0 TCP *:http (ASCOLTA) httpd 3199 apache 4u IPv6 20222 0t0 TCP *:http (ASCOLTA) httpd 3201 apache 4u IPv6 20222 0t0 TCP *:http (ASCOLTA)
Nota: Da lsof legge la memoria del kernel nella sua ricerca di file aperti, rapidi cambiamenti nella memoria del kernel possono risultare in output imprevedibili. Questo è uno dei principali svantaggi dell'utilizzo comando lsof.
Per maggiori informazioni, guarda il lsof pagina man:
$ man lsof.
È tutto! In questo articolo abbiamo spiegato come sapere chi sta usando un particolare file in Linux. Abbiamo mostrato come identificare il proprietario e elaborare le informazioni per i processi utilizzando un file aperto. Utilizza il modulo di feedback qui sotto per contattarci per qualsiasi domanda o commento.