
سجل الملفات التي يتم الوصول إليها بواسطة أي عملية لينكس.
whatfiles هي أداة لينكس تسجل الملفات التي يقرأها/يكتبها/ينشئها/يحذفها برنامج آخر على نظامك. كما تتعقب أي عمليات أو خيوط جديدة يتم إنشاؤها بواسطة العملية المستهدفة.
لطالما شعرت بالإحباط لعدم وجود أداة بسيطة لرؤية الملفات التي تلمسها عملية من main() إلى الخروج. سواء كنت لا تثق في بائع برامج أو كنت قلقًا بشأن البرامج الضارة، فمن المهم أن تكون قادرًا على معرفة ما يفعله برنامج أو مثبت لنظامك. يقوم lsof بمراقبة لحظة زمنية فقط و strace كبير ومعقد إلى حد ما.
mode: read, file: /home/theron/.gimp-2.8/tool-options/gimp-clone-tool, syscall: openat(), PID: 8566, process: gimp
mode: read, file: /home/theron/.gimp-2.8/tool-options/gimp-heal-tool, syscall: openat(), PID: 8566, process: gimp
mode: read, file: /home/theron/.gimp-2.8/tool-options/gimp-perspective-clone-tool, syscall: openat(), PID: 8566, process: gimp
mode: read, file: /home/theron/.gimp-2.8/tool-options/gimp-convolve-tool, syscall: openat(), PID: 8566, process: gimp
mode: read, file: /home/theron/.gimp-2.8/tool-options/gimp-smudge-tool, syscall: openat(), PID: 8566, process: gimp
mode: read, file: /home/theron/.gimp-2.8/tool-options/gimp-dodge-burn-tool, syscall: openat(), PID: 8566, process: gimp
mode: read, file: /home/theron/.gimp-2.8/tool-options/gimp-desaturate-tool, syscall: openat(), PID: 8566, process: gimp
mode: read, file: /home/theron/.gimp-2.8/plug-ins, syscall: openat(), PID: 8566, process: gimp
mode: read, file: /usr/lib/gimp/2.0/plug-ins, syscall: openat(), PID: 8566, process: gimp
mode: read, file: /home/theron/.gimp-2.8/pluginrc, syscall: openat(), PID: 8566, process: gimp
mode: read, file: /usr/share/locale/en_US/LC_MESSAGES/gimp20-std-plug-ins.mo, syscall: openat(), PID: 8566, process: gimp
mode: read, file: /usr/lib/gimp/2.0/plug-ins/script-fu, syscall: openat(), PID: 8566, process: gimp
mode: read, file: /etc/ld.so.cache, syscall: openat(), PID: 8574, process: /usr/lib/gimp/2.0/plug-ins/script-fu
mode: read, file: /etc/ld.so.cache, syscall: openat(), PID: 8574, process: /usr/lib/gimp/2.0/plug-ins/script-fu
mode: read, file: /usr/lib/libgimpui-2.0.so.0, syscall: openat(), PID: 8574, process: /usr/lib/gimp/2.0/plug-ins/script-fu
mode: read, file: /usr/lib/libgimpwidgets-2.0.so.0, syscall: openat(), PID: 8574, process: /usr/lib/gimp/2.0/plug-ins/script-fu
mode: read, file: /usr/lib/libgimpwidgets-2.0.so.0, syscall: openat(), PID: 8574, process: /usr/lib/gimp/2.0/plug-ins/script-fu
mode: read, file: /usr/lib/libgimp-2.0.so.0, syscall: openat(), PID: 8574, process: /usr/lib/gimp/2.0/plug-ins/script-fu
mode: read, file: /usr/lib/libgimpcolor-2.0.so.0, syscall: openat(), PID: 8574, process: /usr/lib/gimp/2.0/plug-ins/script-fu
الاستخدام الأساسي، يشغّل ls ويكتب الإخراج إلى ملف سجل في الدليل الحالي:
$ whatfiles ls -lah ~/Documents
تحديد موقع ملف الإخراج باستخدام -o:
$ whatfiles -o MyLogFile cd ..
تضمين إخراج التصحيح، الطباعة إلى stdout بدلاً من ملف السجل:
$ whatfiles -d -s apt install zoom
الإرفاق بعملية قيد التشغيل حالياً (يتطلب صلاحيات الجذر):
$ sudo whatfiles -p 1234
الملفات الثنائية الجاهزة للاستخدام موجودة على صفحة الإصدارات! قام أحدهم أيضًا بإضافتها بلطف إلى مستودع Arch، وقام letompouce بإعداد خط أنابيب GitLab أيضًا.
gcc و make):$ cd whatfiles
$ make
$ sudo make install
يدعم معماريات x86 و x86_64 و ARM32 و ARM64.
أليست هذه مجرد إعادة تنفيذ لـ strace -fe trace=creat,open,openat,unlink,unlinkat ./program؟
نعم. لكنها تهدف إلى أن تكون أبسط وأكثر سهولة في الاستخدام.
هل هناك إصدارات لماك وويندوز؟
لا. تتبع استدعاءات النظام على ماك يتطلب task_for_pid()، والذي يتطلب توقيع الشفرة، وهو ما لم أستطع جعله يعمل، وعلى أي حال لا يوجد لدي اهتمام بدفع 100 دولار لشركة آبل سنويًا لكتابة برامج مجانية. يمكن استخدام dtruss على ماك لتتبع عملية واحدة وأطفالها، على الرغم من أن العلم -t يبدو أنه يقبل استدعاء نظام واحد فقط للتصفية عليه. يقوم fs_usage بشيء مشابه لكنني لست متأكدًا إذا كان يتتبع العمليات/الخيوط الفرعية. Process Monitor لويندوز رائع جدًا.
whatfiles لتشغيل Firefox. (الإرفاق باستخدام -p [PID] أثناء تشغيله يعمل بشكل جيد، وكذلك استخدام whatfiles لتشغيل نافذة فايرفوكس ثانية إذا كانت واحدة مفتوحة بالفعل.)شكراً لاهتمامكم، ويُرجى أيضاً الاطلاع على Cloaker و Nestur و Flying Carpet!