Знайдіть, до яких файлів читати чи записувати


14

Я хочу побачити, до яких файлів читати чи записувати.

Чи є для цього програма чи команда? Я пам'ятаю, що я використовував цей метод для пошуку вірусів і зловмисного програмного забезпечення, коли кілька років тому я використовував Windows.

Відповіді:


16

Ця програма є ("Список відкритих файлів") .lsof

  • Якщо ви просто відкриєте термінал і введіть lsof, ви отримаєте величезний список всіх відкритих файлів, натомість обмежте його однією командою, виконавши:

    lsof -c gnome-terminal
    
  • Ви також можете обмежити пошук певним каталогом, ввівши

    lsof -c gnome-terminal -a +D /tmp
    
  • Або перерахуйте всі відкриті файли в одному конкретному каталозі, включаючи те, що програма відкрила його:

    lsof /dev/urandom
    

Пам'ятайте, що деякі процеси запускаються коренем суперрузера , можливо, вам знадобиться поставити sudoперед вашою командою, щоб отримати більше інформації про відкриті файли таких процесів.

Щоб звузити пошук, ви можете вказати grepконкретні рядки, тобто:

lsof /dev/urandom | grep chrome

  • У FDстовпці («Дескриптор файлу») виводиться інформація про мету програми, що відкриває файл (не обов’язково, що з ним відбувається в даний момент):

    • r означає, що файл відкритий для читання

    • w означає, що файл відкритий для запису

    • u означає, що файл відкрито як для читання, так і для запису


Для отримання більш детальної інформації зверніться до сторінки керівництва ( man lsof). Крім того, якщо вам потрібно знайти будь-який з файлів і каталогів, дуже корисним є стандарт ієрархії файлової системи Linux .


6

Як повний варіант over-kill, але той, який працює в режимі реального часу, ви можете використовувати inotify:

sudo inotifywait -m -r /

Зауважте, що це потребує великої кількості пам’яті та потребує тривалого часу. Як говориться на сторінці сторінки:

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

Це також не говорить вам про те, який процес возиться з файлами, але це може допомогти визначити зміни в міру їх виникнення. Використання "-e open" може допомогти зменшити частину шуму в дійсно зайнятій системі.


Я впевнений, що це не вийде, із встановленням вищої межі для inotify / max_user_watches або без неї раніше. Ви намагаєтеся додати годинник до кожного окремого файлу в системі ...
Volker Siegel
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.