मैं एक यूनिक्स उपयोगकर्ता का नाम कैसे बदल सकता हूं?


89

मेरे पास एक उपयोगकर्ता नाम है hedgehogऔर मैं चाहता हूं कि उसका नाम हो squirrel, लेकिन मैं उसकी संख्यात्मक उपयोगकर्ता आईडी नहीं बदलना चाहता।
मैं यह कैसे हासिल कर सकता हूं?


2
संभवतः क्योंकि उपयोगकर्ता का नाम बदलना वास्तव में एक कार्य नहीं है जो एक पेशेवर एसए के साथ संघर्ष करेगा। (सवाल नीचे के लिए।)
हॉपलेसएनबीबी

2
@Jeznet मैंने डाउनवोट किया क्योंकि न केवल यह एक अविश्वसनीय रूप से सरल कार्य है जिसे आपके शीर्षक को Google में टाइप करके हल किया जा सकता है, आपने यह पूछने पर अपने स्वयं के प्रश्न का उत्तर भी दिया। समय की बर्बादी हुई।
boburob

10
@boburob "। आप भी अपने ही सवाल का जैसे ही जवाब के रूप में आप यह पूछा समय की बर्बादी दिखाई पड़े" कृपया देखें: blog.stackoverflow.com/2011/07/...
ज़ीमॉन Jez

10
@boburob क्या आपने वह टिक बॉक्स देखा जो कहता है कि Answer your own question – share your knowledge, Q&A-styleजब आप एक प्रश्न पूछते हैं? यह एक कारण के लिए है, और वहाँ नहीं होगा अगर वे इसे इस्तेमाल नहीं करना चाहते थे। (आदर्श रूप में बेहतर सवाल पर है, लेकिन परवाह किए बिना, अपने स्वयं के सवाल का जवाब देने के लिए किसी downvoting बुरा रूप है।)
HopelessN00b

1
हां, मैंने पहले भी अपने प्रश्न का उत्तर दिया है, लेकिन मेरे लिए, एक प्रश्न पूछना और एक ही मिनट में Google परिणाम को चिपकाना समय की बर्बादी है
boburob

जवाबों:


133

लिनक्स के तहत, usermodकमांड उपयोगकर्ता के नाम बदलता है। यह कमांड लाइन पर निर्दिष्ट परिवर्तनों को प्रतिबिंबित करने के लिए सिस्टम खाता फ़ाइलों को संशोधित करता है।

केवल उपयोगकर्ता नाम बदलने के लिए:

usermod --login new_username old_username

उपयोगकर्ता नाम और घर निर्देशिका नाम बदलने के लिए:

usermod --login new_username --move-home --home path_to_the_new_home_dir old_username

आप उपयोगकर्ता से जुड़े समूह का नाम भी बदलना चाह सकते हैं:

groupmod --new-name new_username old_username

12
आप usermod का उपयोग पूरी चीज़ usermod करने के लिए कर सकते हैं -l new-user-name -m -d / new / home / dir पुराने-उपयोगकर्ता-नाम
user9517

5
यह भी ध्यान दें, कि समूह बदला नहीं गया है। यदि आपको old-user-nameसमूह का नाम बदलने की आवश्यकता है , तो भी उपयोग करें # groupmod -n new-user-name old-user-name

1
उपयोग करने वाले सिस्टम के लिए autofs, आपको अपडेट भी करना चाहिए /etc/auto.home। मैं बस इसमें भाग गया।
स्टीवन सी। हॉवेल

2
यदि लागू हो तो नए उपयोगकर्ता नाम को
सुडोर्स

2
आपको /var/spool/cron/crontabs/(यदि आपके पास कोई नौकरी स्थापित है) में स्थित crontab फ़ाइल का नाम बदलने की भी आवश्यकता होगी
डैनियल एफ

12

नोट: यदि आपकी निर्देशिका एन्क्रिप्ट की गई है तो यह कोशिश न करें! यदि यह आपका मामला है, तो आप पहले जांचना चाहते हैं: https://askubuntu.com/questions/107410/can-you-unencrypt-remove-enc एन्क्रिप्शन-from-a-user-home-folder

यह करने का सीधा तरीका है:

  1. Sudo अधिकारों के साथ एक नया अस्थायी खाता बनाएँ:

    sudo adduser temp
    sudo adduser temp sudo
    
  2. अपने चालू खाते से लॉग आउट करें और अस्थायी खाते से वापस।

  3. अपने उपयोगकर्ता नाम और निर्देशिका का नाम बदलें:

    sudo usermod -l new-username -m -d /home/new-username old-username
    
  4. अपने उपयोगकर्ता नाम डिफ़ॉल्ट समूह का नाम बदलें:

    sudo groupmod -n new-username old-username
    
  5. अस्थायी खाते से लॉग आउट करें और नए उपयोगकर्ता नाम के साथ वापस अपने खाते में प्रवेश करें।

  6. अस्थायी खाता निकालें:

    sudo userdel -r temp
    

अन्यथा, आप सिर्फ (1) एक नया उपयोगकर्ता बनाते हैं और (2) rsyncपुराने उपयोगकर्ता होम फ़ोल्डर को नया और फिर (3) chownइसे बनाते हैं ।


CentOS में मुझे 'passwd temp' और 'usermod -aG wheel temp' की भी आवश्यकता थी।
ब्रायन जेड

4

आम तौर पर आप /etc/passwd(और /etc/shadow, यदि लागू हो) फ़ाइलों में अपना उपयोगकर्ता नाम बदलकर किसी उपयोगकर्ता का नाम बदल सकते हैं। अधिकांश यूनिक्स सिस्टम पर vipwइन फ़ाइलों को संपादित करने के लिए कमांड का उपयोग किया जाता है (और कई सिस्टम में यह सुनिश्चित करने के लिए कुछ सुरक्षा उपाय शामिल हैं कि आप चीजों को बहुत बुरी तरह से गड़बड़ न करें)। और अधिक जानकारी के
लिए passwd(5), मैन पेज देखें।shadow(5)vipw(8)

ध्यान दें कि ऊपर दी गई विधि अन्य चीजों का नाम नहीं लेती है जो मूल उपयोगकर्ता नाम (घर निर्देशिकाओं का प्रमुख उदाहरण, प्रति उपयोगकर्ता व्यक्तिगत समूह (सिस्टम पर जो उनका उपयोग करते हैं) एक और होने के नाते) सहन कर सकती है। आप पासवार्ड फ़ाइल में उपयुक्त फ़ील्ड्स को बदलकर और निर्देशिकाओं का नाम बदलकर निरंतरता के लिए इनकी सफाई कर सकते हैं।


कई ऑपरेटिंग सिस्टम उपयोगकर्ताओं के नाम बदलने का एक सिस्टम-विशिष्ट तरीका प्रदान करते हैं। उदाहरण के लिए कई लिनक्स सिस्टम में usermod(8)कमांड शामिल है , और AIX पर आप SMIT (या smittyटर्मिनल में) का उपयोग करके खाता नाम बदल सकते हैं ।
यदि आप उनसे पूछते हैं, तो ये कमांड अक्सर घर की निर्देशिकाओं का नाम बदलने जैसे क्लीनअप आइटम को संभालेंगे।

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