Ubuntu 14.04: कमांड लाइन से बनाए गए नए उपयोगकर्ता में गायब विशेषताएं हैं


17

मैं bash कमांड लाइन से Ubuntu 14.04 LTS में एक नया उपयोगकर्ता बनाने का प्रयास कर रहा हूं। मैं निम्नलिखित आदेशों का उपयोग करता हूं:

sudo useradd -c "Samwise the Brave" sam    
sudo passwd sam    
Enter new UNIX password: hello-1234    
Retype new UNIX password: hello-1234    
passwd: password updated successfully

इस नए उपयोगकर्ता को बनाने के बाद, मुझे 3 मुद्दों का सामना करना पड़ा:

  1. मैं उपयोगकर्ता सैम का उपयोग करके उबंटू में प्रवेश करने में सक्षम नहीं हूं। जब भी मैं लॉग इन करता हूं, मुझे लॉगिन स्क्रीन पर वापस भेज दिया जाता है।

  2. जब मैं /etc/passwdफ़ाइल को देखता हूं, तो मैं देख सकता हूं कि उपयोगकर्ता सैम के लिए कोई डिफ़ॉल्ट गोले परिभाषित नहीं हैं:

    cat /etc/passwd | grep sam    
    sam:x:1003:1003:Samwise the Brave:/home/sam:
    
  3. सैम के घर फ़ोल्डर नहीं बनाया गया था, यानी /home/samमौजूद नहीं है।

इन सभी मुद्दों का क्या कारण हो सकता है?

मुझे यहां ध्यान देना चाहिए कि जब मैं एकता नियंत्रण केंद्र का उपयोग करके एक उपयोगकर्ता बनाता हूं, तो ये समस्याएं नहीं होती हैं। लेकिन मैं कमांड लाइन का उपयोग करने में सक्षम होना चाहूंगा क्योंकि मेरे पास बनाने के लिए दर्जनों उपयोगकर्ता हैं।

जवाबों:


29

पहले ध्यान दें कि यह एड्यूसर का उपयोग करना बेहतर है न कि यूजरड।

अब वापस अपने आदेश पर:

आपको निम्नलिखित तरीके से कमांड चलाना चाहिए:

sudo useradd -m -c "Samwise the Brave" sam  -s /bin/bash 

man useradd

  -s, --shell SHELL
           The name of the user's login shell. The default is to leave this
           field blank, which causes the system to select the default login
           shell specified by the SHELL variable in /etc/default/useradd, or
           an empty string by default.

 -m, --create-home
           Create the user's home directory if it does not exist. The files
           and directories contained in the skeleton directory (which can be
           defined with the -k option) will be copied to the home directory.

           By default, if this option is not specified and CREATE_HOME is not
           enabled, no home directories are created.

तो आप -sअपना लॉगिन शेल जोड़ने के लिए और -mअपना घर बनाने के लिए उपयोग करना याद करते हैं।

यदि आप एक ही समय में कई उपयोगकर्ता जोड़ना चाहते हैं, तो कमांड का उपयोग करना बेहतर है newusers। यह आपके कार्य को सरल करेगा।

man newusers

DESCRIPTION

   The newusers command reads a file of user name and clear-text password
   pairs and uses this information to update a group of existing users or
   to create new users. Each line is in the same format as the standard
   password file (see passwd(5)) with the exceptions explained below:

   pw_name:pw_passwd:pw_uid:pw_gid:pw_gecos:pw_dir:pw_shell

यहाँ कुछ ट्यूटोरियल newusersकमांड के बारे में :


मुझे "अज्ञात विकल्प मी" क्यों मिलता है? मैं AWS उबंटू इंस्टेंस पर 14.04 रन कर रहा हूं।
डोनाटो

2

उपयोगकर्ता बनाइये

उपयोगकर्ता की होम निर्देशिका बनाएँ

लॉगिन शेल को परिभाषित करें

useradd -m -d /home/username username -s /bin/bash

उपभोक्ता मिटायें

Deleter उपयोगकर्ता की होम निर्देशिका

userdel -r username

1

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


1

सबको धन्यवाद। आपके उत्तर के साथ मैं निम्नलिखित कमांड लाइनों का उपयोग करके समस्या को ठीक करने में सक्षम हूं।

sudo useradd -c "Samwise the Brave" -m -s /bin/bash sam
echo -e "hello-1234\nhello-1234" | passwd sam

पासवर्ड सेट है, passwdइसलिए यह पहले से ही एन्क्रिप्टेड है (अन्यथा "हैलो -1234" दिखाई नहीं देगा एन्क्रिप्टेड इन / वगैरह / पासवर्ड)।


0

आप useradd कमांड में झंडे गायब हैं। '-m' उपयोगकर्ता निर्देशिका बनाने के लिए, '-s / bin / bash' को बैश शेल जोड़ने के लिए। डिफ़ॉल्ट उपयोगकर्ता निर्देशिका बनाने और डिफ़ॉल्ट शेल असाइन करने के लिए नहीं है। मेरे सिस्टम ने यही काम किया जब मैंने इसका परीक्षण किया तो ऐसा लग रहा है कि ubuntu 14.04 डिफ़ॉल्ट शेल के रूप में रिक्त का उपयोग करता है। आप खोल नहीं सकते क्योंकि आपके पास कोई शेल नहीं है।

टर्मिनल में मौजूदा उपयोगकर्ता के लिए डिफ़ॉल्ट होम निर्देशिका बनाएं (प्रश्न 335961, तीसरा उत्तर)

Useradd के लिए Ubuntu Manpage से

   -s, --shell SHELL
       The name of the user´s login shell. The default is to leave this
       field blank, which causes the system to select the default login
       shell.

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

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