मैं डोमेन खाते पर अपना डिफ़ॉल्ट शेल कैसे बदलूं


13

मैं अपने लैपटॉप पर लॉग इन करने के लिए एक सांबा 4 डोमेन खाते का उपयोग करता हूं। मैं कोशिश करना चाहता था zsh, लेकिन जब से मेरे उपयोगकर्ता में निवास नहीं करता है /etc/passwdमैंने पाया कि chshमेरा उपयोगकर्ता नहीं मिल सकता है। क्या कोई मुझे सलाह दे सकता है कि मैं कैसे बदल सकता हूं login_shell?

मैं अपने में कुछ भी नहीं देख सका ldap.conf, nssswitch.confया इसमें कुछ भी /etc/pam.dमदद नहीं मिली ...

डोमेन नियंत्रक को देखकर मुझे लगा कि शायद मैं सांबा-टूल का उपयोग कर सकता हूं, लेकिन मैंने मदद में ऐसा कुछ नहीं देखा जिसने मुझे सही दिशा में इशारा किया ...

जवाबों:


24

मैंने Freenode के #suse चैनल में इस बारे में पूछा, और मिकू ने अरुल के समान सुझाव दिया, हालाँकि, उन्होंने दो चीजों का उल्लेख किया, अगर मैं एक विंडोज़ डोमेन का उपयोग कर रहा था तो मैं लॉगिनशेल विशेषता सेट कर सकता था।

अफसोस की बात है, मैं एक सांबा डोमेन पर हूं, ताकि मदद नहीं मिली। लेकिन उनका अंतिम सुझाव सही था, का आउटपुट प्राप्त करें:

getent passwd USERNAME

इसमें आपके उपयोगकर्ता के लिए / etc / passwd के बराबर मान्य प्रविष्टि होगी, इसे लें, इसे / etc / passwd में पेस्ट करें और जिस शेल का आप उपयोग करना चाहते हैं उसके मान्य पथ के अंत में शेल को अपडेट करें। इस तरह से यह सभी उपयोगकर्ताओं के लिए इसे परिवर्तित नहीं करता है, और आप यह सुनिश्चित कर सकते हैं कि शेल उस मशीन पर है जिसे आप परिवर्तन करने से पहले इसे कॉन्फ़िगर कर रहे हैं।


आप कॉपी और पेस्ट करने के लिए नहीं करना चाहते हैं, तो आप उपयोग कर सकते हैं: getent passwd `id -un` | sudo tee -a /etc/passwd। सुनिश्चित नहीं है कि यह सभी गोले में काम करता है लेकिन कम से कम बाश और tcsh ठीक है।
टॉम सालेबा

Windows AD डोमेन से जुड़े RHEL 7 बॉक्स पर ऐसा करने से मुझे सर्वर से तब तक लॉक होना पड़ता है जब तक कि लाइन को / etc / passwd फ़ाइल से हटा नहीं दिया जाता ...
Taegost

@Taegost की जानकारी के लिए धन्यवाद, मैंने RHEL
Rumbles

5

मैं वास्तव में एक ही मुद्दा था। चूंकि मेरे डोमेन की सभी मशीनों में zsh स्थापित नहीं है, और चूंकि मैं सभी उपयोगकर्ताओं को प्रभावित नहीं करना चाहता था, इसलिए मैंने अपने .ashrc में डाल दिया।

if [ -x /usr/bin/zsh ]; then
  echo 'starting zsh'
  # export SHELL=/bin/zsh #edit: this is probably not what you want, see the comment.
  exec /usr/bin/zsh
fi

यह अयोग्य हो सकता है, लेकिन कम से कम यह काम हो जाता है।


मेरे काम पर कोई हाल ही में कुछ ऐसा कर रहा था, उसके पास अपनी .zshrc फ़ाइल को लोड नहीं करने की विधि के साथ समस्या थी। मुझे नहीं पता कि क्या आपका तरीका उस संबंध में काम करेगा, क्या आपने इसकी कोशिश की है? इसके अलावा, आपका शेल वैरिएबल आपके zsh बिन के पथ के समान नहीं है, क्या यह सही है? मैंने इसे अपने पास करने की विधि को पासवार्ड फाइल में सेट करने के अपने तरीके को बदल दिया
रंबल्स

रुचिकर - मेरे .zshrc को सही ढंग से पढ़ा गया है। आपके दूसरे बिंदु के बारे में, इसे तैयार करने के लिए धन्यवाद, यह मेरी तरफ से गलती थी। यहाँ एक उत्तर के लिए देखें: unix.stackexchange.com/questions/330233/…
मैटेओ

वैसे यह निश्चित रूप से इसे करने का एक तरीका है, मैं अभी भी इसे / etc / passwd फ़ाइल में सेट करना पसंद करता हूं, जैसे कि मेरे स्वीकृत उत्तर के साथ, जैसे कि आप bash को आमंत्रित नहीं करते हैं, तो zash को bash के साथ लोड करें (प्लस मुझे लगता है कि यदि आप ctrl-D दबाते हैं आपका सेटअप आपको एक बैश शेल में गिरा दिया जाता है?) - यह उपयोगकर्ता को यह सुनिश्चित करने की आवश्यकता है कि आपके पास zsh स्थापित है और परिवर्तन करने के लिए एक व्यवस्थापक के लिए है
Rumbles

क्या शेल प्रक्रिया के साथ शेल प्रक्रिया को बदलने के लिए /usr/bin/zshउपयोग exec /usr/bin/zshकरने के बजाय, इसका उपयोग करना बेहतर नहीं होगा ? bashzsh
ट्रिप कैनेटिक्स

मुझे लगता है कि आप सही हो सकते हैं @TrippKinetics।
माटेयो जियानी

2

यदि आपके पास सांबा डोमेन कंट्रोलर कॉन्फिग को एडिट करने की सुविधा है, तो आप निम्नलिखित प्रॉपर्टी को सेट कर सकते हैं जो आपको smb.conf में शेल सेट करने की अनुमति देती है।

template shell    = /bin/zsh

निश्चित नहीं है कि अगर आप ऐसी मशीन में प्रवेश करते हैं, जिसमें zsh इंस्टॉल नहीं है (डिफ़ॉल्ट रूप से सभी डिस्ट्रोस ने zsh इंस्टॉल नहीं किया है), लेकिन मेरा अनुमान है कि यह डिस्ट्रो डिफॉल्ट शेल को आमंत्रित करेगा।

यदि आप इसे आज़माना चाहते हैं, तो एक उप-प्रकार प्राप्त करने के लिए बस zsh टाइप करें जो मुझे यकीन है कि आप पहले से ही जानते हैं।


धन्यवाद, लेकिन यह सभी उपयोगकर्ताओं को प्रभावित करेगा, न कि सिर्फ मेरा?
Rumbles

हां, यह एक वैश्विक पैरामीटर है जो सभी उपयोगकर्ताओं को प्रभावित करता है। इस मामले में, सभी उपयोगकर्ता जिन्होंने zshइंस्टॉल किए हैं। मुझे यकीन नहीं है कि आप इसे विशिष्ट उपयोगकर्ता तक सीमित कर सकते हैं, लेकिन मैं idmap uidपैरामीटर की जांच करूंगा जो आपको ऐसा करने की अनुमति दे सकता है।
अरुल सेलवन

धन्यवाद, लेकिन यह नहीं है कि मैं क्या कर रहा हूँ। मैं सभी को खोलना नहीं चाहता, मैं सिर्फ अपना खोल बदलना चाहता हूं। मैंने अपने स्थानीय smb.conf में इस सेटिंग को बदलने की कोशिश की और रिबूट करने के बाद इसका कोई असर नहीं हुआ
Rumbles
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.