टर्मिनल में गैर-रूट उपयोगकर्ता के रूप में लॉगिन करें


18

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

मैंने कोशिश की

su -- username

और फिर पासवर्ड में कीपिंग, यह कोई त्रुटि उत्पन्न नहीं करता था, लेकिन मैंने कमांड प्रॉम्प्ट के कोई भी दृश्यमान बदलाव नहीं देखे, यह अभी भी myname @ hhost कहेगा। होम डाइरेक्टरी भी myname की थी, न कि नए लॉगिन की जो मैंने लॉगिन करने की कोशिश की थी।

मैं - जैसा कि अभी स्पष्ट है - लिनक्स / उबंटू में काफी अनुभवहीन है, इसलिए किसी भी जानकारी का स्वागत है।

जवाबों:


18

आप किस उपयोगकर्ता को बदलना चाहते हैं?

समस्या यह है कि आप एक ऐसे उपयोगकर्ता में "सु" करने की कोशिश कर रहे हैं जिसके पास कोई शेल नहीं है। अधिकांश उपयोगकर्ता जैसे कि mysql, पल्स इत्यादि, सिस्टम द्वारा निर्मित या कुछ संकुल द्वारा जब आप सॉफ्टवेयर स्थापित करते हैं तो शेल असाइन नहीं किया जाता है।

आप यह देख सकते हैं कि किसी उपयोगकर्ता के पास /etc/passwdफ़ाइल देखकर असाइन किया गया है , बस प्रत्येक उपयोगकर्ता की पंक्ति के अंत में देखें, अगर यह कहता /bin/falseहै कि इसका अर्थ है कि उसके पास कोई शेल असाइन नहीं है, अगर उसके पास कुछ ऐसा है /bin/bashया कोई अन्य शेल, तो आप उस उपयोगकर्ता में "सु" करने में सक्षम होना चाहिए।

जब मैं कहता हूं "शेल असाइन किया गया" तो इसका मूल रूप से मतलब है कि इसमें "शेल एक्सेस" है

फिर भी यदि उपयोगकर्ता के पास शेल एक्सेस नहीं है, तो आप हमेशा उस उपयोगकर्ता के साथ कमांड निष्पादित कर सकते हैं

 sudo -u user command

यदि उपयोगकर्ता के पास शेल एक्सेस नहीं है, तब भी आप हमेशा उस उपयोगकर्ता को "sudo -u उपयोगकर्ता कमांड" के रूप में निष्पादित कर सकते हैं
सैम

संलग्न -s /bin/bashअपने को suआदेश या उपयोग chsh -u username -s /bin/bashएक उपयोगकर्ता के लिए खोल बदलने के लिए। सुरक्षा निहितार्थ से सावधान रहें।
gertvdijk

7

अगर आपके पास सूडो एक्सेस है तो मैं सुझाऊंगा

sudo su username -

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

हालांकि अगर आपके पास अन्य उपयोगकर्ता पासवर्ड हैं:

su username - बस ठीक काम करना चाहिए।

1 नोटिस - और यह अंत में है।


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

ठीक है, क्या उपयोगकर्ता आपके लॉग इन के रूप में लॉग इन करने की अनुमति है? आप उनके शेल को "सही" पर सेट करके लॉगिंग से अकाउंट को ब्लॉक कर सकते हैं और जैसा आप वर्णन करते हैं वैसा ही करेंगे। यह "अपाचे" और "एफ़टीपी" जैसे "सिस्टम" खाते पर बहुत उपयोग किया जा रहा है ताकि यहां पर जांच sudo cat /etc/passwdन करें। बस इसे नेत्रगोलक करें और सुनिश्चित करें कि उपयोगकर्ता के पास अपनी रेखा के अंतिम छोटे हिस्से के रूप में एक वास्तविक शेल है।
coteyr

1
साइड नोट, ऐसा करने का अधिक उचित तरीका "झूठी" के लिए एक शेल सेट करना है जो एक त्रुटि फेंक देगा। हालाँकि कुछ प्रणालियाँ और खाते अभी भी तकनीकी या छद्म सुरक्षा कारणों (वाना-हो-हैकर्स से बाहर न निकलने के कारण) के लिए सही उपयोग करते हैं
coteyr
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.