लिनक्स में फ़ाइल ऑडिट: विलोपन के लिए डायरेक्टरी ट्री कैसे देखें?


9

मेरे पास सर्वर पर चलने वाली एक फोरम स्क्रिप्ट है और किसी तरह कम संख्या में अटैचमेंट खो जाने लगते हैं। मैं यह पता लगाना चाहता हूं कि उन्हें क्या और किस समय हटाना है। निर्देशिका ट्री को देखने के लिए मैं लिनक्स ऑडिट (ऑडिटेकल) को कैसे सेटअप कर सकता हूं (वहां फ़ाइल विलोपन देखने के लिए मल्टी-लेवल डायरेक्टरी ट्री के अंदर अटैचमेंट संग्रहीत हैं)?

क्या मुझे इसके लिए कुछ अन्य टूल का उपयोग करना चाहिए?

जवाबों:


8

यह एक उत्तर है जो मैंने पिछले प्रश्न के लिए लिखा था:

आम तौर पर अगर आप यह जानना चाहते हैं कि एक प्रक्रिया / उपयोगकर्ता / फ़ाइल इसके बिना lsof को चलाने के लिए क्या कर रही है तो 24/7 आप ऑडिटेकल का उपयोग करते हैं।

मान लें कि आपके पास हाल-ईश कर्नेल ऑडिट नियंत्रण एक सरल ऑपरेशन होना चाहिए। (यह डेबियन-फू में है, यदि आप उपयुक्त रूप में Red Hat अनुवाद चला रहे हैं)

# apt-get install auditd

सुनिश्चित करें कि इसकी रनिंग (/etc/init.d/auditd स्थिति)।

auditctl -a entry,always -F arch=b64 -S open -F pid=<process id>

यदि आप 32-बिट आर्च चला रहे हैं तो b64 को b64 से बदलें, खुले को किसी भी सिस्टम कॉल या 'ऑल' शब्द से बदला जा सकता है

अधिक के लिए ऑडिटेकल मैनपेज पढ़ें।

आप इस पद्धति का उपयोग कर सकते हैं और इसे 'अनलिंक' सिस्टम कॉल के लिए देखने के लिए कह सकते हैं।

-W पैरामीटर फाइलों / निर्देशिकाओं को देखने के लिए उपयोगी है, लेकिन जैसा कि मैन पेज बताता है कि कैविएट हैं।

पथ पर फ़ाइल सिस्टम ऑब्जेक्ट के लिए एक घड़ी डालें। आप शीर्ष स्तर की निर्देशिका में घड़ी नहीं डाल सकते। यह कर्नेल द्वारा निषिद्ध है। वाइल्डकार्ड या तो समर्थित नहीं हैं और एक चेतावनी उत्पन्न करेंगे। जिस तरह से काम देखता है वह आंतरिक रूप से इनकोड को ट्रैक करने से है। इसका मतलब यह है कि यदि आप एक निर्देशिका पर नजर रखते हैं, तो आप देखेंगे कि क्या फ़ाइल ईवेंट दिखाई देता है, लेकिन यह वास्तव में केवल मेटा डेटा का अद्यतन है। ऐसा करने से आप कुछ घटनाओं को याद कर सकते हैं। यदि आपको एक निर्देशिका में सभी फ़ाइलों को देखने की आवश्यकता है, तो इसकी सिफारिश प्रत्येक फ़ाइल पर एक व्यक्तिगत घड़ी लगाने की है। Syscall ऑडिटिंग नियमों के विपरीत, घड़ियां कर्नेल को भेजे गए नियमों की संख्या के आधार पर प्रदर्शन को प्रभावित नहीं करती हैं।


मैं नहीं कर सकता :( मेरे पास सीजीआई मोड में पीएचपी चल रहा है। यह हमेशा एक नई प्रक्रिया है। इसके अलावा, मैं एक भी प्रक्रिया नहीं देखना चाहता हूं, लेकिन परिवर्तन के लिए फ़ाइल सिस्टम का एक विशेष हिस्सा देख सकता
हूं

हां, संपादन देखें, मैंने बनाया है, फाइलसिस्टम निर्देशिकाओं को देखने के लिए पैरामीटर हैं, लेकिन कैविट्स या फाइलों के साथ।
आरोन टेट

लगभग 1000 फ़ोल्डर और लगभग 50k फाइलें हैं। तो यह भी काम नहीं करने वाला है ... :(
व्लादिस्लाव रैस्ट्रोसनी

आम तौर पर जब तक आपको कैविट्स के बारे में पता चलता है, तब तक आपको बस आगे बढ़ने में सक्षम होना चाहिए और वॉच को शीर्ष स्तर की निर्देशिका पर रखना चाहिए जिसमें वे फ़ोल्डर हैं जिन्हें आप देखना चाहते हैं।
हारून टेट

मुझे एक ही काम करने की जरूरत है (डिलीट के लिए एक फोल्डर देखें ताकि मैं पीआईडी ​​/ प्रक्रिया नाम जो उसने किया था) पा सकता हूं, लेकिन यह काम नहीं करता है (कम से कम 3.x कर्नेल पर)। यदि मैं "ऑडिटैक्टल-एन एंट्री, हमेशा -F आर्क = b64 -S अनलिंक -w / पाथ / टू / डाइर" को डिलीट करने के लिए ट्रैक करता हूं तो मुझे "वॉच ऑप्शन syscall के साथ नहीं दिया जा सकता"। किसी को कोई विचार मिला?
IBBoard


0

विचारों की एक जोड़ी। आप यह straceदेखने के लिए उपयोग कर सकते हैं कि आपका एप्लिकेशन क्या कर रहा है, लेकिन यह लॉग का लॉग जनरेट कर सकता है और सिस्टम को धीमा कर सकता है।

एक और विचार का उपयोग करना है inotifywait, फिर lsof/fuserफ़ाइल पर यह देखने के लिए कि इसका उपयोग क्या है। आप इस स्क्रिप्ट को उच्च प्राथमिकता पर (यदि आप कर सकते हैं) जानकारी को यथासंभव सटीक रूप से चलाने का प्रयास कर सकते हैं। यह संभवतः unlinkकॉल को पकड़ नहीं पाएगा , क्योंकि ईवेंट के डिलीवर होने से पहले फाइल चली जाएगी।


मैं नहीं कर सकता। मुझे नहीं पता कि कौन सी प्रक्रिया स्ट्रेस को चलाने के लिए है क्योंकि मुझे कुछ समय के बाद हटाई गई फ़ाइलें मिल जाती हैं। inotifywait भी काम नहीं करेगा क्योंकि PHP CGI के रूप में चल रहा है और वहाँ से बाहर कई ID के साथ कई PHP प्रक्रियाएँ हैं।
व्लादिस्लाव रास्ट्रुसनी

inotify का उपयोग फाइलसिस्टम को मॉनिटर करने के लिए किया जाता है, न कि रनिंग प्रोसेस के लिए। स्ट्रेस के लिए, आपको -fबच्चों के अनुसरण के लिए, ध्वज के साथ मास्टर पेरेंट प्रक्रिया का पता लगाना होगा ।
दान एंड्रीटा

0

जबकि फेनिक्स की लेखा परीक्षा की सिफारिश आदर्श लगती है, आपको एआईडी सहायक के रूप में एक फाइलसिस्टम आईडीएस मिल सकता है । दुर्भाग्यवश, जो आप अलग करने का प्रयास कर रहे हैं, उसके लिए यह ठीक-ठीक होने की संभावना नहीं है।

मैं अक्सर समस्याओं के समाधान के लिए स्क्रिप्ट लिखता हूँ जैसे कि आप क्या वर्णन करते हैं। यदि आप अनुशंसित किए गए समाधानों के साथ जो चाहते हैं उसे पूरा नहीं कर सकते हैं, तो स्वयं कुछ लिखें। यह अक्सर बहुत जटिल नहीं होता है।


ऐसा लगता है, यह केवल फ़ाइल परिवर्तनों का पता लगाने के लिए है। रियल टाइम मॉनिटरिंग के लिए नहीं।
व्लादिस्लाव रास्ट्रुसनी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.