रूट के रूप में लॉग इन करना क्यों बुरा है?


192

मैं अक्सर मंचों या अन्य वेबसाइटों पर पोस्टों पर आया हूं, जहां आप लोगों को इस तरह से मजाक करते हुए देखते हैं कि वे चल रहे हैं / रूट के रूप में लॉगिंग कर रहे हैं जैसे कि यह कुछ भयानक है और हर किसी को इसके बारे में जानना चाहिए। हालाँकि, ऐसा नहीं है कि इस मामले पर कोई खुलासा हो।

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

वास्तव में कुछ डिस्ट्रोस हैं जिनकी जड़ के उपयोगकर्ता के लिए वॉलपेपर (SuSe) के रूप में सतर्क संकेतों के साथ एक उज्ज्वल लाल पृष्ठभूमि है। मैं अभी भी अपने विंडोज इंस्टॉलेशन पर नियमित उपयोग के लिए "प्रशासक" खाते का उपयोग करता हूं और कभी भी किसी भी समस्या में नहीं चला हूं।


15
मुझे लगता है कि प्रोग्राम को रूट के रूप में चलाने में कोई समस्या नहीं है। इसके बस, अगर आप linux में ज्यादा समझदार नहीं हैं, तो आप अपने OS के कोर (यहां तक ​​कि sudoers भी ऐसा कर सकते हैं) को नुकसान पहुंचा सकते हैं। इसके अलावा मुझे कोई समस्या नहीं है। लेकिन यह सिर्फ मेरी बात है।
गौरव बुटोला

1
संबंधित प्रश्न यहाँ
लोवॉर्ग

रूट मोड में आने की कठिनाई डिस्ट्रोस के बीच भिन्न होती है। मैं व्यक्तिगत रूप से इस बात से नाराज हूं कि फेडोरा आपको बॉक्स से बाहर 'सूडो' की अनुमति कैसे नहीं देता है। OpenSUSE और Ubunto में पहले से कॉन्फ़िगर किए गए sudo हैं, हालांकि ... और इसलिए यदि आप सही डिस्ट्रो चुनते हैं, तो आप फ़ाइलों तक पहुंच प्राप्त करने में सक्षम नहीं होने पर अपनी झुंझलाहट को कम कर सकते हैं।
djangofan

4
@ गौरवबूटोला भले ही आप एक विशेषज्ञ हैं, फिर भी किसी एप्लिकेशन द्वारा समझौता किए जाने की स्थिति में यह एक बुरा विचार है।
strugee

2
@DaboRoss ओपी टिप्पणी करता है कि वह प्रशासक के रूप में विंडोज़ में काम करता है; उस OS में मेरे (छोटे) अनुभव के लिए, यह मुझे लगता है कि यह उबंटू की तरह है: यह इस अर्थ में एक विशेषाधिकार प्राप्त खाता है कि आप जो चाहें कर सकते हैं, लेकिन यह नए सॉफ़्टवेयर को स्थापित करने से पहले उदाहरण के लिए अनुमति मांगता है । तो शायद उबंटू में अनुवादित खिड़कियों में उपयोगकर्ता "व्यवस्थापक" का उपयोग करने के बराबर होगा, मुख्य उपयोगकर्ता को सुडो कॉन्फ़िगर के साथ चलाना होगा ताकि यह पास न पूछें --- सीधे रूट के रूप में चलाना बहुत अधिक खतरनाक है।
रमनो

जवाबों:


154

यह सुरक्षा मॉडल को पराजित करता है जो वर्षों से जारी है। अनुप्रयोगों को गैर-प्रशासनिक सुरक्षा (या मात्र नश्वर के रूप में) के साथ चलाने के लिए है, इसलिए आपको अंतर्निहित सिस्टम को संशोधित करने के लिए उनके विशेषाधिकारों को बढ़ाना होगा। उदाहरण के लिए, आप नहीं चाहेंगे कि रिदमबॉक्स की हाल की दुर्घटना /usrबग के कारण आपकी पूरी निर्देशिका को मिटा दे । या वह भेद्यता जो अभी हाल ही में PROFTPD में पोस्ट की गई थी ताकि हमलावर को ROOT शेल हासिल करने की अनुमति दी जा सके।

किसी भी ऑपरेटिंग सिस्टम पर उपयोगकर्ता स्तर पर अपने एप्लिकेशन चलाने और रूट उपयोगकर्ता के लिए प्रशासनिक कार्यों को छोड़ने के लिए, और केवल प्रति-आवश्यकता के आधार पर यह अच्छा अभ्यास है।


5
... और यह आपको आपदाओं में तुच्छ त्रुटियों को बदलने से बचाता है। मैं 1990 से यूनिक्स उपयोगकर्ता / rm -rf tmp/tests/*
प्रशंसा

9
1.) ज्यादातर लोग अपने घर निर्देशिका को रूट डायरियों से अधिक महत्वपूर्ण मानेंगे, क्योंकि पूर्व को फिर से स्थापित नहीं किया जा सकता है। इसलिए मैं आपकी बात नहीं देखता। 2.) सुरक्षा के संदर्भ में, आप सही हैं। लेकिन खिड़कियों से आना (जहां चारों ओर WAY अधिक मालवेयर है), जहां मैंने कभी (चूंकि कई करते हैं) व्यवस्थापक खाते का उपयोग किया है, मेरे पास इस वास्तविक खतरे को देखते हुए एक कठिन समय है। मैं अभी भी टाइप करने के लिए आलसी sudoहूं और लिनक्स में हर दूसरे कमांड के लिए मेरा पासवर्ड। लिनक्स उपयोगकर्ताओं को आलसी नहीं माना जाता है ?????
ब्लोहर्न

असहमत -_-: ~: |
Edgy1

@LazyPower आपके उत्तर को संपादित करने के लिए धन्यवाद, लेकिन अब मैं इसे नहीं समझता। मेरे निजी उबंटू ~ फ़ोल्डर को संशोधित करने के लिए, कार्यक्रमों को sudo अधिकारों की आवश्यकता नहीं है। रिदमबॉक्स मेरे पूरे $ घर / संगीत निर्देशिका को मिटा सकता है ! और वह सब मुझे परवाह है! यह रूट अनुमतियों से संबंधित कैसे है?
ब्लोहिन

1
यह @Blauhirn एक अच्छा कॉल है। मैंने अभी-अभी अनुवर्ती संपादन में यह दर्शाने के लिए भेजा कि हम इसे / usr की संपूर्णता को नष्ट नहीं करना चाहते हैं। अपने $ HOME फ़ोल्डरों की सुरक्षा के मामले में, एक अच्छा बैकअप जैसा कुछ भी आपकी मदद नहीं कर सकता है। मुझे नहीं लगता कि यह विशेष परिदृश्य सुरक्षा से संबंधित होगा जितना अच्छा अभ्यास। कॉलआउट के लिए फिर से धन्यवाद।
lazyPower

79

बस एक शब्द: सुरक्षा।

  1. आप रूट के रूप में लॉग इन हैं = सभी एप्लिकेशन रूट विशेषाधिकार के साथ चल रहे हैं - फ़ायरफ़ॉक्स, फ्लैश, ओपनऑफ़िस आदि में प्रत्येक भेद्यता अब आपके सिस्टम को नष्ट कर सकती है, क्योंकि संभव वायरस अब हर जगह पहुंच रखते हैं। हां, उबंटू / लिनक्स के लिए केवल कुछ ही वायरस हैं, लेकिन यह अच्छी सुरक्षा और डिफ़ॉल्ट अप्रकाशित उपयोगकर्ता के कारण भी है।
  2. यह केवल वायरस के बारे में नहीं है - एक आवेदन में छोटे बग कुछ सिस्टम फ़ाइलों को मिटा सकते हैं या ...
  3. जब आप रूट के रूप में लॉग इन करते हैं, तो आप सब कुछ कर सकते हैं - सिस्टम नहीं पूछेगा! क्या आप इस डिस्क को प्रारूपित करना चाहते हैं? ठीक है, बस एक क्लिक करें और यह हो गया है, क्योंकि आप जड़ हैं और आप जानते हैं कि आप क्या कर रहे हैं ...

16
डेटा फ़ाइलें, जो सभी मेरे उपयोगकर्ता खाते के स्वामित्व में हैं, सिस्टम फ़ाइलों की तुलना में मेरे लिए बहुत अधिक मूल्यवान हैं। उपयोगकर्ता के रूप में लॉग इन करने पर आपके उपरोक्त सभी उदाहरण अभी भी समस्याएँ हैं, सिवाय इसके कि आसानी से बदली जाने वाली सिस्टम फ़ाइलों को सुरक्षित रखा जाए।
kbeta

5
@kbeta आप मान रहे हैं कि आप एक ऐसे कंप्यूटर पर चल रहे हैं, जहाँ एकमात्र क़ीमती वस्तुएं आपके डेटा और सिस्टम फ़ाइल हैं। हकीकत में linux का इस्तेमाल अक्सर ऐसे सिस्टम में किया जाता है जहां एक साथ कई यूजर्स एक सिस्टम का इस्तेमाल करते हैं। इस मामले में सिस्टम की स्थिरता (और इसलिए सिस्टम फाइलें) अधिक मूल्यवान है और अन्य उपयोगकर्ता फाइलें भी महत्वपूर्ण हैं।
एरिक पौली

2
@kbeta फेयर पर्याप्त है, लेकिन एक क्षतिग्रस्त सिस्टम कॉन्फ़िगरेशन आपके डेटा के लिए एक जोखिम भी पैदा कर सकता है ... और निश्चित रूप से बैकअप होने का एक अच्छा विचार होगा कि आपका सिस्टम वर्तमान में जोखिम में है या नहीं। एक आपदा वसूली योजना के साथ वर्तमान बैकअप काम करना बेहतर होगा।
बजे

47

रूट के रूप में रनिंग खराब है क्योंकि:

  1. मूर्खता: कुछ भी आपको बेवकूफ बनाने से रोकता है। यदि आप किसी भी तरह से सिस्टम को बदलने की कोशिश करते हैं, तो आपको नुकसानदेह हो सकता है कि आपको sudo करने की ज़रूरत है, जो कि आपके लिए पासवर्ड दर्ज करते समय आपको बहुत अधिक गारंटी देता है, ताकि आपको पता चल सके कि आप एक संभावित बड़ा / महंगा बदलाव करने वाले हैं।
  2. सुरक्षा: यह इस सवाल में पहले से ही कई बार उल्लेख किया गया है, लेकिन मूल रूप से यह एक ही बात है, अगर आपको व्यवस्थापक का लॉगिन खाता नहीं पता है तो हैक करना मुश्किल है। रूट का मतलब है कि आपके पास पहले से ही व्यवस्थापक क्रेडेंशियल्स के काम का आधा हिस्सा है।
  3. आपको वास्तव में इसकी आवश्यकता नहीं है: यदि आपको कई कमांड्स को रूट के रूप में चलाने की आवश्यकता है और आप कई बार अपना पासवर्ड दर्ज करने से नाराज होते हैं जब sudo की समय सीमा समाप्त हो जाती है, तो आपको केवल इतना करना होता है sudo -iऔर अब आप रूट हैं। पाइप का उपयोग करके कुछ कमांड चलाना चाहते हैं? फिर उपयोग करें sudo sh -c "comand1 | command2"
  4. आप इसे हमेशा रिकवरी कंसोल में उपयोग कर सकते हैं: रिकवरी कंसोल आपको कुछ बेवकूफ बनाने या एक ऐप के कारण होने वाली समस्या को ठीक करने की कोशिश करने और पुनर्प्राप्त करने की अनुमति देता है (जिसे आपको अभी भी sudo के रूप में चलाना था :)) Ubuntu में पासवर्ड नहीं है इस मामले में रूट खाते के लिए, लेकिन आप इसे बदलने के लिए ऑनलाइन खोज कर सकते हैं, इससे किसी के लिए भी यह कठिन हो जाएगा कि आपके बॉक्स तक भौतिक पहुंच है जो नुकसान कर सकता है।

कारण यह है कि आप क्यों खराब है के बारे में जानकारी नहीं मिल सका क्योंकि, ठीक है, वहाँ इंटरनेट में बहुत अधिक डेटा है :) और यह कि बहुत सारे लोग जो लंबे समय से लिनक्स का उपयोग कर रहे हैं, जैसे आप सोचते हैं। रूट खाते के बारे में सोचने का यह तरीका काफी नया है (शायद एक दशक?) और बहुत सारे लोग अभी भी सूडो का उपयोग करने से परेशान हैं। खासकर यदि वे एक सर्वर पर काम कर रहे हैं जिसका मतलब है कि वे सिस्टम में बदलाव करने के इरादे से गए थे। संभवतः पिछले बुरे अनुभवों और सुरक्षा मानकों से लाया गया है जो ज्यादातर sysadmins बेहतर जानते हैं, लेकिन वे अभी भी इसे पसंद नहीं करते हैं :)।


'एक दशक शायद?' जब आपने यह लिखा था तब भी इससे बहुत अधिक। सुदो के बिना भी सु का उल्लेख नहीं है उदाहरण के लिए पहिया समूह (उदाहरण के लिए)। विशेषाधिकार अलग करना हमेशा महत्वपूर्ण होता है और हमेशा महत्वपूर्ण रहा है और हमेशा महत्वपूर्ण रहेगा। ओटोह के रूप में कई लोगों ने यूनिक्स आधारित ओएस का उपयोग नहीं किया जो कि कई साल पहले थे और जो लोग करते हैं उनका उपयोग हमेशा एक प्रशासक होने के लिए किया जाता है।
.१

36

यह अच्छा प्रश्न है। मुझे लगता है कि आप सर्वर या डेस्कटॉप इंस्टॉलेशन के बारे में बात कर रहे हैं या नहीं इसके आधार पर उत्तर थोड़ा अलग है।

डेस्कटॉप पर, rootखाते का उपयोग करना असामान्य है । वास्तव में, रूट एक्सेस अक्षम के साथ उबंटू जहाज। सुपरसुसर विशेषाधिकारों की आवश्यकता वाले सभी परिवर्तनों को sudoइसके ग्राफिकल कॉग्नेट्स gksudoऔर के माध्यम से किया जाता है kdesudo। यह देखते हुए कि rootपासवर्ड सेट करना आसान है , हालांकि, लोग ऐसा क्यों नहीं करते हैं?

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

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

इसके अतिरिक्त, अधिकांश उपयोगकर्ता-फेसिंग (X11) एप्लिकेशन आज इस धारणा पर बने हैं कि वे एक नियमित उपयोगकर्ता खाते के रूप में और व्यवस्थापक अधिकारों के बिना चलाए जा रहे हैं। इस प्रकार जब कुछ प्रोग्राम गलत तरीके से चलाए जा सकते हैं root

केवल गैर-ग्राफ़िकल शेल एक्सेस के साथ एक बहु-उपयोगकर्ता प्रणाली पर, इनमें से कई कारण लागू नहीं होते हैं। हालांकि, उबंटू अभी भी एक दुर्गम rootखाते में यथोचित चूक करता है । एक बात के लिए, sudoएक सुरक्षा छेद के माध्यम से एक उपयोगकर्ता खाते ( अधिकारों के साथ ) तक पहुंच प्राप्त करने और उन तक पहुंच प्राप्त करने के बीच एक वास्तविक अंतर है root, जैसा कि पहले मामले में अन्य उपयोगकर्ताओं को बाधित करने के लिए चलने की आवश्यकता sudoहोगी और अभी भी खाता पासवर्ड के लिए एक के रूप में संकेत देगा। अतिरिक्त सुरक्षा कदम। दूसरे के लिए, उपयोगकर्ता खाते से कई प्रशासनिक कार्यों को करना उपयोगी होता है और केवल sudoतब लागू होता है जब सुपरसुसर विशेषाधिकारों की आवश्यकता होती है। इस प्रकार जब स्रोत से एक प्रोग्राम स्थापित करते हैं, तो स्रोत बनाने की सलाह दी जाती है - चल रहा है configureऔरmake- उपयोगकर्ता की निर्देशिका के अंदर और केवल sudo make installअंतिम चरण में उपयोग करना । फिर से अपने आप को (और बहु-उपयोगकर्ता प्रणाली के अन्य उपयोगकर्ताओं को) पैर में शूट करना अधिक कठिन हो जाता है, और इससे सिस्टम के साथ कहर बरपाती स्क्रिप्ट के निर्माण की संभावना कम हो जाती है। इस प्रकार एक सर्वर पर भी उबंटू के सूडो आधारित प्रशासन से चिपके रहना अच्छी सलाह है ।


2
he will still be able to boot the system, even if the data will be lost.- इसका क्या मतलब है? यदि मेरा डेटा खो गया है, तो मेरा डेटा खो गया है और यही वह है। हटाए जाने पर लिनक्स सिस्टम सॉफ्टवेयर को फिर से इंस्टॉल किया जा सकता है, मुझे ऐसे डेरीटरी में डेटा हानि की परवाह क्यों करनी चाहिए? दूसरी ओर, डेटा हानि में ~खराब है। और sudoउस से मेरी रक्षा नहीं करता है।
ब्लोहर्न

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

@ बलौनिर बैकअप। और अगर यह धूमिल दिखता है तो भी रिकवरी का मौका है।
प्रातः

34

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

अन्यथा, रूट के रूप में नहीं चलने के प्राथमिक कारण हैं:

  • दुर्घटनाओं से नुकसान का खतरा कम करें। यदि आप rm -fr / home/me/my-subdirरूट के रूप में चलाते हैं , तो आपने नाटकीय रूप से अपनी मशीन से महत्व की हर चीज को समाप्त कर दिया है क्योंकि उस स्थान के बाद (पहला) स्लैश है - क्योंकि जो सामान पहले जाता है वह सामान है जो पहले जोड़ा गया था - कर्नेल जैसी छोटी चीजें, /binऔर /etcनिर्देशिका। अगर आप हार जाते हैं तो यूनिक्स परेशान हो जाता है।

  • दुर्भावनापूर्ण बाहरी साइटों से नुकसान के जोखिम को कम करें। यदि आप ब्राउज़ करते हैं root, तो आप दुर्भावनापूर्ण सामग्री के डाउनलोड द्वारा ड्राइव करने के लिए अधिक असुरक्षित हैं।

मैं उबंटू की तुलना में मैकओएस एक्स का उपयोग करता हूं, लेकिन वहां, रूट डिफ़ॉल्ट रूप से अक्षम है, और यह अभी भी मेरी मशीन पर है। मैं नियमित रूप से कर्नेल और अन्य समान कार्यों को अपग्रेड करता हूं - sudoदृश्यों के पीछे ( उपयोग करके )। इसी तरह की तकनीक लिनक्स पर आम तौर पर लागू होती है।

मूल रूप से, आपको केवल rootगलतियों के जोखिम से बचने के लिए संक्षिप्त अवधि के लिए सभी शक्तिशाली विशेषाधिकारों का उपयोग करना चाहिए ।


1
यह किसी पर आरोप लगाने के बारे में नहीं है, यह इस बात का पता लगाने में सक्षम है कि किसी ने बदलाव क्यों किया।
जिप्पी

2
@ जिप्पी: मेरा मतलब है कि 'दोष' उसी तरह से है कि एक वीसीएस ट्रैक करता है जिसने ऐसा किया है कि सही व्यक्ति को परिवर्तन के लिए ज़िम्मेदारी के साथ जिम्मेदार ठहराया जाता है, अच्छे या बुरे के लिए, और कमांड के लिए नामों में से एक जो उस ट्रैकिंग को करता है 'दोष' है। यह आपको यह बताने के लिए बोलने के लिए एक व्यक्ति देता है कि कुछ क्यों हुआ। यह हमेशा 'दोष' नहीं होता है (हालांकि अक्सर निराशाजनक रूप से, जानने की आवश्यकता का कारण यह है क्योंकि कुछ अपेक्षा के अनुरूप काम नहीं कर रहा है और यह जानने की आवश्यकता है कि क्यों नहीं)। इसलिए, यह उस व्यक्ति के लिए जवाबदेही और ट्रैक करने की बजाय जरूरी है जो उन्होंने किया था।
जोनाथन लेफ़लर

उबंटू पर, कमांड्स rm -fr / home/me/my-subdirवास्तव में पुनरावर्ती रूप से हटाने का प्रयास नहीं करते हैं /, क्योंकि /ऐसी गलतियों के खिलाफ विशेष रूप से गार्ड करने के लिए व्यवहार किया जाता है। विवरण के लिए --preserve-rootऔर --no-preserve-rootविकल्पों का दस्तावेज़ीकरण man rmदेखें। लेकिन सिद्धांत आवाज़ है: एकल चरित्र लेखन करते में है कि परिणाम मौजूद rmसब कुछ हटा रहा है। उदाहरण के लिए, यदि आप चालू निर्देशिका में सब कुछ हटाने का मतलब है rm -r *, लेकिन आप गलती /से पहले डाल दिया है *, तो यह बुरा होगा।
एलियाह कगन

@EliahKagan लेकिन फिर भी अगर आप ऐसा कर रहे थे ... chown -R nobody:nobody ../कहना / आदि से यह आपकी रक्षा करेगा? यदि आप ऐसा करते / करते हैं तो इससे आपको चोट लगने वाली दुनिया हो जाएगी। इसी तरह .*जब पुनरावर्ती कमांड चला रहा हो।
बजे

21

TL; DR: चीजों को रूट के रूप में तभी करें जब आपको करना है। sudoयह बहुत आसान बनाता है। यदि आप रूट लॉगिन को सक्षम करते हैं, तो आप अभी भी इस नियम का पालन कर सकते हैं, आपको बस ऐसा करने के लिए सावधान रहना होगा। हालांकि रूट लॉगिन को सक्षम करना वास्तव में असुरक्षित नहीं है यदि सही किया गया है, तो आपको रूट लॉगिन को सक्षम करने की आवश्यकता नहीं है क्योंकि आपके पास है sudo

यहाँ वास्तव में दो संबंधित प्रश्न हैं।

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

हर समय सब कुछ जड़ के रूप में क्यों नहीं चलाया जाता?

अधिकांश अन्य उत्तर इसे कवर करते हैं। यह नीचे आता है:

  1. यदि आप उन कार्यों के लिए मूल शक्तियों का उपयोग करते हैं जिनकी उन्हें आवश्यकता नहीं है, और आप कुछ ऐसा करना चाहते हैं जो आप करना नहीं चाहते थे, तो आप अपने सिस्टम को उस तरह से बदल सकते हैं या नुकसान पहुंचा सकते हैं जो आप नहीं चाहते हैं।
  2. यदि आप किसी प्रोग्राम को रूट के रूप में चलाते हैं जब आपको इसकी आवश्यकता नहीं थी, और यह कुछ ऐसा करने के लिए समाप्त होता है जिसका आप इसके लिए मतलब नहीं था - उदाहरण के लिए, सुरक्षा भेद्यता या अन्य बग के कारण - यह बदल सकता है या नुकसान पहुंचा सकता है आपका सिस्टम एक तरह से जिसे आप नहीं चाहते हैं।

यह सच है कि चीजों को जड़ के रूप में किए बिना भी आप नुकसान पहुंचा सकते हैं। उदाहरण के लिए, आप अपने स्वयं के होम डायरेक्टरी में सभी फाइलों को हटा सकते हैं, जिसमें आमतौर पर रूट के बिना आपके सभी दस्तावेज शामिल होते हैं! (उम्मीद है कि आपके पास बैकअप है।)

बेशक, जड़ के रूप में, गलती से उन समान डेटा को नष्ट करने के अतिरिक्त तरीके हैं। उदाहरण के लिए, आप of=एक ddकमांड में गलत तर्क निर्दिष्ट कर सकते हैं और अपनी फ़ाइलों पर कच्चा डेटा लिख ​​सकते हैं (जो उन्हें रास्ता बनाता है, ठीक करने के लिए कठिन तरीके से अगर आप केवल उन्हें हटा दिया है)।

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

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

इसे रूट के रूप में लॉग इन करना संभव क्यों नहीं है?

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

  • उदाहरण के लिए, OpenBSD , जिसे व्यापक रूप से और यथोचित रूप से दुनिया में सबसे सुरक्षित सामान्य-उद्देश्य वाला ओएस माना जाता है, स्थानीय, पासवर्ड-आधारित लॉगिन के लिए सक्षम रूट खाते वाले जहाज।
  • अन्य अच्छी तरह से सम्मानित OSes जो ऐसा करते हैं , उनमें RHEL , CentOS और Fedora शामिल हैं
  • डेबियन (जिससे उबंटू व्युत्पन्न होता है ) उपयोगकर्ता को तय करता है कि सिस्टम इंस्टॉलेशन के दौरान कौन सा दृष्टिकोण कॉन्फ़िगर किया जाएगा।

यह मूल रूप से गलत नहीं है कि ऐसी प्रणाली हो जहाँ रूट खाता सक्षम हो, बशर्ते कि

  1. आप अभी भी केवल इसका उपयोग करते हैं जब आपको वास्तव में आवश्यकता होती है, और
  2. आप इसे उचित रूप से एक्सेस तक सीमित रखते हैं।

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

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

संक्षेप में, आपको रूट लॉगिन को सक्षम करने की आवश्यकता नहीं है क्योंकि आपके पास है sudo। लेकिन जब तक आप इसे केवल उन प्रशासनिक कार्यों के लिए उपयोग करते हैं जिनकी आवश्यकता होती है, तो इसे सक्षम करने और रूट के रूप में लॉग इन करने के लिए समान रूप से सुरक्षित है, जब तक कि यह केवल इन तरीकों से हो :

  • स्थानीय रूप से, गैर-ग्राफिकल वर्चुअल कंसोल से
  • suकमांड के साथ , जब दूसरे खाते से लॉग इन किया जाता है।

हालाँकि, यदि आप इन तरीकों से रूट पर लॉग इन करते हैं, तो पर्याप्त सुरक्षा जोखिम उत्पन्न होते हैं:

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

    इसके अलावा, इससे बचने के लिए एक गैर-सुरक्षा कारण है। रेखीय रूप से रूट के रूप में लॉगिंग अच्छी तरह से समर्थित नहीं है - लॉवबोर्ग उल्लेखों के रूप में , डेस्कटॉप वातावरण के डेवलपर्स और ग्राफिकल एप्लिकेशन अक्सर उन्हें रूट के रूप में परीक्षण नहीं करते हैं। यहां तक ​​कि अगर वे करते हैं, तो एक ग्राफिकल डेस्कटॉप वातावरण में लॉग इन करने पर रूट को उपयोगकर्ताओं द्वारा वास्तविक विश्व अल्फा और बीटा परीक्षण नहीं मिलता है, क्योंकि लगभग कोई भी इसे प्रयास नहीं करता है (ऊपर बताए गए सुरक्षा कारणों से)।

    यदि आपको रूट के रूप में एक विशिष्ट ग्राफ़िकल एप्लिकेशन चलाने की आवश्यकता है, तो आप उपयोग कर सकते हैंgksudo या कर सकते हैंsudo -H । यदि आप वास्तव में रूट खाते के साथ रेखांकन पर लॉग इन करते हैं तो यह रूट की तुलना में बहुत कम प्रोग्राम चलाता है।

  • दूर से। rootखाता प्रभाव में कुछ भी कर सकते हैं, और यह व्यावहारिक रूप से हर यूनिक्स की तरह सिस्टम पर एक ही नाम है। sshया अन्य दूरस्थ तंत्रों के माध्यम से रूट के रूप में लॉग इन करके , या यहां तक ​​कि रिमोट सेवाओं को कॉन्फ़िगर करने के लिए इसे अनुमति देने के लिए , आप घुसपैठियों के लिए बहुत आसान बनाते हैं, जिसमें स्वचालित स्क्रिप्ट और बॉटनेट पर चलने वाले मैलवेयर शामिल हैं, जानवर बल, शब्दकोश हमलों ( संभवतः) के माध्यम से पहुंच प्राप्त करने के लिए; कुछ सुरक्षा कीड़े)।

    यदि आप केवल कुंजी-आधारित और पासवर्ड-आधारित रूट लॉगिन की अनुमति देते हैं, तो जोखिम बहुत अधिक नहीं है ।

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

  • यदि आप उबंटू पर एक ssh सर्वर चलाते हैं और नहीं बदला है /etc/sshd/ssh_config, तो इसमें लाइन होगी PermitRootLogin without-password। यह पासवर्ड-आधारित रूट लॉगिन को अक्षम करता है, लेकिन कुंजी-आधारित लॉगिन की अनुमति देता है। हालाँकि, कोई भी कुंजी डिफ़ॉल्ट रूप से कॉन्फ़िगर नहीं की गई है, इसलिए जब तक आपने एक सेट नहीं किया है, वह भी काम नहीं करेगी। इसके अलावा, कुंजी-आधारित रिमोट रूट लॉगिन पासवर्ड-आधारित रिमोट रूट लॉगिन की तुलना में बहुत कम खराब है, क्योंकि यह क्रूर बल और शब्दकोश हमलों का खतरा पैदा नहीं करता है।
  • भले ही चूक चाहिए आप की रक्षा, मुझे लगता है कि यह अभी भी एक अच्छा विचार है, अपने ssh विन्यास की जाँच करने के आप रूट खाता सक्षम करने जा रहे हैं। और यदि आप ऐसी अन्य सेवाएँ चला रहे हैं जो दूरस्थ लॉगिन प्रदान करती हैं, जैसे कि ftp, तो आपको उन्हें भी जांचना चाहिए।

निष्कर्ष के तौर पर:

  • जब आपको ज़रूरत हो तभी सामान की तरह करें; sudoआपको ऐसा करने में मदद करता है, जबकि आप अभी भी जड़ की पूरी शक्ति दे रहे हैं।
  • यदि आप समझते हैं कि रूट कैसे काम करता है और इसके अत्यधिक उपयोग के खतरे हैं, तो रूट खाते को सक्षम करना सुरक्षा दृष्टिकोण से वास्तव में समस्याग्रस्त नहीं है।
  • लेकिन अगर आप समझते हैं कि, आप यह भी जानते हैं कि आपको रूट खाते को सक्षम करने की आवश्यकता नहीं है

रूट के बारे में अधिक जानकारी के लिए और sudoइसके कुछ अतिरिक्त लाभों सहित, sudoजिन्हें मैंने यहां शामिल नहीं किया है, मैं उबंटू सहायता विकी में रूटसूड की अत्यधिक अनुशंसा करता हूं


'यदि आप अपने कंप्यूटर का उपयोग करने वाले एकमात्र व्यक्ति हैं, तो आप जो नुकसान कर सकते हैं, वह केवल रूट के रूप में हो सकता है जो वास्तव में आपके नियमित उपयोगकर्ता विशेषाधिकारों के साथ किए गए नुकसान से अधिक नहीं हो सकता है। लेकिन यह अभी भी आपके जोखिम का विस्तार करने का कोई कारण नहीं है 'इसका उल्लेख नहीं करना आपको इसकी आदत में डालता है ... तो आप किसी अन्य सिस्टम पर जाते हैं और क्या होता है? rm -iशेल उर्फ ​​के माध्यम से लोगों को बनाने की बेतुकी सोच के साथ ही उपयोग किया जाता है । आप एक ऐसी प्रणाली पर जाते हैं जिसमें वह नहीं है और फिर क्या है इस तरह की गलतियों से एक उपयोगकर्ता बैठे बच्चे को एक अच्छा विचार नहीं है जब आप मानते हैं कि मनुष्य आदत के बहुत अधिक जीव हैं।
20

13

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

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

इस पेज को भी देखें


उम। कोई अपराध नहीं है लेकिन आप प्रश्न का शीर्षक पढ़ना चाहते हैं और फिर से विवरण पढ़ सकते हैं।
मुसनून

3
यह अत्यंत उपयोगी है - और यह है प्रश्न से संबंधित हैं। यह खाते को सक्षम करने के सुरक्षा निहितार्थ से संबंधित है, जड़ के रूप में चलने की एक शर्त।
Stefano Palazzo

1
@ स्तेफ़ानो पलाज़ो: जबकि प्रदान की गई जानकारी उपयोगी हो सकती है, मैं ईमानदारी से यह नहीं देख सकता कि मुझे क्या जानना चाहिए, इसका क्या हिस्सा है। मैंने इसे कई बार पढ़ा है।
मुसनून

लोगों को रूट में लॉग इन करने में सक्षम होने से नहीं रोकता है।
चाड

12

इसकी तरह एक AK47 के साथ एक छोटा बच्चा पैदा होता है, जबकि वह खुशी से अपनी पेंटबॉल बंदूक के साथ खेल सकता है। ;)

मैं अपने गलत मतलब क्योंकि आप और आपके अनुप्रयोगों अधिक विशेषाधिकार होगा तो वे की जरूरत है और वह यह है कि जब चीजें कर सकते हैं और कभी कभी होगा बिगड़ जाए :(


5
एक और अधिक चालाक सादृश्य (^_^)।
kit.yang

2
यह पूरी तरह से अनुचित उपमा है। एके 47 वाला बच्चा खुद को और अन्य लोगों को मार सकता है। रूट एक्सेस के साथ एक यूनिक्स-उपयोगकर्ता अपने सिस्टम को अस्थायी रूप से निष्क्रिय कर सकता है। (एक हमेशा ओएस को पुनः स्थापित कर सकता है और ऑपरेशन को पुनर्प्राप्त कर सकता है)।
kbeta

@ बबेटा आप सही कह रहे हैं, मेरा सादृश्य अनुपात से थोड़ा बाहर है और अतिरंजित है। कृपया आगे बढ़ें।
'10

@ बक्सा उपमा उपयुक्त है। जोखिम एक निष्क्रिय प्रणाली नहीं है, लेकिन डेटा और गोपनीयता की हानि है। रूट उपयोगकर्ता डेटा को हटा सकता है। हत्या और डेटा हानि को संबद्ध करने के लिए कृपया अपने फ़ैंटसी का उपयोग करें।
n611x007

11

बहुत अच्छा सवाल ... मुझे व्यावहारिक दृष्टिकोण से इसका उत्तर दें:

जब मैंने लिनक्स का उपयोग करना शुरू किया, जो कि 10 साल से अधिक समय से है, तो प्रमुख वितरणों ने गैर-रूट खातों का उपयोग करते हुए आज के रूप में ज्यादा विज्ञापन नहीं दिया। जैसा कि मुझे विंडोज के लिए इस्तेमाल किया गया था, मुझे एक विवश उपयोगकर्ता खाते का उपयोग करने में एक बिंदु भी नहीं दिखाई दिया। विशेष रूप से क्योंकि मुझे "सु" में बहुत बार प्रवेश करना था - सूदो तब लोकप्रिय नहीं था। ;-) इसलिए मैंने हमेशा रूट के रूप में लॉग इन किया क्योंकि मेरे सिस्टम को अच्छी तरह से कॉन्फ़िगर करने के लिए मेरे पास बहुत सारे रखरखाव थे। लेकिन लगता है क्या, किसी भी ताजा स्थापित प्रणाली जल्दी से अस्थिर हो गया।

उदाहरण के लिए एक ठोस समस्या: मैंने इतना हार्डडिस्क स्पेस लिनक्स के लिए आरक्षित नहीं किया था, इसलिए यह मेरे साथ कुछ समय के लिए हुआ था जब मेरे 0 बाइट्स मेरे विभाजन पर बचे थे। शायद मैं पूरी तरह से सटीक नहीं हूं क्योंकि मुझे सटीक तंत्र का पता नहीं है, लेकिन जब आप एक डिस्क को गैर-रूट खाते से भरते हैं तो हमेशा कुछ किलोबाइट बचे रहते हैं। लेकिन अगर आपके पास वास्तव में 0 बाइट्स बचे हैं, तो आपका सिस्टम अजीब त्रुटि करता है और आप अपने सिस्टम में नुकसान को ठीक करने के लिए कुछ मुश्किल से समाप्त हो सकते हैं क्योंकि बैकग्राउंड में बहुत सारे सिस्टम सॉफ्टवेयर चल रहे हैं ...

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

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

लेकिन मुझे संदेह है कि आपके पास आपके विंडोज सिस्टम पर कोई समस्या नहीं है यदि आप 95 ओडर 98 का ​​उपयोग करते हैं। (कम से कम मेरे पास इसके साथ मुद्दे थे ...) व्यवस्थापक और नियमित उपयोगकर्ता के बीच एक स्पष्ट अलगाव की कमी के कारण "पारंपरिक "विंडोज ऐप्स मान लेते हैं कि वे कुछ भी कर सकते हैं जैसे कि स्पाइवेयर स्थापित करें यदि वे ऐसा महसूस करते हैं, तो भी आपको बताए बिना। Microsoft विस्टा को जारी करते समय उस मुद्दे में लगा हुआ था। (प्रभावी ढंग से एक sudo तंत्र को लागू करना।) तो लोगों को बहुत कष्टप्रद संवाद मिले, जिसमें कहा गया था कि "आप ऐसा नहीं कर सकते"। गैर-विस्टा-अनुरूप सॉफ़्टवेयर के लिए आपको इसे स्थापित करने के लिए कुछ गंदे हैक की आवश्यकता थी, यहां तक ​​कि प्रशासक के रूप में ...


'हो सकता है कि मैं पूरी तरह से सटीक नहीं हूं क्योंकि मुझे सटीक तंत्र का पता नहीं है, लेकिन जब आप एक डिस्क को गैर-रूट खाते से भरते हैं तो हमेशा कुछ किलोबाइट बचे रहते हैं।' शायद आप खोया + पाया निर्देशिका को देखें? यदि ऐसा है तो आप व्यवस्थापक के रूप में निर्दिष्ट कर सकते हैं कि कितना आरक्षित करना है। मैं कहना चाहता हूं कि सामान्य डिफ़ॉल्ट 5% है लेकिन मैं गलत हो सकता है और इसे बदला जा सकता है। यह काफी उपयोगी है, भले ही शायद ही कभी जरूरत हो। जाहिरा तौर पर यहाँ इस पर और अधिक है (मैं इसे अपने उपयोग के वर्षों से याद करता हूं): unix.stackexchange.com/questions/18154/…
Pryftan

स्पष्ट रूप से यह एक्सट्रीम
फिलिप 14

हां। मुझे पता था कि :) लेकिन वह भी जोड़ने के लिए धन्यवाद।
प्रीफटन

10

इस दृष्टिकोण के पीछे कई पहलू हैं। उनमें से कुछ हैं:

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

  • रूट उपयोगकर्ता अपने सभी कार्यों को छिपा सकता है।
  • sudo sudo के माध्यम से चलने वाले हर कमांड को लॉग करता है। सुडो के साथ जो कुछ किया जा रहा है उसका रिकॉर्ड होने से हमें व्यक्तिगत प्रणालियों / प्रक्रियाओं और सामान्य कॉन्फ़िगरेशन के मुद्दों के साथ समस्याओं का निदान करने में मदद मिलती है, साथ ही साथ हमें सुधारों की पहचान करने में भी मदद मिलती है।

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

    यहाँ एक अच्छा लेख है: http://cf.stanford.edu/policy/root


    लेकिन जब आपके पास पूर्ण सूडो है, तो आप सू सू कर सकते हैं और अपने कार्यों को छिपा सकते हैं।
    विल्हेम इरास्मस

    8
    rm /*
    

    कहते हैं कि आप एक प्रशासनिक क्षेत्र की सफाई कर रहे हैं। आप पासवर्ड से थक है, तो आप sudo su। आप बस दूसरे के लिए विचलित हो जाते हैं और आपको सीडी भूल जाते हैं /। फिर आप rm *। मेंने यह किया है। आप इसे वापस पा सकते हैं, लेकिन यह एक पीटीए है। ओह, और यह /mediaभी नीचे उतरा है!


    10
    हम हमेशा अपने पीसी के बहुत धीमे होने की शिकायत करते हैं, लेकिन ऐसा लगता है जैसे वे एक rm को चलाने के लिए अनुकूलित हैं जितना जल्दी हो सके।
    जिप्पी

    1
    @jippie क्योंकि RM सिर्फ फ़ाइल के लिए इनोड लिंक को नष्ट करता है। लिंक को हटाने और "खाली" के रूप में स्थान चिह्नित करने में लंबा समय नहीं लगता है।
    काज वोल्फ

    @ जिप्पी, यह 10 सेकंड की उलटी गिनती में एक बिल्ड होना चाहिए
    उम्मीद है कि

    7

    रूट लॉगिन क्यों नहीं है?

    जब आप सुपरयूज़र खाते के लिए एक पासवर्ड बना सकते हैं, जिससे आप रूट के रूप में लॉग इन कर सकते हैं, यह ध्यान देने योग्य है कि यह चीजें करने का "उबंटू" तरीका नहीं है। उबंटू ने विशेष रूप से एक कारण के लिए डिफ़ॉल्ट रूप से रूट लॉगिन और पासवर्ड नहीं देने के लिए चुना है । इसके बजाय, एक डिफ़ॉल्ट Ubuntu स्थापित उपयोग करेगा sudo

    सूदो लोगों को सुपरयूजर ड्यूटी करने के लिए रूट पासवर्ड देने का एक विकल्प है। डिफ़ॉल्ट रूप से उबंटू में उस व्यक्ति को स्थापित करें जिसने ओएस स्थापित किया है उसे डिफ़ॉल्ट रूप से "sudo" अनुमति दी गई है।

    "Sudo" अनुमति वाला कोई भी व्यक्ति " sudoकमांडर के रूप में" सुपर कमांडर के रूप में कुछ कर सकता है । उदाहरण के लिए, apt-get dist-upgradeएक सुपरयुसर के रूप में चलाने के लिए , आप इसका उपयोग कर सकते हैं:

    sudo apt-get dist-upgrade
    

    सुडो दृष्टिकोण के लाभ

    • Sudo के साथ, आप पहले से चुनते हैं कि किन उपयोगकर्ताओं के पास sudo पहुँच है। उन्हें रूट पासवर्ड याद रखने की कोई आवश्यकता नहीं है, क्योंकि वे अपने पासवर्ड का उपयोग करते हैं।

    • यदि आपके पास कई उपयोगकर्ता हैं, तो आप रूट पासवर्ड को बदलने और नए पासवर्ड के सभी को सूचित करने की आवश्यकता के बिना, बस उनकी सुडोल अनुमति को हटाकर किसी के सुपरसुसर पहुंच को रद्द कर सकते हैं।

    • आप यह भी चुन सकते हैं कि उपयोगकर्ता को कौन-सी कमांड सूडो का उपयोग करने की अनुमति है और उस उपयोगकर्ता के लिए कौन से आदेश मना किए गए हैं।

    • और अंत में, अगर कोई सुरक्षा भंग होता है तो कुछ मामलों में यह बेहतर ऑडिट ट्रेल को छोड़ सकता है जिसमें उपयोगकर्ता खाते से समझौता किया गया था।

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

    सुडो के साथ, आपके पास अभी भी कमांड के साथ एक स्थायी (इंटरैक्टिव) सुपरसुअर शेल खोलने का विकल्प है:

    sudo su
    

    ... और यह अभी भी बिना किसी रूट पासवर्ड के किया जा सकता है, क्योंकि कमांड sudoको सुपरयुसर विशेषाधिकार देता है su

    और इसी तरह, su -एक लॉगिन शेल के बजाय आप उपयोग sudo su -या यहां तक ​​कि कर सकते हैं sudo -i

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

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

    SSH पर रूट लॉगिन की अनुमति क्यों नहीं है?

    यहां तक ​​कि अगर आपके रूट उपयोगकर्ता के पास एक पासवर्ड है जो आपको रूट के रूप में लॉग इन करने के लिए सक्षम करता है, तो यह अभी भी बाहर से सीधे रूट लॉगिन को अक्षम करने के लिए एक अच्छा सुरक्षा अभ्यास है, जैसे कि एसएसएच में। शुरुआती लॉगिन के बाद su -या sudoबाद में उपयोगकर्ताओं के लिए यह उचित है ।

    इसके संभावित लाभ अधिकतर सुरक्षा-संबंधी हैं:

    • यह रूट पासवर्ड दूरस्थ रूप से ब्रूट-फोर्सिंग की संभावना को हटाकर अटैक वेक्टर को कम करता है। इंटरनेट पर एक सर्वर के लिए यह विशिष्ट है कि SSH के माध्यम से रूट पासवर्ड को ब्रूट-फोर्स करने के प्रयासों से लगातार बाधित किया जाए।

    • यह एक बेहतर ऑडिट ट्रेल बनाता है ताकि एक ब्रीच की स्थिति में भी जहां हमलावर सुपरसुसर विशेषाधिकार प्राप्त करता है , आप देख सकते हैं कि किसके उपयोगकर्ता खाते का उपयोग करने के लिए उपयोग किया गया था।


    6

    जब इसे रूट के रूप में लॉग इन किया जाता है तो यह सॉफ्टवेयर के संवेदनशील भागों तक पहुंचने के लिए एप्लिकेशन, स्क्रिप्ट या कमांडलाइन कमांड के लिए संभव बनाता है जो सिस्टम को नुकसान पहुंचा सकता है। यह उपयोगकर्ता या प्रोग्रामर के हिस्से पर अनुभवहीनता का परिणाम हो सकता है या मैलिक छिपे हुए कोड के कारण हो सकता है।


    5

    रूट के रूप में काम करते समय यह बहुत आसान गड़बड़ है। आप पूरी व्यवस्था को एक कमांड की तरह कर सकते हैं ...


    5

    मैं जोड़ सकता हूं कि विंडोज में प्रशासक और यूनिक्स में जड़ के बीच अंतर है। सिस्टम में प्रशासक के पास अभी भी कुछ प्रतिबंध हैं, जहां रूट का कोई प्रतिबंध नहीं है । विंडोज में रूट का सही एनालॉग सिस्टम यूजर है।

    रूट / सिस्टम के तहत पीसी का उपयोग करने के लिए बुरी बात यह है कि आप ओएस से किसी भी चेतावनी के बिना गलती से कुछ भी नष्ट कर सकते हैं।


    3

    रूट का उपयोग करने के खिलाफ कारण:

    • गलती से सिस्टम फ़ाइलों को नष्ट कर सकता है
    • संक्रमण हो सकता है
    • कार्य लॉग नहीं करता है

    रूट का उपयोग करने के कारण:

    • हर चीज तक पहुंच, कोई टाइपिंग पासवर्ड नहीं
    • जीयूआई, सिस्टम फ़ाइलों / निर्देशिकाओं के प्रबंधन के लिए टर्मिनलों का उपयोग नहीं कर रहा है

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


    यद्यपि तकनीकी रूप से हर एक कमांड सहित कार्यों को लॉग करने का एक तरीका है। यह प्रत्येक उपयोगकर्ता के लिए जाता है। प्रक्रिया का लेखा-जोखा यहाँ देखें: linuxjournal.com/article/6144 और यह केवल तभी सही मायने में सुरक्षित है जब आपको रूट होने की आवश्यकता हो; अन्यथा यह पूरी तरह से सुरक्षित नहीं है (शोषण, आदि) भले ही कमांड सुरक्षित होना चाहिए।
    प्रिएफ्टन

    3

    यदि एप्लिकेशन रूट के रूप में चलाए जाते हैं, तो कोई गारंटी नहीं है कि उनमें से कोई भी निष्पादित नहीं करेगा

    rm -rf /
    

    (यह एक कमांड का एक उदाहरण है जिसे चलाया नहीं जाना चाहिए ।)


    @StefanoPalazzo यह पोस्ट हटाए गए कमांड से कोई मतलब नहीं है, इसलिए मैंने आपका संपादन वापस कर दिया है - आप पोस्ट को हटा सकते हैं। ध्यान दें, व्यापक भ्रांति के विपरीत, यह कमांड, जैसा कि लिखा गया है, वास्तव में उबंटू सिस्टम पर चलने पर फाइलें नहीं हटाता है, लेकिन यह कमांड के समान है। इसलिए यदि आप चिंतित थे कि कोई अनजाने में कमांड की नकल कर सकता है और उनके सिस्टम को न्यूक कर सकता है, तो इसकी संभावना नहीं है। विवरण के लिए --preserve-rootऔर --no-preserve-rootविकल्पों का दस्तावेज़ीकरण man rmदेखें।
    एलिया कगन

    सोलारिस इस आदेश को एक विस्तृत पोसिक्स व्याख्या (और ब्रायन कैंट्रिल) के अनुसार अपरिभाषित व्यवहार के रूप में मानते हैं और एक त्रुटि
    फेंकते हैं

    3

    एक जानकार और सावधान उपयोगकर्ता को देखते हुए, मुझे यकीन नहीं है कि एक सही उत्तर मौजूद है। मैंने यह उत्तर नहीं देखा था, इसलिए मुझे लगा कि मैं इसमें झंकार करूँगा।

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


    3

    सावधानी से उपयोग करने पर रूट के रूप में लॉगिंग में कोई खतरा नहीं है।

    हालांकि मुझे लगता है कि रूट को अक्षम करना बेहतर समाधान है, क्योंकि हमलावर इसे बाध्य नहीं कर सकता।

    एक उपाय यह है कि सुडो ग्रुप में अस्पष्ट नाम के साथ उपयोगकर्ता बनाएं, gamerऔर प्रशासनिक कार्यों को करने के लिए सुडो का उपयोग करें।

    इसलिए हमलावर को न केवल उस प्रशासनिक उपयोगकर्ता का पासवर्ड, बल्कि उसके लॉगिन नाम का भी अनुमान लगाना चाहिए। कौन सा स्पष्ट करता है, तो उपयोगकर्ता sudo का उपयोग कर की तरह नाम के लिए लॉग इन किया है नहीं है kittyया gamerया कुछ इसी तरह।


    2

    सॉफ्टवेयर साझा पुस्तकालयों, निर्भरता, कॉन्फ़िगरेशन फ़ाइलों आदि पर आधारित है।
    अधिकांश समय, एक आवेदन में एक क्लिक कई परिवर्तनों की "श्रृंखला प्रतिक्रिया" को आमंत्रित करता है, न केवल जहां आपको लगता है कि यह संभवतः होगा।
    जब ये परिवर्तन सिस्टम-क्रिटिकल सेटिंग्स को प्रभावित करने वाले हैं, तो यह आपके लिए अच्छा है - एक उपयोगकर्ता के रूप में - जानने के लिए।
    इसलिए रूट एक्सेस एक अच्छा सुरक्षा मॉडल है:
    यदि आपके सिस्टम में कुछ महत्वपूर्ण होने वाला है, तो आपको विशेषाधिकार उन्नयन के लिए कहा जाएगा।


    1

    यह एक से अधिक जवाब के साथ दो-मुंह की समस्या है।

    इस के लिए कभी-कभी-लेकिन-ओह-इतना-भयानक जवाब पर कुछ वास्तविकता की जांच के लिए:

    desktop installations:

    • जरूरत पड़ने पर अपने स्वयं के उपयोगकर्ता और sudo का उपयोग करें, अन्यथा एक ने सफलतापूर्वक हमला वेक्टर का उपयोग किया क्योंकि आपको वास्तव में पता नहीं है कि आप क्या कर रहे हैं और आपके सिस्टम से समझौता किया गया है
    • बड़ी कंपनियों के अवसरों में, आपके पास अपने कार्य केंद्र पर रूट विशेषाधिकार भी नहीं हो सकते हैं, भले ही आप एक व्यवस्थापक हों, जो टिन-पन्नी टोपी की मात्रा पर निर्भर करता है।

    server installations:

    • रूट के रूप में आपके लघु कार्य सत्रों को वैध करने के बीच एक बड़ा अंतर है (बशर्ते आपके पास पासवर्ड रहित लॉगिन हो, सभी सर्वरों के लिए उचित ssh कुंजी प्रबंधन - और वैसे भी जब भी आप हों, सभी पासवर्ड लॉगिनों के लिए कॉन्फ़िगर किया गया fail2ban) और हर डेमन / सेवा में हों अपने स्वयं के उपयोगकर्ता (जो कि बहुत जरूरी है) के साथ चल रहा है - अधिकांश लोगों को अंतर का एहसास नहीं होता है
    • मनोरंजन के लिए: केवल रूट एक्सेस के बिना अपने संस्करण-नियंत्रित कॉन्फ़िगरेशन प्रबंधन टूल (ansible / कठपुतली / नमक / जो कुछ git सर्वर से फ़ाइलों के साथ) का उपयोग करने का प्रयास करें। (आपके पास इन विशेष प्रणालियों के लिए एएए का कुछ रूप है, साथ ही आपकी निगरानी और बैकअप सिस्टम के लिए, क्या आप नहीं हैं?)
    • यह भी: rm -rf /अधिकांश मुख्यधारा के डिस्ट्रोस IIRC में डिफ़ॉल्ट काम नहीं करता है
    • किसी भी गंभीर कार्यस्थल में सर्वर बेड़े तक पहुंचने के लिए एक जम्फॉस्ट / बैस्टियन-होस्ट है जो कुछ भी आप किसी भी तरह से लॉग करता है, जो संभवतः 2FA द्वारा संरक्षित है।
    • यदि आपके पास सूडो और कोई जम्फॉस्ट नहीं है, तो आप मेजबान लॉग को ठीक करने के लिए ठीक कर सकते हैं, हालांकि आप उन्हें वैसे भी चाहते हैं, अगर वे वास्तविक समय में प्रतिबिंबित नहीं होते हैं, तो यह है।
    • जब भी ssh लॉग 'क्लीन' हो जाता है, तो आपको होस्ट पर साबित नहीं किया जा सकता है, अगर आगे कोई नेटवर्क मॉनिटरिंग नहीं है

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

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

    और हमेशा sudoधार्मिक रूप से उपयोग करने और सभी लोगों के बीच इसके उपयोग को लागू करने से उस मामले में अधिक स्वामित्व प्राप्त करने की आपकी संभावना नहीं बदलेगी।


    अंत में, सामान्य की बजाय एक वास्तविक और विभेदित उत्तर, 'यह कभी नहीं करें'-मंत्र। इसके लिए +1 और धन्यवाद।
    एंड्रियास एच।

    0

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

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