क्यों के रूप में रूट में प्रवेश करने के बजाय रूट करने के लिए र?


33

मैंने अक्सर सुना है कि रूट यूजर के रूप में सीधे लॉग इन करने के बजाय र पर मुकदमा करना बेहतर है (और निश्चित रूप से लोग यह भी कहते हैं कि सुडोल का उपयोग करना भी बेहतर है)। मैं वास्तव में कभी नहीं समझ पाया कि एक दूसरे से बेहतर क्यों है, अंतर्दृष्टि?


2
क्या आप ssh logins या भौतिक मशीन से भी logins के बारे में सोच रहे हैं?
टेलीमैचस

जवाबों:


43

आक्षेप केवल suया sudoजब आवश्यक हो।

अधिकांश रोज़मर्रा के कार्यों के लिए एक रूट शेल की आवश्यकता नहीं होती है। अतः आपके डिफ़ॉल्ट व्यवहार के रूप में एक अनपेक्षित खोल का उपयोग करना अच्छा है और तब केवल विशेष कार्यों को करने की आवश्यकता होने पर जड़ तक बढ़ जाता है।

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

sudo अक्सर सिफारिश की जाती है क्योंकि यह आपको ठीक अनाज और ऐसे विशेषाधिकारों के उपयोग की अनुमति देता है।

इन प्रथाओं का अवलोकन करके आप दूरस्थ रूट लॉगिन को निष्क्रिय करने की स्थिति में हैं। यह किसी भी-हमलावर के लिए प्रवेश की बार बढ़ाता है, क्योंकि उन्हें दोनों नियमित उपयोगकर्ता खाते से समझौता करने की आवश्यकता होगी जो "पहिया" समूह का सदस्य था और आदर्श रूप से केवल SSH सार्वजनिक कुंजी द्वारा अधिकृत था, फिर रूट खाता ही।


1
क्या आप बता सकते हैं कि रिमोट रूट लॉगिन एक "बहुत बड़ी भेद्यता है।"
Thepocketwade

5
क्योंकि यह देखते हुए कि पूरी दुनिया यूज़रनेम ('रूट') को जानती है, यह सिर्फ पासवर्ड पता लगाने का सवाल है। और वे कर सकते हैं कि जानवर बल से और अपने कंप्यूटर पर ले लो।
शालोम क्रेमर

2
सुडो का एक और लाभ: निष्पादित कमांड का लॉगिंग।
मैनुअल फॉक्स

यह ऑडिटिंग है;)
डैन कार्ले जूल 28'09

1
जबकि sudoबेहतर है, suआपको -mरूट टर्मिनल में पर्यावरण चर रखने के लिए ध्वज का उपयोग करने की अनुमति भी देता है । कुछ भी नहीं मुझे और अधिक bonkers ड्राइव suकरने के लिए एक बिट के लिए, केवल ~निर्देशिका नाम के साथ कुछ करने के लिए और यह काम नहीं किया है।
tj111

27

आपको रिमोट एक्सेस से रूट एक्सेस को अक्षम करना चाहिए ताकि कोई हमलावर पहले उपयोगकर्ता से समझौता किए बिना रूट से समझौता न कर सके। हम केवल कंसोल पर रूट एक्सेस को सक्षम करते हैं।

साथ ही यह जवाबदेही पैदा करता है। :)


+1 छोटा और इस बिंदु पर
lexu

15

मुख्य कारण ऑडिट ट्रेल बनाना है। यदि आपको एक नियमित उपयोगकर्ता के रूप में एक सिस्टम में प्रवेश करने की आवश्यकता है और फिर su, यह ट्रेस करना संभव है कि दिए गए कार्यों के लिए कौन जिम्मेदार है।


किसी के द्वारा su - रूट चलाने के बाद, आप कैसे निर्धारित करते हैं कि वे किस कमांड को चलाते हैं? क्या यह कहीं लॉग इन किया गया है?
डोबेस वांडरमियर

10

sudo भी स्वचालित रूप से हर कमांड को syslog में लॉग करता है और आप प्रत्येक उपयोगकर्ता के उपयोगकर्ता को कमांड को परिभाषित कर सकते हैं।


3
लॉगिंग के लिए: 'सूडो' द्वारा पूर्ववर्ती प्रत्येक कमांड के लिए यह मामला है, लेकिन उस मामले में जहां sudo का उपयोग एक रूट शेल को ऊपर उठाने के लिए किया जाता है, कमांड केवल पारंपरिक क्षेत्रों (विशेष रूप से शेल इतिहास) में लॉग किए जाते हैं।

2
वास्तव में, sudo vim foo.txtफिर वीम के भीतर से एक शेल को छोड़ दें आपको नियमित सूडो लॉगिंग के बिना एक रूट शेल देगा।
ओफिडियन

या सिर्फ sudo -iएक संवादात्मक सत्र प्राप्त करने के लिए ...
कामिल किसियल

मैं sudo vim foo.txt के साथ समस्या को नहीं समझता। मैं भाग गया, फिर वीम से बाहर निकल गया और अभी भी खुद था, क्या मुझे कुछ याद आ रहा है?
Thepocketwade

आप sudo su - या sudo vim लिखकर आपको एक शेल देने के लिए "ट्रिक" सुडो कर सकते हैं और फिर एक नए सबस्क्रिप्शन में जा सकते हैं। लेकिन अगर आप sudo का उपयोग करते हैं क्योंकि आप सब कुछ syslog (केंद्रीकृत) में लॉग इन करना चाहते हैं और आप जानते हैं कि इसका उपयोग एक और सबस्क्रिप्शन प्राप्त करने के लिए भी किया जा सकता है तो मुझे इसमें कुछ भी गलत नहीं दिखता है, यह केवल एक बोनस है जब तक कि मैं केवल इस पर निर्भर नहीं हूं
जुरे १। .३

9

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


4

यदि आप एक ऑडिट ट्रेल बनाना चाहते हैं, और "सुडो सु -" या "सुदो विम foo.txt" समस्याओं का शिकार नहीं होना चाहते हैं, तो आप यहाँ पर "सूदोश" का उपयोग कर सकते हैं। Sudo के माध्यम से रूट एक्सेस को सौंपें, लेकिन "sudosh" को चलाने के लिए एकमात्र स्वीकार्य कमांड बनाएं।

sudosh एक लॉगिंग शेल है, और आप पूरे टर्मिनल सत्र को बाद की तारीख में फिर से दिखा सकते हैं, यह दिखाते हुए कि उपयोगकर्ता ने अपने टर्मिनल पर क्या देखा था।


यह मानकर चल रहा है कि सिस्टम पर सुध उपलब्ध है। मैंने अभी-अभी जाँच की है और मेरे पास इसके किसी भी लिनक्स बॉक्स पर नहीं है।
जॉन गार्डनियर्स

आप ऑडिट ट्रेल लॉगिंग सक्षम के साथ नई ksh93 का भी उपयोग कर सकते हैं। IBM डेवलपर Works
Mei

केवल एक शेल स्क्रिप्ट को चलाकर बाईपास करना बहुत आसान है (जिसे आप बाद में मिटा देंगे)। एक गैर-ऑडिट किए गए उपयोगकर्ता के रूप में एक सहज नाम के तहत स्क्रिप्ट बनाएं (या अपने वर्कस्टेशन से इसे स्कैप करें), फिर सूडो और इसे चलाएं। आप वास्तव में इसे 'ls' या somesuch के नाम से भी छिपा सकते हैं और इसे $ PATH में डाल सकते हैं (यदि आवश्यक हो तो $ PATH को बदलकर), और इसे / बिन / ls को लागू करते समय अपना गंदा काम करते हैं ताकि यह सामान्य दिखे। बाद में इसे पोंछ लें। ऑडिट लॉग को पता नहीं चलेगा कि घर / एंथोनी / बिन में एक 'एलएस' होता था।
व्युत्पन्न

हाँ, यह सही नहीं है; हम यह जानते हैं - लेकिन यह सादे "सुडो सु -" IMHO की तुलना में बेहतर है। और हाँ, यह AFAIK कहीं भी डिफ़ॉल्ट रूप से स्थापित नहीं है। हालांकि यह सोलारिस और लिनक्स पर काफी आसानी से चलता है।
mibus

1

आपको गहराई से सुरक्षा का अभ्यास करना चाहिए।

दूरस्थ रूट एक्सेस (या पासवर्ड के माध्यम से कम से कम रूट एक्सेस) को अस्वीकार करें। (यदि आप कुंजियों के माध्यम से रूट एक्सेस की अनुमति देते हैं, तो सावधानीपूर्वक उन कुंजियों को नियंत्रित करें, या बेहतर अभी तक केबरोस जैसी किसी चीज़ का उपयोग करें जो कुंजी के केंद्रीकृत निरस्तीकरण की अनुमति देता है)।

मैं su को अक्षम कर दूंगा और sudo का उपयोग करूंगा। इस तरह, उपयोगकर्ता सिस्टम का उपयोग करने के लिए कुंजियों (अधिमानतः एन्क्रिप्टेड) ​​का उपयोग करते हैं फिर वे केवल विशेषाधिकार बढ़ाने के लिए अपने पासवर्ड का उपयोग करते हैं। आप सूडो के साथ किन कार्यक्रमों में लोगों को एक्सेस कर सकते हैं, लेकिन ज्यादातर आप रूट पासवर्ड को जानने वाले लोगों तक पहुंच को सीमित कर सकते हैं।

एक आदर्श दुनिया में, आपको इंटरनेट पर अपने रूट पासवर्ड प्रकाशित करने में सक्षम होना चाहिए और इससे कोई फर्क नहीं पड़ेगा, भले ही आपने लोगों को अपनी मशीन तक पहुंच दी हो (लेकिन / / / sudoers फ़ाइल में उन्हें नहीं डाला था)। बेशक, आपको रूट पासवर्ड प्रकाशित नहीं करना चाहिए , लेकिन विचार यह है कि आप सुरक्षा की केंद्रित परतों के साथ अपने सिस्टम की रक्षा करते हैं।


0

रूट लॉगिन को निष्क्रिय करने का विचार है, और इसलिए डिफ़ॉल्ट व्यवस्थापक खाता नहीं है। इस तरह एक हमलावर को उपयोगकर्ता नाम और पासवर्ड (और न केवल पासवर्ड) दोनों का अनुमान लगाना चाहिए।


0

यदि आप नियमित रूप से रूट का उपयोग कर रहे हैं, तो आपकी अनुमतियां गलत हो सकती हैं या आपको फ़ाइलों या निर्देशिकाओं को r / w / x करने के लिए sudo अधिकार या एक नया समूह अधिकार देने की आवश्यकता हो सकती है।

अच्छी अनुमतियाँ योजनाएँ कुछ समय के लिए भी होती हैं, जब लिनक्स उपयोगकर्ता गलत हो जाते हैं, या उन्हें उस दायरे का एहसास नहीं होता है।

क्या मुझे भी उबंटू ने शुरू नहीं किया!


-2

यह आपको rm -r -f / चलाने से रोकता है / मैं सिर्फ 2 दिन पहले भागा था (एक अनपेक्षित उपयोगकर्ता के रूप में, मेरा मतलब rm -r -f * चलाना है)


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