Tìm tập tin nào được đọc hoặc ghi vào


14

Tôi muốn xem những tập tin được đọc hoặc ghi vào.

Có bất kỳ chương trình hoặc một lệnh cho điều đó? Tôi có thể nhớ rằng tôi đã sử dụng phương pháp này để săn lùng các vị trí ẩn virus và phần mềm độc hại khi tôi sử dụng các cửa sổ vài năm trước.

Câu trả lời:


15

Chương trình đó là ("Liệt kê các tệp đang mở") .lsof

  • Nếu bạn chỉ mở Terminal và gõ lsof, bạn sẽ nhận được một danh sách lớn tất cả các tệp đang mở, thay vào đó, giới hạn nó ở một lệnh bằng cách thực hiện:

    lsof -c gnome-terminal
    
  • Bạn cũng có thể giới hạn tìm kiếm của mình vào một thư mục cụ thể bằng cách nhập

    lsof -c gnome-terminal -a +D /tmp
    
  • Hoặc liệt kê tất cả các tệp đang mở trong một thư mục cụ thể, bao gồm cả ứng dụng nào đã mở nó:

    lsof /dev/urandom
    

Hãy nhớ rằng một số quy trình được bắt đầu bởi các superuser gốc , bạn có thể cần phải đặt sudotrước lệnh của bạn để lấy thêm thông tin về các tập tin mở các quá trình như vậy.

Để thu hẹp tìm kiếm của bạn, bạn có thể grepcác dòng cụ thể, nghĩa là:

lsof /dev/urandom | grep chrome

  • Cột FD(Mô tả tệp) của đầu ra cung cấp cho bạn thông tin về mục đích của chương trình mở tệp (không nhất thiết là những gì đang xảy ra với nó tại thời điểm này):

    • r có nghĩa là tập tin được mở để đọc

    • w có nghĩa là tập tin được mở để viết

    • u có nghĩa là tệp được mở cho cả đọc và viết


Để biết thêm chi tiết, tham khảo trang hướng dẫn ( man lsof). Ngoài ra, nếu bạn cần tra cứu bất kỳ tệp và thư mục nào, Tiêu chuẩn phân cấp hệ thống tệp Linux rất hữu ích.


4

Là một tùy chọn giết hoàn toàn, nhưng một tùy chọn hoạt động trong thời gian thực, bạn có thể sử dụng inotify:

sudo inotifywait -m -r /

Lưu ý rằng điều này sẽ tiêu tốn rất nhiều bộ nhớ và mất nhiều thời gian để thiết lập. Như trang này nói:

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

Điều này cũng không cho bạn biết quá trình nào đang gây rối với các tệp, nhưng nó có thể giúp xác định các thay đổi khi chúng xảy ra. Sử dụng "-e open" có thể giúp giảm một số tiếng ồn trên hệ thống thực sự bận rộn.


Tôi khá chắc chắn rằng điều này sẽ không hoạt động, có hoặc không đặt giới hạn cao hơn cho inotify / max_user_watches trước đó. Bạn đang cố gắng thêm đồng hồ vào từng tệp trên hệ thống ...
Volker Siegel
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.