ZSH को हटा दिया गया, फिर से खोला नहीं जा सकता


14

तो मैं स्थापित किया है zshऔर मैं इसे पसंद नहीं किया। तो मैंने कियाapt-get remove zsh

उस बिंदु से मैं पुन: जुड़ नहीं सकता, मैं अपने उपयोगकर्ता पर क्लिक करता हूं .. और फिर यह बस लॉगिन स्क्रीन पर वापस जाता है। मैं केवल साथ लॉगिन कर सकता हूं Guest session

मुझे लगता है कि समस्या का कारण है क्योंकि मेरे उपयोगकर्ता पर दोषपूर्ण शेल zsh है और यह अब मौजूद नहीं है ..

मैं अपने उपयोगकर्ताओं के गेस्ट शेल के लिए डिफ़ॉल्ट शेल के परिवर्तन के अतिथि सत्र से इसे कैसे पुनर्स्थापित कर सकता हूं?

यहां तक ​​कि ctrl+alt+f2/6मैं अपने उपयोगकर्ता और पासवर्ड के साथ लॉग इन करने की कोशिश कर रहा हूं। लॉगिन सफलता है लेकिन मैं वापस लॉगिन में फेंक दिया।

कोई विचार?


एक दूसरे विचार पर शेल की समस्या की कोई संभावना नहीं थी। डीएम द्वारा लोड किए जाने से पहले डीएम को लोड किए जाने के बाद कोई उपयोगकर्ता शेल नहीं दिया गया है (और शायद यह समस्या भी नहीं होगी)। और मुझे यकीन नहीं है कि ~/.bashrc- ~/.profileलूप के बारे में या तो: मैंने उपयोगकर्ता के शेल को शुद्ध करने और वीएम में ~/.bashrc- ~/.profileलूप बनाने दोनों का परीक्षण किया है और मैं हमेशा लाइटएमडी के माध्यम से लॉगिन करने में सक्षम रहा हूं, हालांकि मैं लॉगिन नहीं कर पाया हूं के साथ कंसोल के माध्यम से ~/.bashrc- ~/.profileपाश (लेकिन फिर भी, LightDM बजाय काम)। किसी भी मामले में आपको मेरा जवाब अस्वीकार करना चाहिए।
कोस

जवाबों:


16

किसी अन्य उपयोगकर्ता के शेल को बदलने के लिए अतिथि उपयोगकर्ता को चलाने की अनुमति नहीं दी गई है , जो sudoया pkexec(जब तक आप रूट नहीं हैं, जो आप नहीं हैं)।

इसलिए मेरे पास होने वाला एकमात्र समाधान रूट शेल में बूट हो रहा है और उपयोगकर्ता के शेल को रूट के रूप में बदल रहा है:

chsh -s /bin/bash user

userआपके उपयोगकर्ता का उपयोगकर्ता नाम कहां है


एक आश्चर्य है कि आप इसे कैसे ठीक करते हैं जब रूट का खोल भी zsh है ... LiveCD?
केविन

@ केविन यह उत्तर गलत है। शेल का डीई में लॉग इन न होने से उपयोगकर्ता को कोई असर नहीं पड़ता है, क्योंकि डीएम द्वारा लोड किए जाने के बाद कोई भी उपयोगकर्ता शेल को लोड नहीं किया जाता है। मुझे नहीं पता कि अगर कोई बेहतर विकल्प है तो एक ही तरह से खुद को लॉक करने का प्रबंधन करता है, लेकिन मुझे लगता है कि लाइव डीवीडी का उपयोग /etc/passwdकरना और मैन्युअल रूप से काम करना चाहिए।
कोस

4
@ केविन संभवतः जैसे बूट विकल्प के साथ init=/bin/bash
user253751

2

रूट या बूट के रूप में रूट शेल में लॉगिन करें और शेल प्रविष्टि को / etc / passwd में "/ bin / sh" में संपादित करें। फिर आप स्वयं के रूप में फिर से लॉगिन कर सकते हैं और वहां से चीजों को बदल सकते हैं।


1

तो इसके अलावा @kos ने क्या कहा ..

किसी कारण के लिए मैंने source ~/.profileअपनी .bashrc फ़ाइल में जोड़ा (पता नहीं क्यों .. इसे कहीं पढ़ें) और मेरी .profileफ़ाइल लोड हो रही है .bashrcजिसके कारण परिपत्र लोड हो रहा है।

source..+ @Kos सॉल्यूशन निकाल कर किया ट्रिक!


लिनक्स डेस्कटॉप में टूटी हुई .profile-for-env-var और एक-प्रति-लॉगिन सामान / .bashrc-for-aliases प्रतिमान है। आप कभी कभी जरूरत env काम करने के लिए सामान के लिए सेट वार्स के बाद से, मैं क्यों एक सोच सकते हैं यह करने के लिए एक अच्छा विचार है देख सकते हैं source ~/.profileसे .bashrc। (डेस्कटॉप सत्र में प्रवेश करने से सत्र के सभी बच्चों के लिए env var सेट करने के लिए आपकी प्रोफ़ाइल स्रोत नहीं हो सकती है।)
पीटर कॉर्डेस

1

जिनके लिए zsh की स्थापना रद्द करने से समस्या है। इस कदम का पालन करें।

  1. रिकवरी मोड के माध्यम से रूट के रूप में लॉगिन करें। आप इस जवाब पर इसे कैसे कर सकते हैं। /ubuntu//a/92558/104228
  2. आप रूट के रूप में लॉग इन करने के बाद। खोलो /etc/passwd। से अपने उपयोगकर्ता प्रवेश और परिवर्तन का पता लगाएं /usr/bin/zshकरने के लिए /bin/sh। फ़ाइल को सहेजें और सामान्य चरण के रूप में रिबूट करें। आपको सामान्य रूप से लॉग इन करना चाहिए।
  3. आपके ubuntu को रिबूट करने के बाद। आप पाएंगे कि आपका खोल बहुत बुरा लग रहा है। यह आदेश चलाएँ chsh -s /bin/bash। अपना पासवर्ड टाइप करें और एंटर करें। आप अभी अच्छा देखेंगे।
  4. sudo apt-get purge --auto-remove zshZsh के अन्य निर्भरता पैकेज को साफ़ करने के लिए टाइप करें।

मुझे उम्मीद है कि यह कदम एक और मदद करेगा जिनके पास मेरे जैसी ही समस्या है।

पुनश्च। मेरी अंग्रेजी प्राथमिक भाषा नहीं है। मुझे आशा है की तुम मुझे समझोगे।

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