आप सभी USERS को बैश करने के लिए डिफ़ॉल्ट शेल कैसे बदलते हैं?


38

मैं अब से हर नए उपयोगकर्ता को डिफ़ॉल्ट रूप से उनके शेल के रूप में बैश करना चाहता हूं।

मुझे पता है कि बैश करने के लिए अपने स्वयं के शेल को बदलने के लिए, आप "chsh -s / bin / bash" कमांड का उपयोग करेंगे, लेकिन मैं डिफ़ॉल्ट रूप से सभी भावी उपयोगकर्ताओं के शेल को स्वतः कैसे सेट कर सकता हूं?

जवाबों:


63

उपयोगकर्ता जोड़ें

adduserचूक फ़ाइल है /etc/adduser.confDSHELLचर द्वारा निर्धारित डिफ़ॉल्ट शेल /bin/bashडिफ़ॉल्ट रूप से है।

useradd

सबसे अधिक संभावना है कि आपको इसकी आवश्यकता नहीं है क्योंकि उपयोगकर्तापैड एक बहुत ही निम्न-स्तरीय उपयोगिता है, और यह शायद ही कभी सीधे उपयोग किया जाता है।

यदि आप useradd का उपयोग करते हैं, तो /etc/default/useraddकंकाल फ़ाइल को संपादित करें (हालांकि एक बैकअप बनाने के लिए मत भूलना)।

इसके बजाय SHELLचर सेट करें ।/bin/bash/bin/sh

अब हर बार जब आप useraddएक नया उपयोगकर्ता जोड़ने के लिए उपयोग करते हैं bashतो स्वचालित रूप से उनका डिफ़ॉल्ट शेल होता है।

पहले से मौजूद उपयोगकर्ता

यदि आप पहले से मौजूद उपयोगकर्ताओं के शेल को बदलना चाहते हैं, तो आपको /etc/passwdफ़ाइल को संपादित करना होगा (कृपया सुनिश्चित करें कि बैक का बैकअप है)।

यहाँ स्तंभों का वर्णन है

  1. लॉगिन नाम
  2. वैकल्पिक एन्क्रिप्टेड पासवर्ड
  3. संख्यात्मक उपयोगकर्ता ID
  4. संख्यात्मक समूह आईडी
  5. उपयोगकर्ता नाम या टिप्पणी क्षेत्र
  6. उपयोगकर्ता घर निर्देशिका
  7. वैकल्पिक उपयोगकर्ता कमांड दुभाषिया

उस क्रम में कॉलन (:) इस तरह से अलग हो गए।

root:x:0:0:root:/root:/bin/bash

उस फ़ाइल के बारे में अधिक जानकारी के लिए मैन पेज देखें man 5 passwd


4
मुझे लगता है कि किसी अन्य उपयोगकर्ता के शेल को बदलने का एक सुरक्षित तरीका कुछ ऐसा होगा sudo -u $USER chsh -s $SHELL
जैक ओ'कॉनर

1
@ JackO'Connor आपको एक उत्तर के रूप में भी पोस्ट करना चाहिए।
ऑक्टेवियन डैमियन

यह Ubuntu 16.04 में काम नहीं कर रहा है। क्या किसी को फिक्स पता है।
हर्षदीप

26

जैसा कि ऑक्टेवियन ने कहा, चूक को बदलने का तरीका उस तरीके पर निर्भर करता है जिस तरह से आप उपयोगकर्ता बना रहे हैं। मैंने अभी-अभी अपनी सूक्ति सेटिंग्स के माध्यम से एक नया उपयोगकर्ता बनाने की कोशिश की है, और इसका अनुसरण करने का मन करता है /etc/default/useradd, ताकि आपकी सबसे अच्छी शर्त हो। मौजूदा उपयोगकर्ताओं के लिए, किसी अन्य व्यक्ति के लॉगिन शेल को बदलने का सबसे सुरक्षित तरीका हमारे पास है :

usermod -s /bin/bash $USERNAME

यदि आप जड़ नहीं हैं, तो आपको उसको सुडोल करना होगा। एक विकल्प यह है कि जिस उपयोगकर्ता को आप संशोधित करना चाहते हैं , उसमें sudo है और बस chsh चलाना है , जैसे:

sudo -u $USERNAME chsh -s /bin/bash

/etc/passwdहाथ से संपादन से बचने के लिए सबसे अच्छा है , क्योंकि वहां एक गलती सभी प्रकार की चीजों को तोड़ सकती है।


1

यदि आप वास्तव में सर्वर के सभी उपयोगकर्ताओं को बैश करना चाहते हैं (जो वास्तव में प्रश्न पूछा गया था), तो आप कमांड चला सकते हैं:

sudo dpkg-reconfigure dash

और फिर डैश नहीं चुनें। जैसा कि इस उत्तर में बताया गया है,

मैं कैसे / बिन / श बिंदु / बिन / बाश कर सकता हूं?

न केवल उस सेट को डिफॉल्ट शेल के रूप में सेट करता है, बल्कि श और मैन पेजों को सही ढंग से बताता है।

उम्मीद है की यह मदद करेगा।

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