सवाल अपना यूज़रनेम किस तरह बदला जा सकता है?


कुछ समय पहले जब मैंने उबंटू स्थापित किया था, मैंने अपने खाते के लिए एक बेवकूफ उपयोगकर्ता नाम चुना है जिसे मैं अब और नहीं उपयोग करना चाहता हूं।

एप्लिकेशन के लिए सेटिंग खोए बिना मैं इसे कैसे बदलूं (मेरी होम निर्देशिका के नाम और टर्मिनल में नाम सहित)?
मैं विभिन्न प्रमाणीकरण (जैसे ईमेल, एसएसएच, जीपीजी और अधिक) के लिए अनुमतियां और मेरी कुंजी कैसे रखूं?
अगर मैंने अपना उपयोगकर्ता नाम बदल दिया तो क्या सेटिंग्स संभवतः खो सकती हैं?


262
2018-04-08 08:25


मूल




जवाब:


यूनिक्स की तरह ऑपरेटिंग सिस्टम उपयोगकर्ता पहचान से उपयोगकर्ता नाम को रद्द कर देते हैं, ताकि आप आईडी को प्रभावित किए बिना नाम सुरक्षित रूप से बदल सकें। सभी अनुमतियां, फ़ाइलें इत्यादि आपकी पहचान (यूआईडी) से जुड़ी हैं, न कि आपका उपयोगकर्ता नाम।

उपयोगकर्ता डेटाबेस के हर पहलू को प्रबंधित करने के लिए, आप इसका उपयोग करते हैं usermod उपकरण।

उपयोगकर्ता नाम बदलने के लिए (लॉग इन किए बिना ऐसा करना संभवतः संभव है):

sudo usermod -l newUsername oldUsername

हालांकि, यह घर फ़ोल्डर का नाम नहीं बदलता है।

घर फ़ोल्डर बदलने के लिए, उपयोग करें

sudo usermod -d /home/newHomeDir -m newUsername

उपयोगकर्ता नाम बदलने के बाद।

उदाहरण के लिए, आप लॉगआउट कर सकते हैं, एक कंसोल पर ड्रॉप (Ctrl+ऑल्ट+एफ 1), तथा sudo su - सच रूट बनने के लिए (के विपरीत sudo -s, जहां $ HOME अभी भी / home / yourname है।) हो सकता है कि आपको पहले भी इस उपयोगकर्ता से कुछ चल रही प्रक्रियाओं को मारना पड़े। ऐसा करने के लिए, दर्ज करें ps -u username, मेल खाने वाले पीआईडी ​​की तलाश करें और उन्हें मार दें kill PID-number

अपडेट करें: जैसा कि बताया गया है, कुछ फाइलें आपकी पुरानी होम निर्देशिका का संदर्भ दे सकती हैं। आप या तो पिछड़ा संगतता, ई जी के लिए एक सिम्लिंक रख सकते हैं ln -s /home/newname /home/oldname या आप फ़ाइल सामग्री को बदल सकते हैं sed -i.bak 's/*oldname*/*newname*/g' *list of files* यह प्रत्येक फ़ाइल के लिए .bak एक्सटेंशन के साथ बैकअप बनाता है।

मेरे जैसे अनुभवी उपयोगकर्ताओं के लिए कुछ अतिरिक्त जानकारी:
चूंकि मेरे पास केवल एक उपयोगकर्ता खाता (व्यवस्थापक) है, तो यह मुझे उपयोगकर्ता नाम बदलने की अनुमति नहीं देगा ("आप पहले ही लॉग इन हैं" TTY1 में प्रतिक्रिया थी (Ctrl+ऑल्ट+एफ 1)। इसके चारों ओर पाने के लिए:

  1. अपने पुराने प्रमाण-पत्रों के साथ लॉगिन करें और एक नया उपयोगकर्ता जोड़ें, उदा। टीटीवी 1 में "अस्थायी"

    sudo adduser temporary
    

    पासवर्ड सेट करें।

  2. उपयोगकर्ता को सुडो समूह में जोड़कर अस्थायी उपयोगकर्ता को सुडो चलाने की अनुमति दें:

    sudo adduser temporary sudo
    
  3. आदेश के साथ लॉग आउट करें exit
  4. Tty1 पर वापस लौटें: 'अस्थायी' उपयोगकर्ता खाते और पासवर्ड से लॉगिन करें। उपरोक्त वर्णित अपना उपयोगकर्ता नाम और फ़ोल्डर बदलें। exit (जब तक आपको लॉगिन प्रॉम्प्ट नहीं मिलता)
  5. TTY7 पर वापस जाएं (Ctrl+ऑल्ट+F7) जीयूआई / सामान्य डेस्कटॉप स्क्रीन पर लॉगिन करने के लिए और देखें कि यह काम करता है या नहीं।
  6. अस्थायी उपयोगकर्ता और फ़ोल्डर हटाएं:

    sudo deluser temporary
    sudo rm -r /home/temporary
    

258
2018-04-08 08:48



यह दुर्भाग्य से $ HOME के ​​तहत विभिन्न कॉन्फ़िगरेशन फ़ाइलों के लिए सच नहीं है, ऐसा कुछ चलाने का प्रयास करें grep -IRFl /home/username ~ और आप देखेंगे कि आपकी होम निर्देशिका में कितने संदर्भ संग्रहीत किए जाते हैं। - arrange
एक साधारण फिक्स था - बस एकता में उपयोगकर्ता खाता संपादक का उपयोग करना पड़ा, इसके बाद पुनरारंभ करें। - Steve Koch
एन्क्रिप्टेड होम फ़ोल्डर वाले लोगों के लिए, आपको संपादित करना होगा /home/.ecryptfs/oldusername/.ecryptfs/Private.mnt अपने नए घर फ़ोल्डर को इंगित करने के लिए, अन्यथा आप एकता के माध्यम से लॉगिन नहीं कर पाएंगे। - raphael
sudo usermod -d /home/edge -m edge पैदावार: usermod: Directory /home/empedokles could not be renamed in /home/edge यानी चरण 4 काम नहीं करेगा। - empedokles
@JTC कभी नहीँ संपादित करें sudoers सादा के साथ nano। हमेशा उपयोग करें visudo। - styrofoam fly


इसे सब एक साथ रखने के लिए:

  1. स्टार्ट स्क्रीन प्रेस पर Ctrl+ऑल्ट+एफ 1
  2. अपने प्रयोगकर्ता नाम और पासवर्ड के साथ लॉग इन करें।
  3. "रूट" खाते के लिए पासवर्ड सेट करें।

    sudo passwd root
    
  4. लोग आउट।

    exit
    
  5. "रूट" खाते और पासवर्ड जिसे आपने पहले सेट किया है, का उपयोग करके लॉग इन करें।

  6. उपयोगकर्ता नाम और होम फ़ोल्डर को उस नए नाम पर बदलें जिसे आप चाहते हैं।

    usermod -l <newname> -d /home/<newname> -m <oldname>
    
  7. समूह नाम को उस नए नाम पर बदलें जिसे आप चाहते हैं।

    groupmod -n <newgroup> <oldgroup>
    
  8. "रूट" खाता लॉक करें।

    passwd -l root
    
  9. यदि आप ecryptfs (एन्क्रिप्टेड होम निर्देशिका) का उपयोग कर रहे थे। अपने एन्क्रिप्टेड निर्देशिका का उपयोग कर माउंट करें ecryptfs-recover-privateऔर संपादित करें <mountpoint>/.ecryptfs/Private.mnt अपनी नई होम निर्देशिका को प्रतिबिंबित करने के लिए।

  10. लोग आउट।

    exit
    
  11. दबाएँ Ctrl+ऑल्ट+F7

और अब आप अपने नए उपयोगकर्ता नाम का उपयोग कर लॉग इन कर सकते हैं।


90
2017-07-06 09:43



अगर बाद में usermod -l  आप एक मिलता है user <oldname> is currently used by process <processno>, आप उस प्रक्रिया (शायद एक डेमन, या tmux / स्क्रीन) का उपयोग कर सकते हैं ps aux | grep <processno>। हो सकता है कि आप उस प्रक्रिया को गहराई से रोकना चाहें, अन्यथा आप कर सकते हैं kill <processno>। - RedPixel
इस टिप्पणी को एक साथ रखने के लिए धन्यवाद। यह बहुत उपयोगी था। यद्यपि उल्लेख किया जा सकता है कि दो चीजें। चरण 4 के बाद मैंने रीबूट किया इसलिए मुझे चरण 6 पर त्रुटि संदेश नहीं मिलेगा। इसके अलावा, इस प्रक्रिया को पूरा करने के बाद, / etc / passwd फ़ाइल में पुराने उपयोगकर्ता नाम से मेल खाने वाली आईडी टिप्पणी होगी। इससे लॉगिन स्क्रीन पुराने लॉगिन नाम प्रदर्शित करने का कारण बन जाएगी। मुझे कमांड लाइन से इसे ठीक करने का एक अच्छा तरीका नहीं मिला, लेकिन मैंने इसे उपयोगकर्ता खाते में लॉग इन करके, खाता सेटिंग्स पर जाकर और उपयोगकर्ता नाम पर "लॉगिन नाम" बदलकर ठीक किया। इसने / etc / passwd फ़ाइल को अद्यतन किया और समस्या को ठीक किया। - Jibbers
यह करने के लिए यह सबसे आसान और मूर्ख साबित तरीका है। चरण 4 के बाद यह बेहतर रीबूट है क्योंकि @ जिबर्स ने सुझाव दिया था। - Yerke
मैं उल्लेख करता हूं कि "फ़ाइल ब्राउज़र विंडो में बुकमार्क" अब पुराने फ़ोल्डरों को इंगित कर रहे हैं, इसलिए मुझे उन बुकमार्क को हटाना होगा। - ollydbg23
काम नहीं करेगा यदि आप शुरुआत में Ctrl + Alt + F1 दबाते हैं तो यह नए बनाए गए उपयोगकर्ता में लॉग इन करने का प्रयास कर रहा है, जो इसकी अनुमति नहीं देगा। - empedokles


पुनर्प्राप्ति मोड में पुनरारंभ करें और रूट प्रॉम्प्ट खोल पर जाएं ("रूट शेल प्रॉम्प्ट पर ड्रॉप करें")

सबसे पहले रूट को याद करें

mount -o remount,rw /

उपयोगकर्ता नाम और घर फ़ोल्डर का नाम बदलने के लिए,

usermod -l <newname> -d /home/<newname> -m <oldname>

समूह के नाम के लिए,

groupmod -n <newgroup> <oldgroup>

24
2018-04-08 09:23



जब मैं उपयोग करता हूँ usermod -l <newname> -d /home/<newname> -m <oldname> यह मुझे त्रुटि देता है usermod: user oldusername is currently used by process 3170 और अगर मैं प्रक्रिया को मारता हूं तो यह मुझे एक ही त्रुटि देता है। उबंटू 13.10 का उपयोग करना - Waqas
ऐसा न करें अगर आपका गृह निर्देशिका लागू हो गया है !!!! मैंने इस प्रक्रिया का पालन किया और यह मुझे जंगली 2 घंटे की सवारी के लिए भेजा ... पुनर्प्राप्ति का एकमात्र तरीका इस प्रक्रिया को फिर से करने और मूल (नापसंद) नाम को वापस करने के लिए है। आपके पास समस्या होगी "माउंट में chdir नहीं कर सकता बिंदु" - Mike


(उबंटू 13.10, 14.04, 16.04 का उपयोग करना) "सिस्टम सेटिंग्स" आइकन पर क्लिक करें। फिर "उपयोगकर्ता खाते" पर क्लिक करें। आपका व्यवस्थापक खाता प्रदर्शित होना चाहिए। "अनलॉक" बटन पर क्लिक करें। अपने खाते में परिवर्तन की अनुमति देने के लिए अनुरोध किए गए अपना उपयोगकर्ता पासवर्ड दर्ज करें। एक बार अनलॉक हो जाने पर, आप अपने पुराने उपयोगकर्ता नाम पर क्लिक कर सकते हैं जिसे आप बदलना चाहते हैं और इसे बदलने के लिए नए उपयोगकर्ता नाम में टाइप करें। जब आप नए नाम में टाइप करते हैं, तो परिवर्तन को स्थायी बनाने के लिए "लॉक" बटन पर क्लिक करें। उबंटू को पुनरारंभ करें।


10
2017-07-07 22:45



इसने मेरे लिए उपयोगकर्ता नाम, सिर्फ नाम नहीं बदला। पुराना उपयोगकर्ता नाम अभी भी टर्मिनल में दिखाई देता है, और घर निर्देशिका और समूह (रीबूट करने के बाद भी) के रूप में दिखाई देता है। - DougC


प्राप्त करते समय usermod: can't change /etc/password बस निम्न आदेश चलाएं:

रूट रिकवरी कंसोल रन में:

mount -o remount,rw /

फिर पुन: चालू करें:

usermod -l <newname> -d /home/<newname> -m <oldname>

3
2017-07-30 12:14





जब तुम करोगे usermod -l <newname> -d /home/<newname> -m <oldname> तुम्हे मिल जाएगा useradd: can't change /etc/passwd इसे जोड़ने से बचने के लिए त्रुटि संदेश बस जोड़ें sudo -- उपरोक्त आदेश के लिए

sudo -- usermod -l <newname> -d /home/<newname> -m <oldname>

तथा

sudo --  groupmod -n <newgroup> <oldgroup>

0
2017-08-06 06:12





चूंकि सभी पीसी में नहीं है usermod ऐप आप इसे मैन्युअल रूप से कर सकते हैं। रूट खुले के रूप में /etc/passwd संपादित करने के लिए:

sudo vim /etc/passwd

और एक लाइन की शुरुआत में उपयोगकर्ता का नाम बदलें:

user:x:500:501:username:home/user:/bin/bash

सेवा मेरे:

newuser:x:500:501:username:home/user:/bin/bash

तो यदि आपने जड़ का काम किया है तो बस लॉगिन करें, और यदि आप लॉग इन हैं user, लॉगऑफ, और relogin।


-3
2017-12-16 13:15



मैंने इस तरह से कोशिश की (इससे पहले कि मैंने खोज की usermod आदेश) और उपयोगकर्ता का पासवर्ड अब स्वीकार नहीं किया गया है। - Ben Voigt
@BenVoigt सभी पीसी में usermod नहीं है - Малъ Скрылевъ
यह उबंटू है! अगर यह नहीं है usermod आपका इंस्टॉल टूटा हुआ है क्योंकि यह इसका हिस्सा है passwd पैकेज, जो है अपेक्षित। - Auspex