आप सिस्टम कॉल को ट्रेस कर सकते हैं strace
, लेकिन वास्तव में एक अपरिहार्य गति दंड है। strace
यदि कमांड उन्नत विशेषाधिकार के साथ चलता है, तो आपको रूट के रूप में चलाने की आवश्यकता है :
sudo strace -f -o foo.trace su user -c 'mycommand'
एक और तरीका जो तेजी से होने की संभावना है, एक पुस्तकालय को लोड करने के लिए है जो फाइलसिस्टम एक्सेस फ़ंक्शन के आसपास लपेटता है LD_PRELOAD=/path/to/libmywrapper.so mycommand
:। LD_PRELOAD
वातावरण चर ऊंचा विशेषाधिकारों के साथ लागू किया कार्यक्रमों के लिए पारित नहीं किया जाएगा। आपको उस रैपर लाइब्रेरी का कोड लिखना होगा ( यहाँ "मज़े और लाभ के लिए बिल्डिंग लाइब्रेरी इंटरपोज़र्स से एक उदाहरण" ); मुझे नहीं पता कि वेब पर पुन: प्रयोज्य कोड उपलब्ध है या नहीं।
यदि आप किसी विशेष निर्देशिका पदानुक्रम में फ़ाइलों की निगरानी कर रहे हैं, तो आप लॉग्सएफएस के साथ फाइलसिस्टम का एक दृश्य बना सकते हैं जैसे कि उस दृश्य के माध्यम से सभी प्रवेश लॉग होते हैं।
loggedfs -c my-loggedfs.xml /logged-view
mycommand /logged-view/somedir
LogFS को कॉन्फ़िगर करने के लिए, प्रोग्राम के साथ भेजे गए नमूना कॉन्फ़िगरेशन के साथ शुरू करें और LogFS कॉन्फ़िगरेशन फ़ाइल सिंटैक्स पढ़ें ।
एक और संभावना है लिनक्स का ऑडिट सबसिस्टम । सुनिश्चित करें कि auditd
डेमॉन शुरू हो गया है, फिर जो आप लॉग इन करना चाहते हैं उसे कॉन्फ़िगर करें auditctl
। प्रत्येक लॉग ऑपरेशन को /var/log/audit/audit.log
(विशिष्ट वितरण पर) दर्ज किया गया है । किसी विशेष फ़ाइल को देखना शुरू करने के लिए:
auditctl -a exit,always -w /path/to/file
यदि आप किसी निर्देशिका पर नजर रखते हैं, तो उसमें मौजूद फाइलें और उसके उपनिर्देशिका पुनरावर्ती रूप से भी देखे जाते हैं। ध्यान रखें कि ऑडिट लॉग वाली डायरेक्टरी को न देखें। आप लॉगिंग को कुछ प्रक्रियाओं तक सीमित कर सकते हैं, auditctl
उपलब्ध फ़िल्टर के लिए मैन पेज देखें । ऑडिट सिस्टम का उपयोग करने के लिए आपको रूट होना चाहिए।
strace
, मुझे लगता है कि आप विशेष रूप से लिनक्स में रुचि रखते हैं। सही बात?