SSH लॉगिन पर बैश या ऑटो रन / बिन / बैश को कैसे ठीक करें


16

जब rootमेरे सर्वर में लॉगिंग के रूप में सब कुछ ठीक काम करता है, लेकिन जब मैं लॉग इन करता हूं myusernameतो बैश सही तरीके से काम नहीं कर रहा है।

लाइन के साथ शुरू होता है:

$ 

के बजाय

myusername@myserver:~$

और तीर कुंजी, टैब कुंजी, आदि जैसे सभी विशेष कुंजी काम नहीं करेंगे।

जब मैं टाइप bin/bashकरता हूं तो यह फिर से काम करता है, लेकिन मैं bin/bashलॉगिन पर समस्या या ऑटो रन को ठीक करना चाहता हूं । मैं इसे कैसे ठीक करूं?

ssh  bash 

जवाबों:


16

आपको सिर्फ अपना खोल बदलने की जरूरत है। उस उपयोगकर्ता के रूप में, चलाएं:

$ chsh -s /bin/bash

फिर साइन आउट करें और वापस अंदर जाएं।

ऐसा करने के बाद संकेत ऐसा नहीं लगता जैसा आप चाहते हैं, आपको अपने पर्यावरण के PS1 चर को फिर से शुरू करना होगा।


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

12

आपको अपना शेल बदलने की आवश्यकता है। कमांड चलाएं

chsh -s /bin/bash

फिर साइन इन करें।

हालांकि, सभी उपयोगकर्ताओं को अपने स्वयं के शेल को बदलने का अधिकार नहीं है। यदि आप sudoअपने उपयोगकर्ता नाम को chshकमांड के रूप में जोड़ने के लिए याद रखें

sudo chsh <username> -s /bin/bash

अन्यथा आप अनजाने में जड़ के लिए खोल को बदल देंगे।


निष्पक्ष बिंदु। उत्तर को थोड़ा बढ़ाया।
मिकेल का अंतिम संस्कार

मैं कोशिश करने के लिए बहुत भोला था: sudo chsh -s /bin/bashचूंकि मेरे उपयोगकर्ता के पास शेल बदलने की अनुमति नहीं थी। आपके उत्तर ने मुझे इसे हल करने में मदद की। धन्यवाद!
15

5

एक संभावित कारण यह है कि myusername का डिफ़ॉल्ट शेल बैश नहीं है।

आप अपने वर्तमान उपयोगकर्ता के शेल की जाँच कर सकते हैं:

  • echo ${SHELL}
  • echo $0

उपयोगकर्ता शेल को स्थायी रूप से बदलने के लिए man chsh , उदाहरण के लिए:

chsh -s /bin/bash

2

यदि आपका sudo उपयोगकर्ता पासवर्ड अक्षम है, तो आप /etc/passwdसीधे संपादित कर सकते हैं, वह रेखा खोज सकते हैं जहाँ आपका उपयोगकर्ता है और शेल पथ को इसमें बदलें /bin/bash

यहाँ / etc / passwd प्रारूप की व्याख्या है ।


0

बस एक बात और जोड़ना चाहता था।

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

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