मुझे लगभग हर चीज के लिए सूडो का उपयोग क्यों करना पड़ता है?


64

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

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

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


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

75
"स्रोत से एक प्रोग्राम स्थापित करना। कुछ भी एक नियमित उपयोगकर्ता करता है" --- मुझे लगता है कि आपने नियमित उपयोगकर्ताओं के तकनीकी कौशल को कम कर दिया है।
जोनाथन

7
आप का उपयोग कर रहे हैं sudoजब आप नहीं करना चाहिए? एक सामान्य लिनक्स यूजर को आदेश देता ज्यादातर होनी चाहिए cd, ls, चलती, प्रतिलिपि, हटाने, और संपादन फ़ाइलों वे की पहुंच है। यदि आपके सामान्य आदेशों में यह शामिल नहीं है, तो आप संभवतः एक नियमित यूनिक्स उपयोगकर्ता नहीं हैं।
user530873

20
छोटी सी टिप: यदि आप कुछ ऐसा करते हैं जिसमें आपको sudo की आवश्यकता होती है, लेकिन sudo को अपनी कमांड में रखना भूल गया है, तो आप sudo !!सामने वाले sudo के साथ लिखे गए अंतिम कमांड को पुनः चलाने के लिए उपयोग कर सकते हैं ।
asfallows

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

जवाबों:


75

आपने इन सिस्टम व्यवस्थापन कार्यों का उल्लेख किया है

संकुल का प्रबंधन, विन्यास फाइल का संपादन, स्रोत से एक प्रोग्राम स्थापित करना

चीजों के रूप में

एक नियमित उपयोगकर्ता कुछ भी करता है

एक सामान्य बहुउद्देशीय प्रणाली में ये सामान्य उपयोगकर्ता क्रिया नहीं हैं; एक सिस्टम प्रशासक इस बारे में चिंता करेगा। साधारण उपयोगकर्ता ("विशेषाधिकार प्राप्त नहीं") तो इसके रखरखाव की चिंता किए बिना सिस्टम का उपयोग कर सकते हैं।

एक होम सिस्टम पर, हां, आप सिस्टम का उपयोग करने के साथ-साथ उसका प्रशासन करने के लिए समाप्त होते हैं।

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


47
ऐसा कोई कारण नहीं है कि आप एक पासवर्ड के लिए संकेत करने के लिए sudo कॉन्फ़िगर नहीं कर सकते हैं [...]। मैं यह अनुशंसा नहीं करूंगा कि यदि आप एक दुर्भावनापूर्ण स्क्रिप्ट लॉन्च करते हैं, तो यह आपके सिस्टम पर मूल कार्य करने में सक्षम होगा।
AL

5
यदि सूडो पासवर्ड दर्ज करने से आपको इतना गुस्सा आता है कि आप मूल रूप से पासवर्ड प्रविष्टि को ऑटो-पायलट करते हैं तो यह भी मदद नहीं करेगा। आपको सुरक्षा के साथ विवेक को संतुलित करने की आवश्यकता है। मैंने ऑटो-पायलट सूडो को कम से कम एक बार ओएस के प्रमुख हिस्से को हटा दिया है।
नेल्सन

33
व्यक्तिगत रूप से मुझे प्यार है sudo- यह एक पवित्रता की जाँच की तरह है।
मैक्स विलियम्स

6
@MaxWilliams, हाँ बिल्कुल, यह है कि बड़े लाल बटन पर थोड़ा स्पष्ट प्लास्टिक फ्लिप कवर कि पूछता है, उह, क्या आप सुनिश्चित हैं कि आप जानते हैं कि आप क्या कर रहे हैं?
KlaymenDK

15
@AL: अगर मैं एक अज्ञात स्क्रिप्ट चलाने जा रहा हूं, तो यह बेहतर नहीं था कि मैं दुर्भावनापूर्ण न हो या मैं खराब हो या नहीं यह सुडोल चला। मेरे निजी डेस्कटॉप पर, यह मेरा अपना (नॉन-रूट) डेटा है जो महत्वपूर्ण है, न कि प्रति रूट मशीन का रूट (रूट) कॉन्फ़िगरेशन।
jrw32982

31

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

क्या मैं पैकेजों का प्रबंधन कर रहा हूं, कॉन्फिग फाइलों को एडिट करना, सोर्स से प्रोग्राम इंस्टॉल करना, या आपके पास क्या है।

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

उदाहरण के लिए, यदि कोई पैकेज / कॉन्फ़िगर फ़ाइल को उन्नत विशेषाधिकार के बिना संशोधित किया जा सकता है, तो यह बाहरी स्रोत के लिए बस रिमोट कोड को निष्पादित करने के लिए बेहद सरल होगा जो आपके सिस्टम को तोड़ / समझौता कर सकता है। रूट एक्‍सेस की आवश्‍यकता के लिए उन क्रियाओं को मजबूर करके, यह आपको उपयोगकर्ता के रूप में यह निर्णय लेने के लिए मजबूर करता है कि उन कार्यों को किया जाना है या नहीं।

यह UACखिड़कियों के साथ बहुत समान है , यह वास्तव में है जहां खिड़कियों के लिए विचार मिला UAC

आपको सूडो का उपयोग करने पर पहली बार प्राप्त होने वाली बोली बहुत उपयुक्त है, और बहुत महत्वपूर्ण है:

हमें विश्वास है कि आपने स्थानीय सिस्टम प्रशासक से सामान्य व्याख्यान प्राप्त किया है। यह आमतौर पर इन तीन चीजों को उबालता है:

#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.

विशेष रूप से # 2, आप टाइप करने से पहले सोचें। यह एक महत्वपूर्ण कारण है कि सूडो मौजूद है, जब आप एक कमांड टाइप करते हैं और इसे वापस मारता है "इस क्रिया को करने के लिए रूट होना चाहिए" यह आपको रोकने के लिए मजबूर करता है और वास्तव में आप जो कर रहे हैं उसके बारे में सोचते हैं।


19

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

आपको उन कमांड को सुपरयुसर के रूप में निष्पादित करना होगा, लेकिन आपको उनका उपयोग करके निष्पादित नहीं करना है sudo। आप उदाहरण के लिए उपयोग suकर सकते हैं या doas(OpenBSDs प्रतिस्थापन के लिए sudo), या आप बस रूट के रूप में लॉगिन कर सकते हैं।

इसलिए यदि वे अपनी आज्ञाओं को यहाँ प्रदर्शित करते हैं, तो बिना sudoयह मानें कि पाठक उन आदेशों को क्रियान्वित करने के अपने पसंदीदा तरीके का उपयोग करेगा।
यह निश्चित रूप से इसका मतलब यह नहीं है कि वे उन आदेशों को एक सामान्य उपयोगकर्ता के रूप में निष्पादित कर सकते हैं।


4
आप sudo -iरूट शेल प्राप्त करने के लिए भी या इसी तरह का उपयोग कर सकते हैं और फिर अपनी रूट कमांड को चलाने की आवश्यकता के बिना उनमें से प्रत्येक के साथ प्रस्तावना शुरू कर सकते हैंsudo
कैस

2
आमतौर पर कि जरूरत एक रूट शीघ्र जैसे साथ दिखाया गया है रूट के रूप में चलाने के लिए कदम # vi /etc/hostsएक आम संकेत के बजाय $ vi /etc/hosts(बैश का पालन करता है, तो आप का उपयोग करेगा \$में PS1)
गर्ट वेन डेन बर्ग

16

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

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


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

13

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


6
"अभी भी विश्वविद्यालय की प्रयोगशालाओं में मौजूद हैं" ... हाँ, और ग्रह पर हर प्रौद्योगिकी-केंद्रित निगम, और अधिकांश गैर-तकनीकी वाले भी। फिर भी, सटीक अंतर देने के लिए +1 जो ओपी स्पष्ट रूप से गायब है, और यह कि अधिकांश अन्य उत्तरदाता जोर देने में विफल रहे।
वाइल्डकार्ड 15

@Wildcard लोल यकीन है। बस उदाहरण है कि तुरंत मेरे सिर में कूद गया मुझे लगता है।
xji

10

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

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

तो अतिशयोक्ति किए बिना, हम कह सकते हैं कि आपको अपने कंप्यूटर का उपयोग करने के लिए sudo (या रूट पासवर्ड) की आवश्यकता नहीं है । केवल अपने कंप्यूटर को तैयार करने के लिए।


2
महान सादृश्य, लेकिन कभी-कभी आपको अपने तले हुए अंडों को तलने से पहले साबुन को अपने पैन से बाहर रखने की आवश्यकता होती है, यानी दोनों चीजें बहुत आसानी से जुड़ जाती हैं। आपके पास एक कंप्यूटर के साथ, आप लगभग "तुरंत" धो सकते हैं या "फ्राई" sudoकर सकते हैं su
आर्मफूट

लगता है कि आपको खाना पकाने के लिए रूट की आवश्यकता होनी चाहिए, क्योंकि यह अधिक खतरनाक है।
१५

6

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

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

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

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

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


5

[...] लेकिन यह समझ में नहीं आता है, क्योंकि मैं हमेशा इनपुट sudo कर रहा हूँ, चाहे मैं संकुल प्रबंधन कर रहा हूँ, विन्यास फाइल का संपादन, स्रोत से एक प्रोग्राम स्थापित करना, या आपके पास क्या है। [...]

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

एक बहु-उपयोगकर्ता सेटिंग में आपके पास पूर्वस्थापित सॉफ़्टवेयर और उनके सिस्टम-वाइड कॉन्फ़िगरेशन क्रमशः /usrऔर /etcक्रमशः होते हैं। इन स्थानों को छूने से रूट अनुमतियों की आवश्यकता होगी। लेकिन क्योंकि यूनिक्स सॉफ्टवेयर को बहु-उपयोगकर्ताओं को ध्यान में रखते हुए लिखा गया है, आप $HOME निर्देशिका 2 के तहत सॉफ़्टवेयर को संकलित और स्थापित कर सकते हैं , और आपके घर के नीचे अपनी स्वयं की कॉन्फ़िगरेशन फ़ाइलें हो सकती हैं, जहाँ आप सुपर उपयोगकर्ता न होकर स्वतंत्र रूप से फ़ाइलों को संपादित कर सकते हैं।

घर के नीचे अपना खुद का सॉफ़्टवेयर स्थापित करने के अलावा, अधिकांश सिस्टम-वाइड सॉफ़्टवेयर उपयोगकर्ता-विशिष्ट कॉन्फ़िगरेशन को $HOMEपढ़ने के बाद सही से पढ़ेंगे /etc। यह आपको कभी भी जाने के बिना कुछ भी अनुकूलित करने की अनुमति देता है root

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

मैं अपने पैकेज मैनेजर को विश्व स्तर पर सामान स्थापित करने देता हूं लेकिन किसी भी संकलित-स्रोत और स्व-निर्मित सामान के तहत मैं छोड़ देता हूं $HOME। और मुझे उसमे से किसी के लिए सूडो की जरूरत नहीं है।

यदि आपके पास डेटा फ़ाइलें हैं, तो आपके बाहर भंडारण $HOME, अपने नाम के लिए स्वतंत्र chownया chgrpनिर्देशिकाओं को महसूस करें ताकि आप बिना फ़ाइलों तक पहुंच सकें sudo

[1] (यूनिक्स के रूप में थोड़ा विडंबना यह है कि मल्टीिक्स ऑपरेटिंग सिस्टम का 'सिंगल यूजर' संस्करण था)

[२] (यदि सिस्टम इसे घर के विभाजन को नोक्सेक के रूप में न बढ़ाकर अनुमति देता है)


2

UNIX (और, वंश, लिनक्स) द्वारा बहुउद्देशीय प्रणालियों के प्रकार के लिए डिज़ाइन किया गया था, ये सामान्य उपयोगकर्ता क्रियाएं नहीं हैं । एक सिस्टम प्रशासक उन्हें प्रदर्शन कर सकता है, लेकिन विशिष्ट उपयोगकर्ता नहीं, और इसलिए सिस्टम यह सुनिश्चित करने के लिए कहता है कि वास्तव में sysadmin ऐसा करना चाहता है।

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

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


1

यह संभवतः उतना सामान्य नहीं है जितना प्रतिनिधित्व किया जाता है, लेकिन आमतौर पर तब होता है जब कुछ आकस्मिक रूप से इसके परिणाम प्राप्त करने के लिए बहुत अधिक सामान्य विशेषाधिकार प्राप्त प्रणाली कॉल की आवश्यकता होती है, उदाहरण के लिए:

  • अनमाउंट करें और USB स्टिक को ले जाएं। umountएक गंभीर आदेश है क्योंकि आप इसके साथ बहुत सी चीजों को अनमाउंट कर सकते हैं।
  • स्थानीय वायरलेस नेटवर्क से कनेक्ट करें। असाधारण कुछ भी नहीं है, लेकिन नेटवर्क कॉन्फ़िगरेशन ( ifupआदि) केवल सुपरयुसर के लिए है।
  • सेल्फ-अपडेट करने वाले ऐप जो अपडेट नहीं होने पर चलने से मना करते हैं। अद्यतन = स्थापित करें, और यह बहुत सी चीजें स्थापित कर सकता है, जिसमें आप नहीं चाहते हैं।

सिस्टम आमतौर पर ऐसे मामलों की संख्या को कम करने के लिए विकसित होता है। USB स्टिक अब उपयोगकर्ता-माउंटेबल हैं और नेटवर्क उपयोगकर्ता-कनेक्ट करने योग्य हैं। लेकिन यह हमेशा से ऐसा नहीं था।


0

धारणा: यह आपका सिस्टम और आपका डेटा है।

आपको केवल गलती से डेटा को मिटाने या अपने ओएस को ईंट करने की आवश्यकता को कम करना होगा sudo

मैं नियमित रूप से लॉगिन करता हूं और अपने होम सर्वर पर रूट के रूप में काम करता हूं क्योंकि मैं निम्न्लिखित कर सकता हूँ यह आसान है।

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

इसके आदमी की भूमिका (अपने जीवन को दयनीय बनाने के साथ) के UACबाद बीटीडब्ल्यू को मॉडल नहीं बनाया गया था sudoताकि यह सुनिश्चित हो सके कि आप देखेंगे कि मैलवेयर आपकी ओर से क्या करना चाहता है।

(*) rootशक्तियों को महत्वपूर्ण डेटा को न्यूक करने की क्षमता के रूप में परिभाषित किया गया है। "महान शक्ति के साथ महान मुद्दे आते हैं" (या जो कुछ भी था) कहावत लागू होती है।

यदि मेरी धारणा गलत है, तो आपको अभी भी ऊपर दिए गए जोखिम का वजन करने की आवश्यकता है, लेकिन अधिक चर (आपकी नौकरी, आपके पति द्वारा ली गई तस्वीरें और उसी लैपटॉप पर संग्रहीत हैं, ...)


1
रूट शक्तियां महत्वपूर्ण डेटा को न्यूक करने की क्षमता नहीं हैं। आप हमेशा rm -rf ~/बिना किसी विशेष अनुमति के कर सकते हैं । दूसरी ओर, आप अपने मोबाइल फोन या टीवी को पहले बिना रूट किए ईंट नहीं मार सकते।
दिमित्री ग्रिगोरीव

एक उपकरण उतना ही उपयोगी है जितना कि यह डेटा संग्रहीत करता है और यह जो सेवाएं प्रदान करता है। नीचे दिया गया हार्डवेयर और OS एक मात्र वस्तु है। तो शक्ति वह है जहाँ आप सेवाओं या डेटा को प्रभावित कर सकते हैं। एक टीवी पर आप अपनी सभी सेटिंग्स मिटा सकते हैं - टीवी अनुपयोगी है (एक डेटा को पुनर्स्थापित करने से पहले)। आप अपने सभी डेटा को मोबाइल फोन पर मिटा सकते हैं, जो तब बिना किसी उपयोग के हार्डवेयर का एक टुकड़ा बन जाता है। "रूट पावर" से मेरा यही मतलब है
WoJ

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

1
आपका टीवी सादृश्य अच्छा नहीं है। आपके टीवी पर सेटिंग्स को मिटाना लिनक्स पर आपके उपयोगकर्ता कॉन्फिग फाइलों को मिटाने जैसा है - ऐसा करने से आमतौर पर सिस्टम उस उपयोगकर्ता के लिए कुछ सेट डिफॉल्ट के अनुसार काम करता है, और आमतौर पर सिस्टम को कोई नुकसान नहीं पहुंचाता है। रूट आपको सिस्टम को स्वयं संशोधित करने में सक्षम बनाता है - टीवी पर यह फर्मवेयर को संशोधित करने जैसा होगा, जिस स्थिति में आप तोड़ सकते हैं वह वास्तव में संचालित करने की क्षमता है।
२०:४० पर JBentley

1
यही कारण है कि जोखिम मूल्यांकन है। आप कुछ करने के जोखिमों का आकलन करते हैं (जिसमें इसके पेशेवरों और विपक्ष हैं) और स्वीकार, कम या बीमा करते हैं। पुनर्प्राप्त करना सरल हो सकता है (डॉकटर, वीएम स्नैपशॉट) या मुश्किल (फॉर्म स्क्रैच स्थापित करें) - यह नियोजन का मामला है और, फिर से, आकलन कर रहा है। लेकिन जैसा कि आपने उल्लेख किया है, मुझे समझ नहीं आया कि रूट एक्सेस का मतलब क्या है।
WoJ

0

प्रारंभिक प्रश्न लिखने वाले व्यक्ति की रक्षा में, पिछले वर्षों में मेरा भी यही प्रश्न था, लेकिन मैंने एक अलग तरीका अपनाया।

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

जिस तरह से मैंने यूनिक्स और लिनक्स को अंदर से सीखा था वह मेरे कंप्यूटर में से एक "गिनी पिग" के रूप में उपयोग किया गया था। मैं SCO लिनक्स, और अंततः सोलारिस और फिर लिनक्स बहुत बाद में स्थापित करूँगा, जबकि सभी खुशी-खुशी रूट के रूप में प्रयोग कर रहे हैं ताकि मैं निर्देशिका पदानुक्रम को पढ़ और / या अनर्गल उपयोग के साथ सभी फ़ाइलों का पता लगा सकूं, साथ ही "सामान्य उपयोगकर्ता" को अपने घर पर बना रहा हूं। बहु-उपयोगकर्ता बॉक्स, भले ही मैं एकमात्र उपयोगकर्ता था। और मुझे खुशी है कि मैंने ऐसा किया। मैंने "यूनिक्स दर्शन" के बारे में बहुत कुछ सीखा और जिस तरह से यूनिक्स का उपयोग करने का इरादा था।

मेरे पास सुरक्षा के बारे में सीखने के लिए एक विस्फोट था, और रूट के रूप में एक टर्मिनल में rm -rf / * लिखकर खतरनाक कमांड चला रहा था। (यह मत करो! यह आपका सिस्टम हो जाएगा!) मैंने इस तरह की चीजें और कई अन्य कमांड किए, बस यह देखने के लिए कि वास्तविक समय में क्या होगा। मैंने हाथ से पहले परिणाम जानने के लिए इस तरह की चीजें कीं, फिर भी मैंने ऐसा करके बहुत कुछ सीखा। मैं SCO यूनिक्स LONG का उपयोग कर रहा था इससे पहले कि वेब मौजूद था (हाँ, मैं वह पुराना हूँ!) और इस तरह से प्रयोग करना मेरे सीखने के लिए अमूल्य था।

तो मैं क्या कह रहा हूँ अगर आपको कुछ गलत होने पर पुनः स्थापना करने में कोई आपत्ति नहीं है, तो su या लॉगिन को रूट के रूप में उपयोग करें जो आप चाहते हैं और कॉन्फ़िगर / हैक करें! आप ऐसा करके बहुत से लोगों का नरक सीखेंगे।

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

सु और सूडो के विषय पर विचार के लिए बस कुछ भोजन। हैप्पी हैकिंग!

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