जब आप सभी रूट प्रक्रियाओं को मारते हैं तो सर्वर पर इसका क्या प्रभाव पड़ता है?


9

वहाँ अन्य देवों को रूट के रूप में लॉग इन किया गया था जिन्हें मैं बाहर निकालना चाहता था।

इसलिए मैंने जारी किया

pkill -KILL -u root

तब मुझे एहसास हुआ कि मैंने संभवतः सभी प्रकार की जड़ प्रक्रियाओं को मार दिया है।

क्या मैंने अपने सिस्टम को नुकसान पहुंचाया है? मैं अब SSH के माध्यम से नहीं पहुँच सकता।

अद्यतन: वेब सर्वर अभी भी चल रहा है। लेकिन मैं अब SSH द्वारा कनेक्ट नहीं कर सकता। मुझे नहीं पता कि मैंने क्या किया है।


1
आपको लगभग निश्चित रूप से इसे रिबूट करने की आवश्यकता है। यदि आप कर सकते हैं, तो प्लग को खींचने के बजाय इसे एसीपीआई शटडाउन सिग्नल भेजें।
स्काईवॉक

1
Iain, IME यह पूरी तरह सच नहीं है। उन्हें रूट के रूप में शुरू करना है, विशेषाधिकार प्राप्त बंदरगाहों से बांधना है, लेकिन फिर विशेषाधिकार अलग करने के लिए जो भी गैर-निजी उपयोगकर्ता कॉन्फ़िगर किया गया है, उसके स्वामित्व वाली प्रक्रियाओं का एक पूरा गुच्छा तैयार करें। हालांकि, अपाचे के मामले में, अभी भी एक ही रूट-स्वामित्व वाली प्रक्रिया है, जो इस सब के शीर्ष पर बैठी है। लेकिन मैं आपके साथ सहमत हूं कि वास्तविक वेब सेवारत सभी प्रक्रियाएं जड़-स्वामित्व वाली नहीं हैं।
MadHatter

5
गलतियाँ सीखना सबसे अच्छा तरीका है । कृपया किसी को बुरा बनाने की वजह से केवल इसलिए न उतारा करें। यह सवाल विवादास्पद है लेकिन इसे बंद नहीं किया जाना चाहिए। इसके बजाय मैं आपको सवाल के पीछे और गहराई से पढ़ने और समझाने की चुनौती देता हूं: जब मैं सभी रूट प्रक्रियाओं को मारता हूं तो क्या होता है? क्यों मेजबान अभी भी जीवित है? SSHD अनुरोधों को पूरा क्यों नहीं कर सकता, लेकिन वेबसर्वर कर सकता है? यह कैसे संभव है कि वेबसर्वर बिल्कुल जीवित है? हम इन प्रकार के प्रश्नों का एक अच्छा विहित जवाब नहीं देते हैं। जवाब यूनिक्स कैसे काम करता है के बारे में मूल्यवान स्पष्टीकरण प्रदान कर सकता है।
स्टीफन लासिवस्की

2
अपने सिर और अपने दिल का उपयोग करने के लिए स्टीफन को धन्यवाद दें और अनिवार्य रूप से डाउनवोट बटन पर क्लिक न करें जैसे कि कई अन्य करते हैं। यदि कोई भी कभी भी स्टेकटेक्चेंज साइट्स पर अपनी गलतियों के बारे में सवाल नहीं करता है, तो उसे डाउनवॉट होने के डर से, तो NO ONE उनसे सीख लेगा। मैं अपने प्रश्न के साथ लोगों की मदद कर रहा हूं, और इसके लिए दंडित नहीं किया जाना चाहिए।
बुटिक बटुकस

1
मैंने सवाल को वोट दिया क्योंकि यह हंसी के लिए अच्छा था, कोई अपराध नहीं। यह टेक्सटिंग करते समय किसी के छेद में गिरने का वीडियो देखने जैसा है।
UnAAlby

जवाबों:


15

एक त्वरित उत्तर यह है कि आपने sshd को मार दिया (और स्वामी जानते हैं कि और क्या है) और SSH का उपयोग करके सिस्टम में वापस लॉग इन करने में असमर्थ होंगे। जब तक आपके पास सिस्टम तक पहुंच प्राप्त करने की कोई अन्य विधि (जैसे रिमोट कंसोल, IPMI, आदि) है, आपको सिस्टम को रिबूट करने की आवश्यकता होगी जो एसएसएच सेवा और अन्य सेवाओं को पुनर्स्थापित करेगा।

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


लंबा जवाब:

यह एक महान विचार प्रयोग और एक अच्छी नौकरी के लिए साक्षात्कार प्रश्न है। "यदि आपने एक्स किया तो क्या होता है ..." यह एक मजेदार बात है कि आप अपनी निजी वर्चुअल मशीन पर कोशिश कर सकते हैं, लेकिन कभी भी वास्तविक बॉक्स पर नहीं होनी चाहिए। गलतियां सबसे होती हैं। याद रखें और अपनी गलती से सीखें। गलतियाँ सीखना सबसे अच्छा तरीका है। उत्पादन पर गलतियाँ करना एक दर्दनाक सबक है जो आपके करियर में कभी-कभार ही होगा।

pkill -KILL -U रूट

यह आदेश kill -9रूट के स्वामित्व वाली सभी प्रक्रियाओं के लिए एक 'SIGKILL' (जैसे । KILL SIGKILL के लिए एक उपनाम) भेजेगा। एक सिस्टम पर करना बहुत बुरी बात है। kill -9अंतिम उपाय के रूप में छोड़कर बचना चाहिए।

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

$ pgrep -u root -l
$ ps aux | grep root

आपने Init (PID # 1) को मार दिया होगा जो नई प्रक्रियाओं को जन्म देता है। आपका सिस्टम नई प्रक्रियाएँ बनाने में असमर्थ हो सकता है। इसलिए, यह अभी के लिए कार्य करना जारी रख सकता है लेकिन बीमार है और इसे जल्द से जल्द ठीक करने की आवश्यकता है। जैसे-जैसे समय आगे बढ़ेगा, सिस्टम और अधिक बीमार हो जाएगा। आप जितना लंबा इंतजार करेंगे, वह उतना ही खराब होता जाएगा।

अद्यतन: वेब सर्वर अभी भी चल रहा है। लेकिन मैं अब SSH द्वारा कनेक्ट नहीं कर सकता। मुझे नहीं पता कि मैंने क्या किया है।

मैं अनुमान लगा रहा हूं कि आप अपाचे का उपयोग कर रहे हैं। ऐसा प्रतीत होता है कि वेबसर्वर की बाल प्रक्रियाएं अभी भी चल रही हैं क्योंकि वे उपयोगकर्ता 'रूट' के स्वामित्व में नहीं हैं। हालाँकि, मूल वेबसर्वर प्रक्रिया सामान्य रूप से रूट की होती है और आपने इसे मार दिया है। नतीजतन, नई बच्चे की प्रक्रिया नहीं होगी। यह एक समय के लिए ठीक रहेगा, क्योंकि आपके पास अनुरोधों को पूरा करने के लिए संभवतया पर्याप्त बाल प्रक्रियाएं हैं, और आम तौर पर उन बच्चों की प्रक्रिया तब तक बनी रहेगी जब तक वे मारे नहीं जाते या वे दुर्घटनाग्रस्त हो जाते हैं। फिर से, सबसे तेज फिक्स मशीन को रिबूट करना है।


मेरी शारीरिक पहुंच नहीं है, लेकिन मैं कुछ पता लगाऊंगा। मुझे यह देखकर सुखद आश्चर्य हुआ कि अपाचे अभी भी काम कर रहे हैं। तो मशीन बिना रूट के ठीक कर रही है। PS यदि आपने प्रश्न को अस्वीकार कर दिया है, तो मैंने शीर्षक में सुधार किया है।
बुटिक बटुकस

1
@ButtleButkus मैंने सवाल को कम नहीं किया। मैंने सवाल का जवाब देना शुरू कर दिया, और फिर इस बात में काफी दिलचस्पी पैदा की कि चीजें किस तरह से काम करती हैं।
स्टीफन लासिवस्की

1
स्टीफन, आपके उत्तर के लिए धन्यवाद। यह एक उत्तर है जिसे मैंने शुरू से ही उकेरा था, क्योंकि यह समझ में आया। मुझे लगभग 10 मिनट के भीतर सिस्टम रिबूट हो गया और सब कुछ तब से शानदार काम कर रहा है।
बुटिक बटुकस

4

आप सबसे अधिक संभावना अपने सिस्टम को पुनः आरंभ करने की करेंगे क्योंकि आपने इस पर प्रत्येक महत्वपूर्ण सेवा को बहुत मार दिया है। आप ऐसा कैसे करते हैं, यह इस बात पर निर्भर करता है कि आपके पास कौन से उपकरण हैं या आपको डेटा सेंटर में क्या परिवहन करना है।


ऐसा लगता नहीं है कि मैंने वास्तव में सभी महत्वपूर्ण प्रक्रियाओं को मार दिया है। अन्यथा, वेबसर्वर अभी भी पूर्ण वेबपृष्ठों की सेवा क्यों कर रहा है?
बुटिक बटुकस

@ButtleButkus: आपका वेब सर्वर रूट के रूप में नहीं चल रहा होगा।
user9517

@lain यदि एक भी "महत्वपूर्ण" सेवा को मार दिया गया था, तो मुझे लगता है कि इससे पूरा सर्वर डाउन हो जाएगा। ऐसा लगता है कि कमांड ने वास्तव में एक भी महत्वपूर्ण सेवा को नहीं मारा है। इसने एक सुविधाजनक सेवा को मार दिया, हालांकि: sshd।
ब्यूटिक बुटकस

2
सिर्फ इसलिए कि एक महत्वपूर्ण सेवा को मार दिया गया है, इसका मतलब यह नहीं है कि मशीन तुरंत नीचे चली जाएगी। मैं उदाहरण के लिए अपने फैन कंट्रोल डेमॉन क्रिटिकल पर विचार करूंगा - जब सीपीयू का उपयोग बढ़ता है, तो मैं चाहता हूं कि प्रशंसक अधिक स्पिन करे। मैं सेवा को मार सकता था और दिनों के लिए कम सीपीयू का उपयोग कर सकता था, फिर अचानक 1000 लोग मेरी साइट तक पहुंचते हैं और मेरे सीपीयू में आग लग जाती है। और नुकसान करने के कई और भी कम ध्यान देने योग्य तरीके हैं ...
अनहैमर

3

सिस्टम चल रहा है क्योंकि कर्नेल चल रहा है। आप sshd तक नहीं पहुँच सकते क्योंकि आपने डेमॉन को मार दिया है। संभवतः init को भी समाप्त कर दिया गया है, जिसका अर्थ है कि आप नई प्रक्रियाएँ नहीं बना सकते। इसलिए, नए एपाचे कनेक्शन स्थापित नहीं हो सकते हैं (कॉन्फ़िगरेशन पैरामीटर लागू;)।

आप कर्नेल थ्रेड्स के लिए एक संकेत नहीं भेज सकते हैं, यही कारण है कि सिस्टम चल रहा है लेकिन रूट स्वामित्व वाली सेवाओं को समाप्त कर दिया गया है और एक सामान्य पुनरुत्थान के लिए, आपको इसे रिबूट करना चाहिए।


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