Come controllare i file Apri in Linux

Come controllare i file Apri in Linux

Potresti aver incontrato il detto: “Tutto è un file in Linux."Anche se questo non è del tutto vero, tiene una serie di verità ad esso.

In sistemi Linux e simili a UNIX, tutto è come un file. Ciò significa che le risorse nel sistema UNIX ricevono un descrittore di file, inclusi dispositivi di archiviazione, prese di rete, processi, ecc.

Un descrittore di file è un numero univoco che identifica un file e altri dispositivi di input/output. Descrive le risorse e come il kernel le accede. Pensalo come un gateway per le risorse hardware di astrazione del kernel.

Sfortunatamente, il concetto di descrittori di file va oltre lo scopo di questo tutorial; Considera il link fornito di seguito per iniziare a saperne di più:

https: // en.Wikipedia.org/wiki/file_descriptor

Ciò significa che i sistemi simili a unix e unix come Linux usano pesantemente tali file. Come utente di Power Linux, vedere i file aperti, il processo e gli utenti che li usano è incredibilmente utile.

Questo tutorial si concentrerà sui modi per visualizzare i file aperti e quale processo o utente è responsabile.

Prerequisiti

Prima di iniziare, assicurati di avere:

  • Un sistema Linux
  • Utente con privilegi root o sudo

Se hai questi, iniziamo:

Utilità LSOF

Creato da Victor A Abell, elenca i file aperti o LSOF in breve, è un'utilità della linea di comando che ci consente di visualizzare i file aperti e i processi o gli utenti che li hanno aperti.

L'utilità LSOF è disponibile nelle principali distribuzioni Linux; Tuttavia, potresti trovarlo non installato e quindi potrebbe essere necessario installare manualmente.

Come installare LSOF su Debian/Ubuntu

Per installarlo su Debian, usa il comando:

Sudo Apt-get Aggiornamento
sudo apt -get installa lsof -y

Come installare su rehl/centos

Per installare su REHL e CentOS, usa il comando:

Sudo DNF Aggiornamento
sudo dnf installa lsof

Come installare su arco

Su Arch, chiama il gestore pacchetti utilizzando il comando:

Sudo Pacman -sy
sudo pacman -s lsof

Come installare su fedora

Su Fedora, usa il comando:

sudo yum installa lsof

Una volta installata e aggiornata l'utilità LSOF, possiamo iniziare a usarla.

Utilizzo di base LSOF

Per utilizzare lo strumento LSOF, immettere il comando:

sudo lsof

Una volta eseguito il comando sopra, LSOF scaricherà molte informazioni come mostrato di seguito:

L'output sopra mostra tutti i file aperti dai processi. L'output ha varie colonne, ciascuna che rappresenta informazioni specifiche sul file.

  • La colonna di comando - mostra il nome del processo che utilizza il file.
  • Pid - mostra l'identificatore del processo del processo utilizzando il file.
  • Il TID - Mostra l'ID dell'attività (thread) del processo.
  • Taskcmd - Rappresenta il nome del comando dell'attività.
  • UTENTE - Il proprietario del processo.
  • Fd - Mostra il numero del descrittore dei file. Ecco come i processi usano il file; Le opzioni disponibili in questa colonna output includono:
  • CWD - Directory di lavoro attuale.
  • mem - file mappato a memoria
  • pd - directory genitore
  • Jld - directory di prigione
  • LTX - Testo della libreria condiviso
  • rtd - root directory.
  • TXT - Codice e dati del programma
  • tr - file di traccia del kernel.
  • err - Errore di informazioni sul descrittore dei file
  • MMP - Dispositivo mappato a memoria.
  • TIPO - Mostra il tipo di nodo associato al file, come ad esempio:
  • Unix - per la presa di dominio unix.
  • Dir - rappresenta la directory
  • Reg - rappresentando il file normale
  • Chr - rappresenta il file di caratteri speciali.
  • COLLEGAMENTO - File di collegamento simbolico
  • Blk - Blocca un file speciale
  • Inet - Presa di dominio Internet
  • FIFO - un tubo chiamato (primo nel primo file)
  • TUBO - per i tubi

E molti altri.

  • DISPOSITIVI - Mostra i numeri di dispositivo separati da virgole nell'ordine di file di caratteri speciali, blocca il file speciale, regolare, directory e NFS.
  • Dimensioni/spento - Mostra la dimensione del file PR Offset in byte.
  • NODO - mostra il numero di nodo del file locale, tipo per il tipo di protocollo Internet, ecc.
  • NOME - mostra il nome del punto di montaggio e FS su cui si trova il file.

Nota: Fare riferimento al manuale LSOF per informazioni dettagliate sulle colonne.

Come mostrare processi che hanno aperto un file

LSOF ci fornisce opzioni che ci aiutano a filtrare l'output per mostrare solo i processi che hanno aperto un file specifico.

Ad esempio, per vedere il file che ha aperto il file /bin /bash, utilizzare il comando come:

sudo lsof /bin /bash

Questo ti darà un output come mostrato di seguito:

Comando PID User Utente FD Dimensione dispositivo/Nome nodo
KSMTUNED 1025 ROOT TXT REG 253,0 1150704 428303/USR/Bin/Bash
BASH 2968 CENTOS TXT REG 253,0 1150704 428303/USR/Bin/Bash
BASH 3075 CENTOS TXT REG 253,0 1150704 428303/USR/Bin/Bash

Come mostrano i file aperti da un utente specifico

Possiamo anche filtrare l'output per mostrare i file aperti da un utente specifico. Lo facciamo usando il flag -u seguito dal nome utente come:

sudo lsof -u centos

Questo ti darà un output come mostrato di seguito:

Come mostrare i file aperti da un processo specifico

Supponiamo di voler visualizzare tutti i file aperti da un processo specifico? Per questo, possiamo usare il PID del processo per filtrare l'output.

Ad esempio, il comando seguente mostra i file aperti da Bash.

sudo lsof -p 3075

Questo ti darà solo i file aperti da SystemD come mostrato:

Come mostrare i file aperti in una directory

Per aprire i file in una directory specifica, possiamo passare l'opzione +D seguita dal percorso della directory.

Ad esempio, elenca i file aperti nella directory /etc.

sudo lsof +d /etc

Di seguito è riportato l'output per questo:

Come mostrare la connessione di rete

Poiché tutto in Linux è un file, possiamo ottenere i file di rete come file TCP o connessioni.

Possiamo usare il comando:

sudo lsof -i tcp

Questo ti darà le connessioni TCP nel sistema.

È inoltre possibile filtrare per la porta specifica utilizzando il comando mostrato di seguito:

sudo lsof -i: 22

Questo ti darà l'output come mostrato di seguito:

Come mostrare continuamente i file

LSOF ci fornisce una modalità per lottare l'uscita ogni pochi secondi. Ciò consente di monitorare continuamente i file aperti da un processo o dall'utente.

Questa opzione, tuttavia, richiede di terminare manualmente il processo.

Ad esempio, il comando di seguito monitora continuamente i file aperti sulla porta 22:

sudo lsof -r -i: 22

Come puoi vedere, nel terzo ciclo, LSOF cattura la connessione stabilita al server su SSH.

Conclusione

LSOF è un'utilità incredibilmente utile. Ti consente di monitorare file critici e monitorare gli utenti e i processi di apertura dei file. Questo può essere incredibilmente utile quando si risolvono i problemi o si cercano tentativi dannosi per il sistema.

Come mostrato in questo tutorial, utilizzando vari esempi e metodi, è possibile combinare la funzionalità fornita dallo strumento LSOF per il monitoraggio personalizzato.

Grazie per la lettura e la condivisione! Spero che tu abbia imparato qualcosa di nuovo!