ฉันต้องการดูไฟล์ที่อ่านหรือเขียน
มีโปรแกรมหรือคำสั่งสำหรับสิ่งนั้นหรือไม่? ฉันจำได้ว่าฉันใช้วิธีนี้เพื่อค้นหาไวรัสและมัลแวร์ที่ซ่อนตัวอยู่ในสถานที่ต่าง ๆ เมื่อฉันใช้ windows สองสามปีหลัง
ฉันต้องการดูไฟล์ที่อ่านหรือเขียน
มีโปรแกรมหรือคำสั่งสำหรับสิ่งนั้นหรือไม่? ฉันจำได้ว่าฉันใช้วิธีนี้เพื่อค้นหาไวรัสและมัลแวร์ที่ซ่อนตัวอยู่ในสถานที่ต่าง ๆ เมื่อฉันใช้ windows สองสามปีหลัง
คำตอบ:
โปรแกรมที่( "รายการเปิดไฟล์")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
) นอกจากนี้หากคุณต้องการค้นหาไฟล์และไดเรกทอรีใด ๆมาตรฐานระบบไฟล์ของลีนุกซ์จะเป็นประโยชน์อย่างมาก
ในฐานะที่เป็นตัวเลือก 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" อาจช่วยลดเสียงรบกวนบางส่วนในระบบที่ยุ่งมาก