คุณสามารถติดตามการโทรของระบบstrace
ได้ แต่แน่นอนว่าจะมีการปรับความเร็วที่หลีกเลี่ยงไม่ได้ คุณต้องเรียกใช้strace
เป็นรูทหากคำสั่งรันด้วยสิทธิ์ระดับสูง:
sudo strace -f -o foo.trace su user -c 'mycommand'
อีกวิธีที่น่าจะเร็วกว่าคือโหลดไลบรารีที่ล้อมรอบฟังก์ชันการเข้าถึงระบบไฟล์LD_PRELOAD=/path/to/libmywrapper.so mycommand
ไว้ล่วงหน้า LD_PRELOAD
ตัวแปรสภาพแวดล้อมจะไม่ถูกส่งผ่านไปยังโปรแกรมเรียกด้วยการยกระดับสิทธิ์ คุณต้องเขียนโค้ดไลบรารีของ wrapper นั้น ( นี่คือตัวอย่างจาก“ การสร้างตัวคั่นของไลบรารีเพื่อความสนุกและผลกำไร” ) ฉันไม่รู้ว่ามีรหัสที่ใช้ซ้ำได้บนเว็บหรือไม่
หากคุณกำลังตรวจสอบไฟล์ในลำดับชั้นไดเรกทอรีเฉพาะคุณสามารถสร้างมุมมองของระบบไฟล์ด้วยLoggedFSเพื่อให้การเข้าถึงทั้งหมดผ่านมุมมองนั้นถูกบันทึก
loggedfs -c my-loggedfs.xml /logged-view
mycommand /logged-view/somedir
การกำหนดค่า LoggedFS เริ่มต้นด้วยการกำหนดค่าตัวอย่างที่ให้มาพร้อมกับโปรแกรมและอ่านLoggedFS ไวยากรณ์แฟ้มการกำหนดค่า
เป็นไปได้ก็คือลินุกซ์ระบบย่อยการตรวจสอบ ตรวจสอบให้แน่ใจภูตจะเริ่มต้นจากนั้นกำหนดสิ่งที่คุณต้องการเข้าสู่ระบบด้วยauditd
auditctl
การดำเนินการที่บันทึกไว้แต่ละครั้งจะถูกบันทึกเป็น/var/log/audit/audit.log
(ในการแจกแจงทั่วไป) วิธีเริ่มดูไฟล์โดยเฉพาะ:
auditctl -a exit,always -w /path/to/file
หากคุณวางการเฝ้าดูในไดเรกทอรีไฟล์ในนั้นและไดเรกทอรีย่อยจะถูกเรียกซ้ำด้วยเช่นกัน ระวังอย่าดูไดเรกทอรีที่มีบันทึกการตรวจสอบ คุณสามารถ จำกัด การเข้าสู่กระบวนการบางอย่างดูauditctl
หน้า man สำหรับตัวกรองที่มี คุณต้องเป็นรูทเพื่อใช้ระบบการตรวจสอบ
strace
คุณฉันถือว่าคุณสนใจ Linux เป็นพิเศษ แก้ไข?