Temukan file mana yang dibaca atau ditulis

14

Saya ingin melihat file mana yang dibaca atau ditulis.

Apakah ada program atau perintah untuk itu? Saya ingat saya menggunakan metode ini untuk memburu virus dan malware yang menyembunyikan lokasi ketika saya menggunakan windows beberapa tahun yang lalu.

las
sumber

Jawaban:

15

Program itu adalah ("Daftar file yang terbuka") .lsof

  • Jika Anda baru saja membuka Terminal dan mengetik lsof, Anda mendapatkan daftar besar semua file yang terbuka, sebagai gantinya, batasi untuk satu perintah dengan melakukan:

    lsof -c gnome-terminal
    
  • Anda juga dapat membatasi pencarian Anda ke direktori tertentu dengan mengetik

    lsof -c gnome-terminal -a +D /tmp
    
  • Atau daftarkan semua file yang terbuka di satu direktori tertentu, termasuk aplikasi apa yang telah membukanya:

    lsof /dev/urandom
    

Ingat bahwa beberapa proses dimulai oleh root superuser , Anda mungkin harus meletakkan sudodi depan perintah Anda untuk mendapatkan informasi lebih lanjut tentang file-file terbuka proses tersebut.

Untuk mempersempit pencarian Anda, Anda dapat grepmenggunakan jalur tertentu, yaitu:

lsof /dev/urandom | grep chrome

  • Kolom FD(File Descriptor) dari output memberi Anda informasi tentang tujuan program membuka file (belum tentu apa yang terjadi padanya saat ini):

    • r berarti file dibuka untuk dibaca

    • w berarti file dibuka untuk ditulis

    • u berarti file dibuka untuk membaca dan menulis


Untuk detail lebih lanjut, lihat halaman manual ( man lsof). Juga, jika Anda perlu mencari salah satu file dan direktori, Linux Filesystem Hierarchy Standard sangat membantu.

Stefano Palazzo
sumber
4

Sebagai opsi over-kill lengkap, tetapi yang bekerja secara real-time, Anda dapat menggunakan inotify:

sudo inotifywait -m -r /

Perhatikan bahwa ini akan menghabiskan banyak memori, dan membutuhkan waktu lama untuk menyiapkan. Seperti yang dikatakan halaman manual:

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

Ini juga tidak memberi tahu Anda apa proses mengacaukan file, tetapi mungkin membantu mengidentifikasi perubahan saat mereka terjadi. Menggunakan "-e open" dapat membantu mengurangi beberapa kebisingan pada sistem yang sangat sibuk.

Kees Cook
sumber
Saya cukup yakin ini tidak akan berhasil, dengan atau tanpa menetapkan batas yang lebih tinggi untuk inotify / max_user_watches sebelumnya. Anda mencoba menambahkan arloji ke setiap file di sistem ...
Volker Siegel