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


324

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

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


हम /usr/share/applications/users.desktop पर नेविगेट क्यों नहीं कर सकते हैं >> उस उपयोगकर्ता पर क्लिक करें जिसके लिए नाम बदलना होगा। >> Change User name पर क्लिक करें >> नाम बदलें >> Ok पर क्लिक करें। मुझे लगता है, यह उपयोगकर्ता नाम बदलने का सबसे आसान तरीका होगा, है ना?
आनंद

जवाबों:


323

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

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

उपयोगकर्ता नाम बदलने के लिए (लॉग इन किए बिना ऐसा करना शायद सबसे अच्छा है):

sudo usermod -l newUsername oldUsername

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

होम-फोल्डर बदलने के लिए, उपयोग करें

sudo usermod -d /home/newHomeDir -m newUsername

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

उदाहरण के लिए, आप लॉगआउट कर सकते हैं, एक कंसोल ( Ctrl+ Alt+ F1) पर जा सकते हैं, और sudo su -असली रूट बन सकते हैं (जैसा कि विरोध किया जाता है sudo -s, जहां $ HOME अभी भी / घर / आपका नाम है।) हो सकता है कि आपको इस उपयोगकर्ता की कुछ अभी भी चल रही प्रक्रियाओं को मारना पड़े। प्रथम। ऐसा करने के लिए, दर्ज करें 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+ Alt+ F1) में प्रतिक्रिया प्राप्त करने के लिए। इसके आसपास:

  1. अपने पुराने क्रेडेंशियल के साथ लॉगिन करें और एक नया उपयोगकर्ता जोड़ें, जैसे TTY1 में "अस्थायी":

    sudo adduser temporary
    

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

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

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

    sudo deluser temporary
    sudo rm -r /home/temporary
    

10
यह $ HOME के ​​तहत विभिन्न कॉन्फ़िगरेशन फ़ाइलों के लिए दुर्भाग्य से सच नहीं है, कुछ चलाने की कोशिश करें grep -IRFl /home/username ~और आप देखेंगे कि आपके होम डायरेक्टरी में कितने संदर्भ संग्रहीत हैं।
व्यवस्थित करें

1
एक साधारण फिक्स था - बस उपयोगकर्ता खाता संपादक को एकता में उपयोग करना था, इसके बाद पुनः आरंभ करें।
स्टीव कोच

6
एक एन्क्रिप्टेड होम फ़ोल्डर वाले लोगों के लिए, आपको /home/.ecryptfs/oldusername/.ecryptfs/Private.mntअपने नए होम फ़ोल्डर को इंगित करने के लिए संपादित करना होगा, अन्यथा आप यूनिटी के माध्यम से लॉगिन नहीं कर पाएंगे।
राफेल

2
sudo usermod -d /home/edge -m edgeपैदावार: usermod: Directory /home/empedokles could not be renamed in /home/edgeयानी चरण 4 काम नहीं करेगा।
एम्पेडोकल्स

2
@JTC ने कभी भीsudoers सादे से संपादन नहीं किया nano। हमेशा उपयोग करें visudo
स्टायरोफोम

107

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

  1. प्रारंभ स्क्रीन प्रेस पर Ctrl+ Alt+ F1
  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+ Alt+ F7

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


6
यदि usermod -l आपके पास एक होने के बाद user <oldname> is currently used by process <processno>, आप उस प्रक्रिया (शायद एक डेमन, या tmux / स्क्रीन) का उपयोग करके पा सकते हैं ps aux | grep <processno>। आप उस प्रक्रिया को शालीनतापूर्वक रोक सकते हैं, अन्यथा आप कर सकते हैं kill <processno>
RedPixel

1
इस टिप्पणी को एक साथ रखने के लिए धन्यवाद। यह बहुत उपयोगी था। हालांकि दो बातों का उल्लेख किया जा सकता है। चरण 4 के बाद मैंने रिबूट किया, इसलिए मुझे चरण 6 पर त्रुटि संदेश नहीं मिलेगा। इसके अलावा, यह प्रक्रिया पूरी होने के बाद, / etc / passwd फ़ाइल में पुराने उपयोगकर्ता नाम से मेल और आईडी टिप्पणी होगी। इससे लॉगिन स्क्रीन पुराने लॉगिन नाम को प्रदर्शित करेगी। मुझे कमांड लाइन से इसे ठीक करने का एक अच्छा तरीका नहीं मिला, लेकिन मैंने इसे उपयोगकर्ता खाते में लॉग इन करके, खाता सेटिंग्स में जाकर और यूज़रनेम में "लॉगिन नाम" को बदलकर ठीक किया। इसने / etc / passwd फ़ाइल को अद्यतन किया और समस्या को ठीक किया।
जिबर्स

1
यह इसे करने का सबसे आसान और मूर्खतापूर्ण तरीका है। चरण 4 के बाद बेहतर रीबूट है क्योंकि @ जाइबर्स ने सुझाव दिया।
यरके

मैं उल्लेख करता हूं कि "फ़ाइल ब्राउज़र विंडो में बुकमार्क" अब पुराने फ़ोल्डरों की ओर इशारा कर रहे हैं, इसलिए मुझे उन बुकमार्क को हटाना होगा।
ollydbg23

काम नहीं करेगा। यदि आप शुरुआत में Ctrl + Alt + F1 दबाते हैं तो यह नए बनाए गए उपयोगकर्ता में प्रवेश करने की कोशिश कर रहा है जो इसे अनुमति नहीं देगा।
एम्पेडोकल्स

27

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

पहले रूट को रिमूव करें

mount -o remount,rw /

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

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

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

groupmod -n <newgroup> <oldgroup>

1
जब मैं इसका उपयोग usermod -l <newname> -d /home/<newname> -m <oldname>करता हूं usermod: user oldusername is currently used by process 3170तो मुझे त्रुटि मिलती है और अगर मैं इस प्रक्रिया को मारता हूं तो भी यह मुझे वही त्रुटि देता है। ubuntu 13.10 का उपयोग
वकास

4
अगर आपके घर का विवरण सही नहीं है तो इसे न करें !!!! मैंने इस प्रक्रिया का पालन किया और इसने मुझे 2 घंटे की सवारी के लिए भेजा ... ठीक होने का एकमात्र तरीका इस प्रक्रिया को फिर से करना और मूल (नापसंद) नाम को वापस रखना है। आपके पास जो समस्या है वह "माउंट में chdir नहीं कर सकता है। बिंदु "
माइक

हम /usr/share/applications/users.desktop पर नेविगेट क्यों नहीं कर सकते हैं >> उस उपयोगकर्ता पर क्लिक करें जिसके लिए नाम बदलना होगा। >> Change User name पर क्लिक करें >> नाम बदलें >> Ok पर क्लिक करें। मुझे लगता है, यह उपयोगकर्ता नाम बदलने का सबसे आसान तरीका होगा, है ना?
आनंद

9

Ubuntu 13.10, 14.04, 16.04 पर:

  1. "सिस्टम सेटिंग्स" आइकन पर क्लिक करें।
  2. "उपयोगकर्ता खाते" पर क्लिक करें।
  3. आपके व्यवस्थापक खाते को प्रदर्शित किया जाना चाहिए।
  4. "अनलॉक" बटन पर क्लिक करें।
  5. अपने खाते में परिवर्तन करने की अनुमति के लिए अपना उपयोगकर्ता पासवर्ड दर्ज करें।
  6. एक बार अनलॉक करने के बाद, आप अपने पुराने उपयोगकर्ता नाम पर क्लिक कर सकते हैं जिसे आप बदलना चाहते हैं और इसे बदलने के लिए एक नया उपयोगकर्ता नाम टाइप करें।
  7. जब आपने नया नाम टाइप किया है, तो परिवर्तन को स्थायी बनाने के लिए "लॉक" बटन पर क्लिक करें।
  8. Ubuntu को पुनरारंभ करें।

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

3

जब usermod: can't change /etc/passwordकेवल निम्नलिखित आदेश मिलते हैं:

रूट रिकवरी कंसोल में चलाएं:

mount -o remount,rw /

फिर रेरून:

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

हम /usr/share/applications/users.desktop पर नेविगेट क्यों नहीं कर सकते हैं >> उस उपयोगकर्ता पर क्लिक करें जिसके लिए नाम बदलना होगा। >> Change User name पर क्लिक करें >> नाम बदलें >> Ok पर क्लिक करें। मुझे लगता है, यह उपयोगकर्ता नाम बदलने का सबसे आसान तरीका होगा, है ना?
आनंद

1

यहाँ @ karthick87 द्वारा सूचीबद्ध उत्तर पूरी तरह से ठीक काम करता है, लेकिन यहाँ मैं सिर्फ सुरक्षित रहने और सभी गड़बड़ियों से बचने के लिए क्या करूँगा:

  1. एक अलग खाता / उपयोगकर्ता बनाएं और यह सुनिश्चित करें कि यह खाता / उपयोगकर्ता रूट क्षमताओं या किसी भी रूट-सक्षम उपयोगकर्ता के रूप में लॉगिन करें।
  2. करंट अकाउंट से लॉगआउट करें और फिर स्टेप 1 में बताए गए अकाउंट से लॉगइन करें।
  3. पिछले उपयोगकर्ता की सभी प्रक्रियाओं को मार डालो।
  4. अब @ karthick87 द्वारा बताए गए चरणों का पालन करें और उपयोगकर्ता नाम और गृह निर्देशिका के स्वामी को बदलें।
  5. फिर समूह का नाम बदलने के लिए @ श्रीराज हेब्बर के उत्तर का पालन करें।
  6. अतिरिक्त उपयोगकर्ता के साथ लॉगआउट करें और अपने उपयोगकर्ता के साथ लॉगिन करें। यदि आपने एक अतिरिक्त उपयोगकर्ता बनाया है तो उसे हटा दें।

0

जब आप ऐसा करते हैं 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>

-3

चूंकि सभी पीसी में 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, लॉगऑफ और फिर से लॉग इन हो चुके हैं ।


मैंने इस तरह से कोशिश की (इससे पहले कि मैंने usermodकमांड की खोज की ) और उपयोगकर्ता का पासवर्ड अब स्वीकार नहीं किया गया है।
बेन वोइगट

@BenVoigt में सभी पीसी में usermod नहीं है
Малк Скрылев16

3
यह उबंटू है! यदि usermodआपके पास इसकी स्थापना नहीं है, तो यह passwdपैकेज का हिस्सा है , जिसकी आवश्यकता है
शुभ अंक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.