मैं `su` क्यों नहीं चला सकता? (और मुझे कैसे करना चाहिए?)


33

जब भी मैं जारी करने की कोशिश करता suहूँ मुझे यह मिलता है:

$ su  
Password:  
su: Sorry

कहने की ज़रूरत नहीं है, मैं सही व्यवस्थापक पासवर्ड दर्ज कर रहा हूं जो काम करता है sudo। मैं जो चाहता हूं वह sudoहर बार दर्ज नहीं होता है।

जवाबों:


34

MacOS X में, मूल उपयोगकर्ता डिफ़ॉल्ट रूप से अक्षम है, इसलिए suकाम नहीं करेगा। जैसा कि दूसरों ने कहा है, इसका उपयोग करना सबसे अच्छा है sudo

यदि आपको रूट उपयोगकर्ता को सक्षम करना है , तो Apple के तकनीकी को देखें: मैक ओएस एक्स में "रूट" उपयोगकर्ता को सक्षम करना और उसका उपयोग करना


13
sudo suअभी भी काम करता है, इसलिए यह वास्तव में अक्षम नहीं है। इसका कोई पासवर्ड नहीं है।
नकली नाम

@ फ़ेकनाम यह सबसे प्रफुल्लित करने वाला पिछले दरवाजे है! यदि आप चला सकते हैं sudo su, तो दुनिया में क्या बात अक्षम करने की है su?
कोलोब कैन्यन

3
@KolobCanyon - बिंदु वास्तव में "अक्षम su" करने के लिए नहीं है , यह रूट लॉगिन को रोकने के लिए है । लॉगिन को अस्वीकार करके root, आप संभावित सुरक्षा समस्याओं का एक गुच्छा रोकते हैं। नहीं कोई है जो कर सकते हैं अनुमति देता है sudoके लिए suमूर्ख की तरह है। मूल रूप से, suबस वर्तमान उपयोगकर्ता-आईडी को बदलता है, और एक कमांड निष्पादित करता है (एक शेल, यदि निर्दिष्ट नहीं है)। यदि उपयोगकर्ता-आईडी पहले से ही 0 (रूट) है, जैसे कि जब निष्पादित किया sudoजाता है, तो इसके लिए कुछ भी नहीं होता है, इसलिए यह केवल शेल निष्पादित करता है। आप ऐसा करके एक समान प्रभाव प्राप्त कर सकते हैं sudo bash
फेक नेम

1
@FakeName अभी भी भ्रमित है। रूट के रूप में लॉग इन करने और 'सुडो सु' चलाने में क्या अंतर है? क्या यह समान रूप से प्रभावी नहीं है?
कोलब कैन्यन

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

14

आपके पास दो विकल्प हैं। पहला उपयोग करने के लिए है sudo -s- यह आपको सुपरयूज़र एक्सेस देगा, लेकिन आप अभी भी 'अपने आप' (बोलने के लिए) बने रहेंगे, इसलिए जैसी चीजें ~अभी भी आपके घर की निर्देशिका होंगी। वैकल्पिक रूप से, आप उपयोग कर सकते हैं sudo su, जो आपको अपने मैक के वास्तविक रूट उपयोगकर्ता के रूप में एक शेल देता है।


5
Apple वे (tm) sudoकमांड को चलाने के लिए उपयोग करने के लिए है, जिसके लिए एलिवेटेड विशेषाधिकारों की आवश्यकता होती है, न कि एक रूट शेल पर स्विच करने और उससे काम करने के लिए।
इयान सी

3
@ इयान सी - नहीं, यह वास्तव में यूनिक्स तरीका है। Apple सिर्फ इसका उपयोग करता है क्योंकि यह * nix आधारित भी है।
नकली नाम

@ फ़ेक नाम: ऐप्पल ने उपयोगकर्ताओं को रूट शेल को कभी भी बात नहीं करने या उजागर करने के लिए महान दर्द के माध्यम से जाना। आप कह सकते हैं कि वे sudoलोकाचार को चरम पर ले जाते हैं । लेकिन जो भी हो: शब्दार्थ। OS X में रूट गोले का उपयोग न करें
Ian C.

1
@ इयान सी - Apple * nix डिजाइनरों की तुलना में बहुत अधिक नहीं करता है, Apple अभी इसके बारे में ज्यादा बात नहीं करता है। दोनों ही मामलों में, यह वहां है, केवल लिनक्स जैसी चीजों के साथ, वे आपको आसानी से उपयोग करने का तरीका बताते हैं। यदि वह इसे अधिक व्यापक रूप से उपयोग करता है, तो यह अंतर्निहित वास्तुकला अंतर को इंगित नहीं करता है।
फर्जी नाम

1

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


1

मुझे लगता है कि आप इसे "सामान्य" उपयोगकर्ता के रूप में नहीं कर सकते ...

यदि व्यवस्थापक अधिकारों के साथ कोई अन्य उपयोगकर्ता खाता है, तो आपको इसका उपयोग करना होगा

restricted user$ su
Password:(the root password here)
Sorry!

restricted user$ su - (an admin account here)
password:(the admin account password)
$ su - root
Password:(The root password here)
# -> You are root user now

1

आधुनिक समाधान: sudo -u

दूसरे उपयोग के रूप में चलाने के लिए, का उपयोग करें sudo -u

उदाहरण के लिए, नैनो जैसे टेक्स्ट-एडिटर को चलाने के लिए :

sudo -u someuser nano

… और संकेत मिलने पर अपना मैक एडमिन यूजर पासवर्ड डालें। इस समय, यह आपका मैक एडमिन उपयोगकर्ता है, जो उपयोगकर्ता को आमंत्रित कर रहा है sudo, न कि someuserइसलिए कि आप someuserपासवर्ड दर्ज नहीं करते हैं।

  • sudo सुपरसुसर विशेषाधिकारों का उपयोग करके कुछ चलाने का मतलब है।
  • -u "इस निर्दिष्ट उपयोगकर्ता के रूप में एक निर्दिष्ट कमांड चलाएं"।
  • someuser अपने वांछित उपयोगकर्ता नाम के साथ प्रतिस्थापित किया जाना चाहिए।

किसी विशेष उपयोगकर्ता के रूप में एक प्रारंभिक लॉगिन अनुकरण करने के लिए, जिसमें उनकी स्टार्टअप स्क्रिप्ट चल रही हैं, उपयोग करें -I

sudo -u someuser -i nano

यह nanoएप्लिकेशन को उपयोगकर्ता के रूप में चलाता है, someuserलेकिन केवल उस उपयोगकर्ता के लिए स्टार्टअप स्क्रिप्ट चलाने के बाद।

यदि हम चलाने के लिए कोई कमांड या ऐप निर्दिष्ट नहीं करने का विकल्प चुनते हैं, तो हमें उस उपयोगकर्ता के रूप में एक इंटरैक्टिव शेल प्राप्त होता है।

sudo -u someuser -i

पुराना स्कूल: sudo su someuser

एक अन्य दृष्टिकोण के suसाथ संयोजन में कमांड का उपयोग करता है sudosuआदेश "स्विच उपयोगकर्ता" का अर्थ है।

sudo su someuser

या, उपयोगकर्ता की स्टार्टअप स्क्रिप्ट को चलाने के लिए, हाइफ़न जोड़ें।

sudo su - someuser

root उपयोगकर्ता

rootयूनिक्स संबंधित ऑपरेटिंग सिस्टम में उपयोगकर्ता कुछ भी करने को पूर्ण शक्ति है।

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

यदि आवश्यक हो, तो आप उपयोगकर्ता को macOS में सक्षम कर सकते हैंroot और फिर उस उपयोगकर्ता पर स्विच कर सकते हैं। यह दृढ़ता से हतोत्साहित किया जाता है। मैं एक हताश अंतिम उपाय के रूप में केवल इस रास्ते पर जाऊंगा।


MacOS पर Postgres डेटाबेस सिस्टम postgresचलाने वाले उपयोगकर्ता के संदर्भ में इसकी चर्चा के लिए , बहन साइट, DBA स्टैक एक्सचेंज पर यह प्रश्न देखें ।

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