ค้นหาไฟล์ที่อ่านหรือเขียน


14

ฉันต้องการดูไฟล์ที่อ่านหรือเขียน

มีโปรแกรมหรือคำสั่งสำหรับสิ่งนั้นหรือไม่? ฉันจำได้ว่าฉันใช้วิธีนี้เพื่อค้นหาไวรัสและมัลแวร์ที่ซ่อนตัวอยู่ในสถานที่ต่าง ๆ เมื่อฉันใช้ windows สองสามปีหลัง

คำตอบ:


16

โปรแกรมที่( "รายการเปิดไฟล์")lsof

  • หากคุณเพิ่งเปิดเทอร์มินัลและพิมพ์lsofคุณจะได้รับรายการไฟล์ที่เปิดทั้งหมดจำนวนมาก แต่ จำกัด ไว้ที่คำสั่งเดียวโดยทำดังนี้

    lsof -c gnome-terminal
    
  • คุณสามารถ จำกัด การค้นหาของคุณไปยังไดเรกทอรีที่ต้องการโดยพิมพ์

    lsof -c gnome-terminal -a +D /tmp
    
  • หรือแสดงรายการไฟล์ที่เปิดอยู่ทั้งหมดในไดเรกทอรีเดียวรวมถึงแอปพลิเคชันที่เปิดขึ้นมา:

    lsof /dev/urandom
    

โปรดจำไว้ว่ากระบวนการบางอย่างเริ่มต้นโดยรูท superuser คุณอาจต้องใส่sudoคำสั่งด้านหน้าเพื่อรับข้อมูลเพิ่มเติมเกี่ยวกับไฟล์ที่เปิดของกระบวนการดังกล่าว

หากต้องการ จำกัด การค้นหาให้แคบลงคุณสามารถgrepระบุบรรทัดเช่น:

lsof /dev/urandom | grep chrome

  • FD(ไฟล์อธิบาย) คอลัมน์ของการส่งออกให้ข้อมูลเกี่ยวกับวัตถุประสงค์ของโครงการเปิดไฟล์ (ไม่จำเป็นต้องเป็นสิ่งที่เกิดขึ้นกับมันในขณะนี้) นี้:

    • r หมายถึงไฟล์ถูกเปิดอ่าน

    • w หมายความว่าไฟล์ถูกเปิดสำหรับการเขียน

    • u หมายความว่าไฟล์ถูกเปิดสำหรับทั้งการอ่านและการเขียน


สำหรับรายละเอียดเพิ่มเติมโปรดดูหน้าคู่มือ ( man lsof) นอกจากนี้หากคุณต้องการค้นหาไฟล์และไดเรกทอรีใด ๆมาตรฐานระบบไฟล์ของลีนุกซ์จะเป็นประโยชน์อย่างมาก


6

ในฐานะที่เป็นตัวเลือก over-kill ที่สมบูรณ์ แต่ตัวเลือกที่ทำงานได้ตามเวลาจริงคุณสามารถใช้ inotify:

sudo inotifywait -m -r /

โปรดทราบว่าสิ่งนี้จะใช้หน่วยความจำจำนวนมากและใช้เวลานานในการตั้งค่า ดังที่ 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.

สิ่งนี้ไม่ได้บอกคุณว่ากระบวนการใดที่ทำกับไฟล์ แต่อาจช่วยระบุการเปลี่ยนแปลงเมื่อเกิดขึ้น การใช้ "-e open" อาจช่วยลดเสียงรบกวนบางส่วนในระบบที่ยุ่งมาก


ฉันค่อนข้างแน่ใจว่าสิ่งนี้จะไม่ทำงานหากมีหรือไม่มีการตั้งค่าขีด จำกัด ที่สูงขึ้นสำหรับ inotify / max_user_watches ก่อน คุณกำลังพยายามที่จะเพิ่มการเฝ้าดูไปยังไฟล์ทุกไฟล์ในระบบ ...
Volker Siegel
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.