प्रत्येक नई प्रक्रिया पीआईडी ​​को आउटपुट करने के लिए लिनक्स कमांड


2

क्या एक लिनक्स कमांड है जो नई प्रक्रियाओं के लिए देखेगा?

इसमें मेरा लक्ष्य मैं यह देखना चाहता हूं कि कब कोई नया हो gulp कमांड कहा जाता है, कमांड लाइन को कुछ इस तरह निष्पादित करें ps, फिर इसका उपयोग करके फ़िल्टर करें sed

महत्वपूर्ण प्रक्रिया नई प्रक्रियाओं को देखना है, क्योंकि मैं एक पीआईडी ​​नहीं देख सकता हूं क्योंकि यह समाप्त हो गया है।

जवाबों:


4

आप उपयोग कर सकते हैं auditd आपके सिस्टम पर चलने वाले कमांड को लॉग करने के लिए सबसिस्टम। यह कर्नेल में झुका हुआ है, इसलिए इसे निष्पादित होने वाली हर चीज को लॉग करना बहुत विश्वसनीय है

मेरे उदाहरण फेडोरा लिनक्स पर हैं, आपको अपने डिस्ट्रो के आधार पर छोटे अंतर मिल सकते हैं। ( auditd सबसिस्टम काफी जटिल है, इसलिए यह अधिकार प्राप्त करना मुश्किल हो सकता है।)

पहले जाँच लें कि आपके पास पहले से ऑडिट स्थापित है और चल रहा है, साथ:

$ systemctl status auditd.service

फिर आप जांच सकते हैं कि कौन से नियम लोड किए गए हैं। डिफ़ॉल्ट रूप से, फेडोरा पर, आपको मिलता है:

$ sudo auditctl -l
-a never,task

इसलिए हमें इस "कार्य" सूची (जो कि syscalls को दबाता है) को हटाने और लॉग को "निष्पादित" (जो syscall कमांड को निष्पादित करता है) को जोड़ने की आवश्यकता है।

$ sudo auditctl -d never,task
$ sudo auditctl -a always,exit -F arch=b64 -S execve

एक बार ऐसा करने के बाद, सभी कमांड ऑडिट सिस्टम में लॉग इन हो जाएंगे।

तब आप इसे खोज सकते हैं, का उपयोग करके ausearch आदेश। उदाहरण के लिए, "gulp" कॉल करने वाले सभी निष्पादन को खोजने के लिए, आप इसका उपयोग कर सकते हैं:

$ sudo ausearch -c gulp

आउटपुट काफी वर्बोज़ होगा ... टाइप = EXECVE लाइन पर ध्यान दें। तर्कों को सूचीबद्ध किया जाएगा a0="gulp" a1="first_argument" a2="second_argument" ...

यदि आप एक उद्धृत स्ट्रिंग के बजाय संख्याओं का एक लंबा अनुक्रम प्राप्त करते हैं, तो उपयोग करें -i इसकी व्याख्या करने के लिए।

आपके सिस्टम पर चलने वाले प्रत्येक कमांड को लॉग करना बहुत महंगा हो सकता है और बहुत सारे डिस्कस्पेस का उपयोग कर सकता है! यह संभव है कि यह प्रदर्शन को भी प्रभावित करता है। यदि आप इन परिवर्तनों को पूर्ववत करना चाहते हैं, तो आप इस आदेश के साथ नियमों के डिफ़ॉल्ट सेट को पुनः लोड कर सकते हैं:

$ sudo augenrules --load

आप लॉगिंग नियम के लिए एक फ़िल्टर भी लगा सकते हैं, उदाहरण के लिए / usr / bin / gulp का केवल लॉग एक्जीक्यूटिव:

$ sudo auditctl -a always,exit -F arch=b64 -F exe=/usr/bin/gulp -S execve

तो, शायद यह ओवरकिल है ... लेकिन यह उतना ही विश्वसनीय है जितना यह हो जाता है। मुझे आशा है कि आप अपना रास्ता खोज सकते हैं auditd सबसिस्टम और यह आपको वह जानकारी देता है जिसकी आपको तलाश है!

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