Rechercher les fichiers lus ou écrits dans

14

Je veux voir quels fichiers sont lus ou écrits.

Existe-t-il un programme ou une commande pour cela? Je me souviens que j'ai utilisé cette méthode pour traquer les virus et les logiciels malveillants masquant les emplacements lorsque j'ai utilisé Windows il y a quelques années.

Las
la source

Réponses:

15

Ce programme est ("Liste des fichiers ouverts") .lsof

  • Si vous venez d'ouvrir un terminal et de taper lsof, vous obtenez une énorme liste de tous les fichiers ouverts, au lieu de cela, limitez-le à une seule commande en faisant:

    lsof -c gnome-terminal
    
  • Vous pouvez également restreindre votre recherche à un répertoire spécifique en tapant

    lsof -c gnome-terminal -a +D /tmp
    
  • Ou répertoriez tous les fichiers ouverts dans un répertoire spécifique, y compris l'application qui l'a ouvert:

    lsof /dev/urandom
    

N'oubliez pas que certains processus sont démarrés par la racine du superutilisateur , vous devrez peut-être placer sudodevant votre commande pour obtenir plus d'informations sur les fichiers ouverts de ces processus.

Pour affiner votre recherche, vous pouvez grepdéfinir des lignes spécifiques, à savoir:

lsof /dev/urandom | grep chrome

  • La FDcolonne (Descripteur de fichier) de la sortie vous donne des informations sur le but du programme ouvrant le fichier (pas nécessairement ce qui lui arrive en ce moment):

    • r signifie que le fichier est ouvert en lecture

    • w signifie que le fichier est ouvert pour l'écriture

    • u signifie que le fichier est ouvert pour la lecture et l'écriture


Pour plus de détails, consultez la page de manuel ( man lsof). De plus, si vous devez rechercher l'un des fichiers et répertoires, la norme de hiérarchie du système de fichiers Linux est très utile.

Stefano Palazzo
la source
4

En tant qu'option de sur-suppression complète, mais qui fonctionne en temps réel, vous pouvez utiliser inotify:

sudo inotifywait -m -r /

Notez que cela consommera beaucoup de mémoire et prendra beaucoup de temps à configurer. Comme le dit la page de manuel:

   -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.

Cela ne vous indique pas non plus quel processus gâche les fichiers, mais cela peut aider à identifier les changements au fur et à mesure qu'ils se produisent. L'utilisation de "-e open" peut aider à réduire une partie du bruit sur un système très occupé.

Kees Cook
la source
Je suis sûr que cela ne fonctionnera pas, avec ou sans définir une limite supérieure pour inotify / max_user_watches avant. Vous essayez d'ajouter une montre à chaque fichier du système ...
Volker Siegel