Il lsof di comando in Linux mostra nella sua uscita informazioni sui file che vengono aperti dai processi. In questo articolo, parleremo di Linux lsof strumento mediante il 15 di facile comprensione esempi. Si prega di notare che tutti gli esempi citati in questo tutorial sono stati testati su Ubuntu 20.04 LTS, ma lavorano su altre distribuzioni Linux come Debian, Fedora e CentOS.
Su Comando lsof
Se si desidera visualizzare rapidamente il nome del file che sono stati aperti da un particolare processo (o di tutti i processi), il comando lsof, ti permette di fare. Un file aperto potrebbe essere un normale file o una directory, una biblioteca, un file speciale o di dispositivo di blocco, un carattere speciale file, l’esecuzione di un testo di riferimento, o anche un fiume o da un file di rete. È anche possibile elencare i processi da un numero di porta. Se non hai effettuato l’accesso come utente root, quindi potrebbe essere necessario anteporre “sudo” per i comandi.
Installare Linux comando lsof
La maggior parte delle distribuzioni Linux vengono con lsof pre-installato. Se non è installato sul vostro sistema di sicurezza, utilizzare i seguenti comandi:
Su Ubuntu e Debian:
$ sudo apt install lsof
Ond CentOS e Fedora:
$ dnf installare lsof
1. Come elencare tutti i file aperti
Per elencare tutti i file aperti, eseguire il comando lsof, senza parametri:
lsof
Per esempio, Qui è il screengrab di una parte dell’output del comando precedente prodotto sul mio sistema:
La prima colonna rappresenta il processo, mentre l’ultima colonna contiene il nome del file. Per i dettagli su tutte le colonne, responsabile per il comando dell’ uomo pagina.
2. Come elenco di file aperti dai processi appartenenti ad un utente specifico
Lo strumento permette inoltre di elencare i file aperti dai processi appartenenti ad un utente specifico. Questa funzione è possibile accedere tramite i -u opzione della riga di comando.
lsof -u [nome utente]
Per esempio:
lsof -u administrator
3. Come elenco di file in base al loro indirizzo Internet
Lo strumento consente di visualizzare file in base al loro indirizzo Internet. Questo può essere fatto utilizzando l’ -mi opzione della riga di comando. Per esempio, se si desidera, si può avere IPv4 e IPv6 file visualizzati separatamente. Per IPv4, eseguire il seguente comando:
lsof-i 4
Per esempio:
Allo stesso modo, per IPv6, eseguire il seguente comando:
lsof-i 6
Per esempio:
lsof-i 6
4. Come elencare tutti i file dal nome dell’applicazione
-C opzione della riga di comando consente di ottenere tutti i file aperti dal nome del programma.
$ lsof -c apache
Non è necessario utilizzare il programma completo di nome, come tutti i programmi che iniziano con la parola ‘apache’ e mostrato. Quindi, nel nostro caso, si aprirà un elenco di tutti i processi di ‘apache2’ applicazione.
L’opzione-c è fondamentalmente solo un collegamento per i due comandi:
$ lsof | grep apache
5. Come file di elenco specifico di un processo
Inoltre, lo strumento consente di visualizzare i file aperti del processo di identificazione (PID) numeri. Questo può essere fatto utilizzando l’ -p opzione della riga di comando.
lsof -p [PID]
Per esempio:
lsof -p 856
In movimento, è possibile escludere determinati Pid in uscita aggiungendo i ^ simbolo prima di loro. Per escludere un determinato PID, è possibile eseguire il seguente comando:
lsof -p [^PID]
Per esempio:
lsof -p ^1
Come si può vedere nell’immagine qui sopra, il processo con id 1 e ‘ esclusa dall’elenco.
6. Come elencare gli Id dei processi che hanno aperto un file particolare
Lo strumento consente di visualizzare gli Id dei processi che hanno aperto un particolare file. Questo può essere fatto utilizzando l’ -t opzione della riga di comando.
$ lsof -t [nome file]
Per esempio:
$ lsof -t /usr/lib/x86_64-linux-gnu/libpcre2-8.così.0.9.0
7. Come elencare tutti i file in una directory
Se si desidera, si può anche fare lsof di ricerca per tutte le istanze aperte di una directory (tra cui tutti i file e le directory che contiene). Questa funzione può essere raggiunto utilizzando il +D opzione della riga di comando.
$ lsof +D [directory path]
Per esempio:
$ lsof +D /usr/lib/locale
8. Come elenco di tutti Internet e x.25 (HP-UX) file di rete
Questo è possibile utilizzando l’ -mi opzione della riga di comando che abbiamo descritto precedentemente. Solo che devi usare è senza argomenti.
$ lsof-i
9. Trovare il programma che utilizza una porta
L’opzione del comando permette di trovare un processo o applicazione che ascolta un numero di porta specifico. Nell’esempio riportato di seguito, ho controllato il programma che utilizza la porta 80.
$ lsof -i :80
Invece il numero di porta, è possibile utilizzare il nome del servizio, come elencati in /etc/services file. Esempio app che utilizza il protocollo HTTPS (443) porta:
$ lsof -i :https
Risultato:
Gli esempi di cui sopra si verifica sia per TCP e UDP. Se desiderate effettuare il check-TCP o UDP solo, premettere la parola ” tcp ” o “udp’. Per esempio quale applicazione sta utilizzando la porta TCP 25:
$ lsof-i tcp:25
o app che utilizza la porta UDP 53:
$ lsof-i udp:53
10. Come elenco di aprire i file basato sull’intervallo di porte
L’utility permette anche di aprire i file basato su una porta specifica o un intervallo di porte. Per esempio, per visualizzare i file aperti per la porta 1-1024, utilizzare il seguente comando:
$ lsof -i :1-1024
11. Come elenco di aprire i file in base al tipo di connessione (TCP o UDP)
Lo strumento consente di visualizzare i file in base al tipo di connessione. Per esempio, per UDP file specifici, utilizzare il seguente comando:
$ lsof-i udp
Allo stesso modo, è possibile rendere lsof display TCP-i file specifici.
12. Come fare lsof elenco Parent PID dei processi
C’è anche un’opzione che le forze di lsof per elencare il Processo Padre di Identificazione (PPID) numero in uscita. L’opzione in questione è -R.
$ lsof -R
Per ottenere PPID info per una specifica PID, è possibile eseguire il seguente comando:
$ lsof -p [PID] -R
Per esempio:
$ lsof -p 3 -R
13. Come trovare l’attività della rete da parte dell’utente
Utilizzando una combinazione di i -i e -u opzioni della riga di comando, si può cercare, tutte le connessioni di rete di un utente Linux. Questo può essere utile se si controlla un sistema che potrebbe essere stato violato. In questo esempio, si controlla tutta l’attività di rete dell’utente www-data:
$ lsof -a-i -u www-data
14. Elenco di tutti i file mappati in memoria
Questo comando elenca tutti i file mappati in memoria su Linux.
$ lsof -d mem
15. Elenco di tutti i file NFS
L’opzione-N mostra un elenco di tutti i NFS (Network File System) file.
$lsof -N
Conclusione
Anche se lsof offre una pletora di opzioni, quelle di cui abbiamo discusso qui, dovrebbe essere sufficiente per iniziare. Una volta fatto pratica con questi, la testa dello strumento pagina man per saperne di più su di esso. Oh, e nel caso in cui avete dubbi e interrogativi, cadere in un commento qui sotto.