नए बनाए गए उपयोगकर्ता खाते में प्रवेश नहीं कर सकते


25

अपने नए बनाए गए खाते में खातों को स्विच करने की कोशिश कर रहा हूं मुझे एक काली स्क्रीन मिलती है और फिर सही पासवर्ड दर्ज करने के बाद यह मुझे मुख्य लॉगिन स्क्रीन पर वापस ले जाता है।

मेरे पहले से मौजूद खाते में प्रवेश करने पर मुझे:

"System Program Problem Detected"

Details:

Executable path /usr/bin/Xorg

Package: xserver-xorg-core 2:1.11.4-0ubuntu10.1

Details: Crash
... (tons more, but no way to copy paste or save)

जब मैं सु करने की कोशिश करता हूं

su -l penner

मुझे मिला:

No directory, logging in with HOME=/

मैंने मैन्युअल रूप से होम डायरेक्टरी बनाई है और यह त्रुटि दूर हो जाती है लेकिन फिर भी लॉगिन में कोई भाग्य नहीं है। उपयोगकर्ता निर्माण के साथ कुछ गलत हो गया है? यह कैसे सही हो सकता है?


आपने उपयोगकर्ता खाता कैसे बनाया? क्या आपने इसे गुई से, या कमांड लाइन से किया था? यदि आप इसे कमांड लाइन से करते हैं, तो आपको यह पता होना चाहिए कि एड्यूसर और यूजरपैड चीजों को बहुत अलग तरीके से करते हैं। इसके अलावा, यह थोड़े से लगता है जैसे / etc / skel की फ़ाइलों को कॉपी नहीं किया गया था। क्या आप कृपया अपने होम डायर पर और नए उपयोगकर्ता के डीआर पर ls -al कर सकते हैं ताकि हम देख सकें कि क्या हो रहा है?
सुपरमैट

जवाबों:


31

यदि आपने उपयोगकर्ता खाता बनाया है useradd, तो आपको इसके लिए सब कुछ मैन्युअल रूप से सेट करना होगा। यही कारण है कि, कमांड-लाइन से उपयोगकर्ता खाते बनाते समय, इसके adduserबजाय उबंटू (और डेबियन, और अन्य डेबियन-आधारित सिस्टम) में उपयोग करने की सिफारिश की जाती है । आप केवल उपयोगकर्ता को इसके साथ हटाना userdelया deluserइसे फिर से बनाना चाहेंगे adduser। अन्यथा...

होम निर्देशिका स्थान फिक्सिंग

यदि आप उपयोगकर्ता खाता रखना चाहते हैं और समस्या को ठीक करना चाहते हैं, तो आपको देखने की आवश्यकता है:

  • उपयोगकर्ता निर्देशिका के लिए होम निर्देशिका का नाम वास्तव में कॉन्फ़िगर किया गया है
  • आपके द्वारा बनाई गई निर्देशिका का नाम

ये बिल्कुल एक जैसे होने चाहिए। आपको मिलने वाला त्रुटि संदेश आपको su -l pennerबता रहा है कि वे समान नहीं हैं।

होम निर्देशिका उपयोगकर्ता खाते वास्तव में के लिए कॉन्फ़िगर किया गया है की जाँच करने के लिए, इस आदेश चला (देखें man 5 passwdऔर man grepअधिक जानकारी के लिए):

grep penner /etc/passwd

आपको इस तरह से एक लाइन देखनी चाहिए:

penner:x:1000:1000:Eliah Kagan,,,:/home/penner:/bin/bash

यही है, छठी- :छिन्न क्षेत्र (पांचवें के बाद :) में घर की निर्देशिका शामिल है। यदि यह नहीं है /home/penner, तो यह होना चाहिए। यदि उपयोगकर्ता के लिए आपके द्वारा बनाई गई निर्देशिका नहीं है /home/penner, तो यह भी होना चाहिए। यदि दो निर्देशिकाएं समान हैं, लेकिन दोनों में से कोई एक नहीं है /home/penner, तो वह सैद्धांतिक रूप से काम कर सकती है, लेकिन आपको उन दोनों को बनाना चाहिए /home/penner, क्योंकि बहुत सारे सॉफ्टवेयर मानते हैं कि सभी गैर- rootउपयोगकर्ता निर्देशिकाएं हैं ।/home/username

आप इस कमांड को चलाकर pennerघर की निर्देशिका बदल सकते हैं /home/penner:

sudo usermod -d /home/penner penner
  • man usermodअधिक जानकारी के लिए देखें ।

यह सुनिश्चित करना एक निर्देशिका है, और यह कि उपयोगकर्ता के पास पहुँच है

यदि (या एक बार) नाम दोनों हैं /home/penner, तो आपको यह भी सुनिश्चित करना चाहिए कि उपयोगकर्ता की अपनी घर निर्देशिका तक पहुँच हो। चलाएँ:

ls -ld /home/penner

आपको कुछ ऐसा दिखना चाहिए जो ऐसा दिखता है (हालाँकि तारीख और समय अलग होगा):

drwxr-xr-x 43 penner penner 4096 2012-07-03 06:41 /home/penner

यदि इसके बजाय drwxr-xr-x, आपके पास कुछ ऐसा है जो इसके बजाय शुरू होता -है d, तो आपने एक निर्देशिका के बजाय एक फ़ाइल बनाई। फ़ाइल को हटा दें और इसके बजाय एक निर्देशिका बनाएं।

यदि पहले के बजाय pennerआपके पास कुछ और है, तो उपयोगकर्ता अपनी होम डायरेक्टरी के मालिक नहीं हैं, इसलिए उन्हें अपना बनाएं:

sudo chown penner /home/penner
  • man chownअधिक जानकारी के लिए देखें ।

यदि इसके बजाय drwxr-xr-xअगले तीन वर्णों में डैश हैं d, तो उपयोगकर्ता की वहां पूरी पहुंच नहीं है। इसे निम्नानुसार ठीक करें:

sudo chmod u+rwx /home/penner
  • man chmodअधिक जानकारी के लिए देखें ।

( pennerइस आदेश चलाने में सक्षम है अगर वे अपने घर निर्देशिका के मालिक हैं, इसलिए यदि आप चाहें, तो आप के रूप में इस चला सकते हैं: sudo -u penner u+rwx /home/penner)

अन्य उपयोगकर्ताओं को सुनिश्चित करना है कि कंबल लिखने की पहुंच नहीं है

यदि इसके बजाय drwxr-xr-x, पिछले छह अक्षरों में wएस के बजाय -एस हैं, तो इसके अलावा उपयोगकर्ताओं के pennerपास pennerघर की निर्देशिका तक पहुंच हो सकती है । यह खतरनाक है (जब तक आप वास्तव में नहीं जानते कि आप क्या कर रहे हैं और इसे इस तरह से चाहते हैं और चीजों को सेट किया है तो यह समस्या नहीं होगी)। ठीक करना:

sudo chmod -R go-w /home/penner

अन्य चूक

कुछ अन्य बदलाव हैं जिन्हें आप करना चाहते हैं। उबंटू में डिफ़ॉल्ट रूप से (अर्थात, यदि आप adduserएक ग्राफिकल टूल के साथ या उसके साथ एक उपयोगकर्ता खाता बनाते हैं , जो आपने नहीं किया है):

  1. होम निर्देशिकाओं ने सभी के लिए अनुमतियों को पढ़ा और लिखा है, न कि केवल उनके स्वामित्व वाले उपयोगकर्ता के लिए। उपयोगकर्ता इसे बदल सकते हैं, या तो पूरे होम डायरेक्टरी के लिए या इसके अंदर किसी भी फाइल और उपनिर्देशिका के लिए। लेकिन अगर आप यह डिफ़ॉल्ट चाहते हैं, और आपके पास दूसरा और तीसरा rऔर xइन drwxr-xr-x, रन नहीं है:

    sudo chmod 755 /home/penner
    

    ( pennerइस आदेश चलाने में सक्षम है अगर वे अपने घर निर्देशिका के मालिक हैं, इसलिए यदि आप चाहें, तो आप के रूप में इस चला सकते हैं: sudo -u penner chmod 755 /home/penner)

  2. प्रत्येक उपयोगकर्ता का अपना समूह होता है, उपयोगकर्ता के समान नाम के साथ, और यह उपयोगकर्ता का प्राथमिक समूह होता है। उनके घर की निर्देशिका इस समूह के स्वामित्व में है। दूसरे के अर्थ pennerमें है drwxr-xr-x 43 penner penner 4096 2012-07-03 06:41 /home/penner। इस डिफ़ॉल्ट को तोड़ना ठीक है, यदि आप जानते हैं कि आप क्या कर रहे हैं । लेकिन अगर यह चीजों को अलग तरीके से करने का आपका इरादा नहीं है, तो आपको यह सुनिश्चित करना चाहिए कि pennerउपयोगकर्ता के लिए कुछ संभावित प्राथमिक समूह पहचानकर्ता, या उपयोगकर्ता के होम डायरेक्टरी पर समूह के मालिकों को सुरक्षा समस्याओं का सामना करना पड़ सकता है।

    भागो groups penner। ( man groupsअधिक जानकारी के लिए देखें ।) आपको कुछ इस तरह से देखना चाहिए:

    penner : penner adm dialout cdrom plugdev lpadmin sambashare
    

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

    sudo usermod -g penner penner
    

    यदि आपको यह कहते हुए एक त्रुटि मिलती है कि समूह pennerमौजूद नहीं है, तो आपको इसे इस कमांड के साथ बनाना होगा (और फिर उपरोक्त कमांड को फिर से चलाना होगा):

    sudo addgroup penner
    
    • man addgroupअधिक जानकारी के लिए देखें । (यदि आप चाहें, तो आप वैकल्पिक रूप groupaddसे समूह बनाने के लिए कमांड का उपयोग कर सकते हैं।)
  3. जब आप दौड़ते हैं groups penner, तो आप मेरे से बहुत कम समूहों की सूची प्राप्त कर सकते हैं penner : penner adm dialout cdrom plugdev lpadmin sambashare। डेस्कटॉप उपयोगकर्ताओं के लिए, adm, dialout, cdrom, plugdev, lpadmin, और sambashareक्षमताओं डेस्कटॉप उपयोगकर्ताओं को आम तौर पर होना चाहिए कि प्रदान करते हैं। इसलिए, जब तक आपके पास अन्यथा करने का कोई कारण नहीं है, pennerइन समूहों में होना चाहिए। हालाँकि, ये प्राथमिक समूह नहीं हैं , इसलिए इन्हें अलग तरह से सेट किया जाता है। मान pennerलेना इन समूहों में से किसी में नहीं है और आप pennerउन सभी में रहना चाहते हैं, इस कमांड को चलाएं:

    sudo usermod -a -G adm,dialout,plugdev,lpadmin,sambashare penner
    

    यदि आप रुचि रखते हैं, तो यहां उन सभी समूहों का मतलब है:

    (स्रोत: विशेषाधिकार , उबंटू प्रलेखन विकी में।)

उपयोगकर्ता को व्यवस्थापक बनाना

यदि आप pennerएक प्रशासक नहीं बनना चाहते हैं , तो आपको शायद कुछ और करने की आवश्यकता नहीं है। यदि pennerआप एक व्यवस्थापक हैं, तो आप देख सकते हैं groups penner। यदि न तो सूचीबद्ध है adminऔर न ही कोई प्रशासक है।sudopenner

यदि आप pennerएक व्यवस्थापक बनना चाहते हैं , तो pennerइनमें से जो भी मौजूद है , उसमें जोड़ें । (आप pennerदोनों को जोड़ सकते हैं , यदि वे दोनों मौजूद हैं।) आप इन दोनों आदेशों को अलग-अलग चलाकर पूरा कर सकते हैं - यदि कोई भी सफल होता है, तो आपने pennerएक प्रशासक बनाया है :

sudo usermod -a -G admin penner
sudo usermod -a -G sudo penner
  • दो समूहों के कारण, उबंटू 12.04 एलटीएस से पहले, प्रशासक adminसमूह में थे । Ubuntu 12.04 LTS से शुरू होकर, प्रशासक sudoसमूह में हैं। लेकिन यदि आपका 12.04 LTS सिस्टम पिछली रिलीज़ से अपग्रेड किया गया है (और यह बाद में Ubuntu रिलीज़ पर लागू होना चाहिए, जैसे कि 12.10 जब यह बाहर आता है, जो Ubuntu 11.10 या उससे पहले से अपग्रेड किया जाता है), तो बैकवर्ड संगतता के लिए, प्रशासक दोनों के सदस्य हैं sudoऔर admin। आम तौर पर, अगर इनमें से कोई एक समूह प्रशासनिक क्षमताओं को प्रदान नहीं करता है, तो यह बस अस्तित्व में नहीं है, इसलिए उपरोक्त दोनों कमांड (अलग-अलग, जैसा नहीं sudo usermod -a -G admin,sudo penner) चल रहा है, आमतौर पर एक pennerव्यवस्थापक बनाने के लिए एक सुरक्षित और प्रभावी तरीका है ।

धन्यवाद! Adduser जैसा कुछ अच्छा है, लेकिन मुझे यह जानना पसंद है कि चीजों को मैन्युअल रूप से कैसे करना है। बहुत गहन उत्तर! मैं वास्तव में इसकी प्रशंसा करता हूँ।
पेन

sudo chmod u+a /home/pennerUbuntu 16.04 (Xenial) पर एक त्रुटि देता है। है sudo chmod u+rw /home/pennerएक उचित प्रतिस्थापन?
निकोलाई लेसचोव

@NickolaiLeschov इस बारे में क्षमा करें - और त्रुटि को इंगित करने के लिए धन्यवाद! मैंने कमांड तय कर ली है।
एलियाह कगन

यह सिर्फ गूंगा है, useraddफिर क्यों नहीं हटाया ? यादृच्छिक टूट कोड रखने
dashesy

1
@dashesy धन्यवाद - मुझे पता नहीं था कि useraddउबंटू पर समस्याओं का उपयोग करने के कारण यह अन्य प्रणालियों पर नहीं होता है। मेरे 16.04 सिस्टम पर, /etc/default/useradd(इसकी एकमात्र अप्रमाणित रेखा के रूप में) SHELL=/bin/sh, और useradd (8) यह कहता प्रतीत होता है कि SHELLयदि -s/ --shellध्वज नहीं दिया गया है, तो वहां मूल्य का उपयोग किया जाता है, लेकिन मेरी 16.04 प्रणाली पर ऐसा नहीं होता है। मैं इतनी जल्दबाजी में कहना गलत था कि उबंटू useraddटूटा नहीं है। अब मुझे इतना यकीन नहीं है। शायद फेडोरा और डेबियन (और उबंटू) के बीच इस अंतर का एक अच्छा कारण है ... लेकिन मैंने अपनी टिप्पणी को हटा दिया है ताकि लोगों को गुमराह न करें।
एलियाह कगन

0

यह ज्यादातर तब होता है जब आप उपयोगकर्ता के लिए घर निर्देशिका बनाने के बिना बनाते हैं। उपयोगकर्ता बनाते समय इस कमांड का उपयोग करके इसे हल किया जा सकता है

useradd -m the_username

-M झंडा वह है जो उपयोगकर्ता के लिए होम डायरेक्टरी बनाता है। उपयोगकर्ता जाँच बनाने के बाद यदि होम निर्देशिका उस उपयोगकर्ता के लिए मौजूद है

ls /home

यदि आप उस उपयोगकर्ता नाम को वहां सूचीबद्ध कर सकते हैं, तो अंतिम कार्य उस उपयोगकर्ता को एक पासवर्ड प्रदान करना है

passwd the_username

अब आप उस उपयोगकर्ता नाम और पासवर्ड के साथ लॉगिन कर सकते हैं


-1

ctrl + alt + f1 और वहां लॉगिन करें और रन करें

sudo chown -R $ USER: $ USER $ HOME

फिर ctrl + alt + f7 दबाएं और लॉगिन करने की कोशिश करें

यह काम करेगा

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