Trova quali file vengono letti o scritti


14

Voglio vedere su quali file vengono letti o scritti.

C'è qualche programma o un comando per quello? Ricordo di aver usato questo metodo per dare la caccia a virus e malware nascondendo posizioni quando ho usato Windows qualche anno fa.

Risposte:


15

Quel programma è ("Elenco file aperti") .lsof

  • Se apri un Terminale e digiti lsof, otterrai un enorme elenco di tutti i file aperti, invece, limitalo a un comando eseguendo:

    lsof -c gnome-terminal
    
  • Puoi anche limitare la ricerca a una directory specifica digitando

    lsof -c gnome-terminal -a +D /tmp
    
  • Oppure elenca tutti i file aperti in una directory specifica, inclusa l'applicazione che l'ha aperta:

    lsof /dev/urandom
    

Ricorda che alcuni processi vengono avviati dalla radice del superutente , potrebbe essere necessario mettere sudodavanti al tuo comando per ottenere maggiori informazioni sui file aperti di tali processi.

Per restringere la ricerca, è possibile grepspecificare linee, ad esempio:

lsof /dev/urandom | grep chrome

  • La FDcolonna (File Descriptor) dell'output fornisce informazioni sullo scopo del programma di apertura del file (non necessariamente cosa sta succedendo al momento):

    • r significa che il file è aperto per la lettura

    • w significa che il file è aperto per la scrittura

    • u significa che il file è aperto sia in lettura che in scrittura


Per maggiori dettagli, consultare la pagina del manuale ( man lsof). Inoltre, se hai bisogno di cercare uno qualsiasi dei file e delle directory, Linux Filesystem Hierarchy Standard è molto utile.


4

Come opzione di over-kill completa, ma che funziona in tempo reale, puoi usare inotify:

sudo inotifywait -m -r /

Si noti che ciò consumerà molta memoria e richiederà molto tempo per l'installazione. Come dice la manpage:

   -r, --recursive
          Watch all subdirectories of any directories passed as arguments.
          Watches  will be set up recursively to an unlimited depth.  Sym‐
          bolic links are not  traversed.   Newly  created  subdirectories
          will also be watched.

          Warning:  If  you use this option while watching the root direc‐
          tory of a large tree, it may take quite a while until  all  ino‐
          tify watches are established, and events will not be received in
          this time.  Also, since one inotify watch  will  be  established
          per subdirectory, it is possible that the maximum amount of ino‐
          tify watches per user will be reached.  The default  maximum  is
          8192;  it  can  be  increased  by  writing  to /proc/sys/fs/ino‐
          tify/max_user_watches.

Anche questo non ti dice quale processo sta pasticciare con i file, ma può aiutare a identificare le modifiche mentre si verificano. L'uso di "-e open" può aiutare a ridurre parte del rumore su un sistema molto occupato.


Sono abbastanza sicuro che non funzionerà, con o senza l'impostazione di un limite superiore per inotify / max_user_watches prima. Stai cercando di aggiungere un orologio a ogni singolo file sul sistema ...
Volker Siegel,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.