जवाबों:
अभ्यास में, वे दोनों आप सुपर उपयोगकर्ता कर देगा। हालांकि, वे थोड़ा अलग अलग तरीकों से थोड़ा अलग बातें करते हैं,।
सबसे पहले, su -
आपको एक लॉगिन शेल पर स्विच sudo -s
करता है , जबकि ऐसा नहीं करता है। अभ्यास में, यह अक्सर मतलब है कि आपके वातावरण चर करने के लिए स्विच नहीं होगा root
'के लिए है sudo -s
। ध्यान दें कि आप अभी चला सकते हैं su
करने के लिए नहीं एक लॉगिन खोल पाने के लिए, या sudo -i
एक लॉगिन खोल पाने [नहीं सभी संस्करणों में] करने के लिए।
दूसरे, su
और su -
नए उपयोगकर्ता के रूप में प्रमाणित करने के लिए कहकर एक नए उपयोगकर्ता पर स्विच करें। sudo -s
और sudo -i
(और बस नियमित sudo foo
) यदि आप एक आदेश चला जिसके लिए आप कर रहे हैं पूर्व अधिकृत [देखते हैं /etc/sudoers
], संभवतः अपने इस बात की पुष्टि करने के लिए कहते वर्तमान आईडी।
क्या तुम सच में सुंदर होना चाहते हैं, तो आप भी चला सकते हैं sudo su -
, जो रूट (के रूप में लॉग-इन करने के लिए अनुरोध करेंगे su -
) जड़ उपयोगकर्ता (द्वारा चलाए sudo
भाग)।
जड़ उपयोगकर्ता लॉक हो जाता है (जैसे Ubuntu पर), तो आप जड़ का उपयोग कर के रूप में प्रवेश करने के लिए सक्षम नहीं होगा su
। इस स्थिति में, आपको उपयोग करने की आवश्यकता होगी sudo -s
याsudo -i
su -s
एक उपयोगकर्ता (इस मामले में रूट) पर स्विच करेगा और आपके द्वारा निर्दिष्ट शेल, या शेल को निर्धारित करने के कुछ अन्य तरीकों में से एक को लॉन्च करेगा। यह उपयोगी है यदि आप zsh या किसी अन्य शेल को रूट के रूप में जल्दी से उपयोग करना चाहते हैं ... और किसी कारण से आप sudo का उपयोग नहीं कर रहे हैं।
sudo -s
बस सुडोल का उपयोग करके एक शेल निष्पादित करता है, जो आपको एक रूट शेल देगा। साथ ही आप इसे करने के लिए एक खोल पारित कर सकते हैं।
su -s पुराना है, बहुत पुराना है तो sudo -s कमांड। मेरा अनुमान है कि डेवलपर sudo का उपयोग करने के लिए स्विच करना जितना संभव हो उतना आसान बनाने की कोशिश कर रहा है।
सु किसी अन्य उपयोगकर्ता को बदलने के लिए एक कमांड है, या तो शेल चलाने के लिए या किसी विशिष्ट कमांड को निष्पादित करने के लिए। आपको अन्य उपयोगकर्ता के रूप में प्रमाणित करना होगा। यदि आप रूट करना चाहते हैं, तो आपको रूट पासवर्ड की आवश्यकता है।
सुडो एक अन्य उपयोगकर्ता के रूप में एक और कमांड (वैकल्पिक रूप से एक शेल) निष्पादित करने के लिए एक कमांड है। आपको अपने उपयोगकर्ता के रूप में प्रमाणित करना होगा । सुडो का उपयोग करने की अनुमति (और विशिष्ट चीजें जो आप इसके साथ कर सकते हैं) सूडोर्स फ़ाइल में एक व्यवस्थापक द्वारा निर्दिष्ट की जाती हैं।
यदि आप किसी को su (उदाहरण के लिए, उन्हें रूट पासवर्ड देते हुए) एक्सेस देते हैं, तो वे इसके साथ कुछ भी कर सकते हैं - अन्य कमांड चलाएं, एक शेल खोलें, पासवर्ड बदलें, ssh के माध्यम से दूरस्थ रूप से लॉगिन करें, और इसी तरह। आप अनिवार्य रूप से उन्हें दूसरे खाते तक पहुंच दे रहे हैं, 'सु' सिर्फ एक चीज है जिसके साथ वे ऐसा कर सकते हैं।
सूद ज्यादा महीन होता है। आप किसी उपयोगकर्ता या किसी समूह को विशेषाधिकार प्रदान कर सकते हैं। आप एक उपयोगकर्ता या समूह को एक निश्चित समय सीमा के भीतर (जैसे सोमवार से शुक्रवार, सुबह 9 बजे से शाम 5 बजे तक) सूडो की अनुमति दे सकते हैं। आप उन कमांड की एक विशिष्ट सूची निर्दिष्ट कर सकते हैं, जिन्हें वे चलाने की अनुमति देते हैं (जैसे केवल / usr / स्थानीय / बिन / रन_बैकअप) या आप एक विशिष्ट उपयोगकर्ता को निर्दिष्ट कर सकते हैं, जिन्हें वे कमांड चलाने की अनुमति देते हैं (जैसे www, बैकअप, स्टाफ, आदि) )।
इसके लचीलेपन के अलावा, sudo सभी मामलों में एक बेहतर समाधान है, क्योंकि इसके लिए उपयोगकर्ता को पहले से मौजूद किसी भी चीज़ की पहुँच की आवश्यकता नहीं होती है। यदि आप किसी को sudo एक्सेस देते हैं, तो आप sudoers फ़ाइल में उनकी लाइन हटाकर, या sudoers समूह से उन्हें हटाकर इसे रद्द कर सकते हैं। यदि आप उनका खाता हटाते हैं, तो उनकी पहुँच समाप्त हो जाती है।
यदि आप उन्हें रूट पासवर्ड देते हैं, यहां तक कि यह मानते हैं कि वे इसके साथ कुछ भी अप्रिय नहीं करते हैं, तो वे इसे हमेशा के लिए जान लेंगे। यदि आपके पास कई लोग हैं, जिन्हें प्रशासनिक कार्यों के लिए रूट एक्सेस की आवश्यकता है, तो इसका मतलब है कि जब भी कोई व्यक्ति छोड़ता है, या सभी रूट पासवर्ड बदलते हैं, या यह मानते हुए कि आपके जाने के बाद आपके सिस्टम तक पूरी पहुंच होना उनके लिए ठीक है।
से विकिपीडिया :
su (विकल्प उपयोगकर्ता या स्विच उपयोगकर्ता के लिए छोटा) एक यूनिक्स कमांड है जिसका उपयोग किसी अन्य उपयोगकर्ता के शेल को लॉग आउट किए बिना चलाने के लिए किया जाता है।
इससे संबंधित एक आदेश में कहा जाता sudo किसी अन्य उपयोगकर्ता के रूप में एक आदेश निष्पादित करता है लेकिन बाधाओं के बारे में जो उन पर अमल कर सकते हैं का एक सेट का मानना है जो आदेशों जो के रूप में अन्य उपयोगकर्ताओं (/ etc / sudoers, सबसे अच्छा आदेश visudo व्यक्ति संपादित नाम के एक विन्यास फाइल में आम तौर पर)। सु के विपरीत, अपने स्वयं के बजाय पासवर्ड लक्ष्य उपयोगकर्ता की उस के खिलाफ sudo प्रमाणित करता है उन (उन के बीच पासवर्ड साझा किए बिना और किसी भी पहुंच से बाहर टर्मिनलों के जोखिम को कम करने, जबकि विशिष्ट होस्ट पर विशिष्ट उपयोगकर्ताओं के लिए विशिष्ट आदेश के प्रतिनिधिमंडल अनुमति देने के लिए)।
एक बात है कि नहीं कर रहा है हो रही है पूरी तरह से कहा यह है: आप किस कर सकते हैं का उपयोग अक्सर क्या वितरण का उपयोग कर रहे पर निर्भर करता है और जो इसे चलाता है। एक या दूसरे ( su
या sudo
) शायद डिफ़ॉल्ट रूप से पूर्ण उपयोग के लिए सेट नहीं है। उदाहरण के लिए, के रूप में कुछ लोगों का उल्लेख किया है, ओएस एक्स और Ubuntu जड़ खाता (अक्षम su
) डिफ़ॉल्ट रूप से। समान रूप से, डेबियन नियमित उपयोगकर्ताओं के लिए किसी भी डिफ़ॉल्ट विशेषाधिकार नहीं देता है sudo
। (इन सभी प्रणालियों पर, आप इन डिफॉल्ट्स को बदल सकते हैं, लेकिन केवल तभी जब आपके पास कुछ प्रकार के प्रशासनिक विशेषाधिकार हों। एस एफ की तुलना में, लेकिन सिर्फ मामले में।)
अंत में, यदि आप sudo
अधिक बारीक तरीके से उपयोग करना चाहते हैं, तो आपको / etc / sudoers फ़ाइल man sudoers
को संपादित करने के तरीके के बारे में देखना चाहिए । हालांकि, अगर आप चाहिए कभी नहीं यह हाथ से संपादित करें। प्रोग्राम का उपयोग करें visudo - जब तक कि वे कम से कम न्यूनतम समझदार पर हैं यह आपके संपादन की बचत कर सकेंगे। यह सरल त्रुटियों जो आप अपने खुद के सिस्टम के व्यवस्थापक विशेषाधिकारों की पहुंच से वंचित कर सकता है के खिलाफ एक महान रक्षा है।
सिस्टम इस तरह के मैक ओएस एक्स, के रूप में जहां सुपर उपयोगकर्ता खाता अक्षम है, पर su
काम नहीं करेगा; sudo -s
मर्जी।
इसके अलावा, यह प्रतीत होता है कि वहाँ कोई है su -s
मेरी मशीन पर उपलब्ध है, कम से कम।
sudo
(जो कि हमेशा स्थापित नहीं होता है)।
यह परिचय आपकी मदद कर सकता है। su
के लिए आशुलिपि है su root
, और आप अपने अधिकारों को अन्य उपयोगकर्ता के रूप में अनिश्चित काल के लिए रखते हैं। अधिक खतरनाक, लेकिन यह भी अधिक सुविधाजनक है यदि आप समय की अवधि में कई रूट-एक्सेस कमांड कर रहे हैं।
su मूल रूप से एक अन्य उपयोगकर्ता विशेषाधिकारों के साथ एक नया लॉगिन शेल बनाएगा (लॉगिन) sudo आपको अस्थायी रूप से आपके द्वारा निर्दिष्ट उपयोगकर्ता का उपयोग करके कमांड निष्पादित करने की अनुमति देगा। FreeBDS जैसे कुछ UNIX पर '-s' विकल्प नहीं हैं।
sudo
नियमित उपयोगकर्ताओं को कोई डिफ़ॉल्ट विशेषाधिकार नहीं दिए गए हैं। उन प्रणालियों पर,su
एकमात्र विकल्प है।