उबंटू या किसी भी लिनक्स में उपयोगकर्ता नाम बदलने का उचित तरीका


26

मैं Ubuntu 12.04 का उपयोग कर रहा हूं और कुछ अनुकूलन किया है। मैं इसे एक नया आईएसओ भी बनाऊंगा जिसे ubuntu द्वारा कस्टमाइज़ किया गया है।

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

तो क्या ऐसा करने के लिए कोई सबसे अच्छा अभ्यास या वर्कफ़्लो है?


आपकी होम निर्देशिका अक्सर आपके उपयोगकर्ता नाम के साथ बनाई जाती है, लेकिन आप / etc / passwd और / etc / छाया में प्रविष्टियों के पहले तत्वों को बदलकर गृह निर्देशिका को बदले बिना उपयोगकर्ता नाम बदल सकते हैं। सुनिश्चित करें कि गलती होने पर आप रूट (अपने उपयोगकर्ता लॉगिन से केवल sudo) के रूप में लॉगिन नहीं कर सकते।
Anthon

क्या होगा अगर मैं घर निर्देशिका का नाम बदलना चाहता हूं? और क्या वास्तव में Sayin पहले तत्वों से मतलब है?
कॉर्पुस कैलासुम नोव

जवाबों:


28

वास्तव में सही तरीके से? कहते हैं कि आप उपयोगकर्ता 'पीटर' को 'पॉल' में बदलना चाहते हैं।

groupadd paul
usermod -d /home/paul -m -g paul -l paul peter

यह सभी फाइलों के साथ नाम, समूह, होम निर्देशिका और स्वामित्व और उस निर्देशिका के समूह को नए में बदलता है। आप मूल रूप से 'पॉल' के रूप में बनाए जाने से एक उपयोगकर्ता के अप्रत्यक्ष रूप से समाप्त होते हैं।

एक और तरीका यह होगा कि आप फाइल /etc/passwdऔर /etc/shadowफाइल में पीटर की प्रविष्टियों के पहले क्षेत्रों को संपादित करें । फिर 'पीटर' की हर घटना को 'पॉल' में बदलें /etc/group। तब से घर निर्देशिका का नाम बदलने /home/peterके लिए /home/paul। और फिर chown -R paul /home/peterनिर्देशिका और सभी फाइलों के मालिकाना और समूहों को पाने के लिए और इसके तहत नए लोगों को रखने के लिए।


3
यदि आपने संपादित किया है, तो आपको चॉइस की कोई आवश्यकता नहीं है / {{passwd, shadow, group} - इनोड स्टोर्स के मालिक और समूह संख्यात्मक रूप से
ग्राहम निकोल्स

5

मैं एक उपयोगकर्ता का नाम बदलने का प्रयास नहीं करने की सलाह दूंगा। जब उपयोगकर्ता का नाम उपयोगकर्ता के घर निर्देशिका के रूप में कॉन्फ़िगरेशन फ़ाइलों में सांख्यिकीय रूप से संदर्भित होता है, तो यह आम तौर पर समस्याओं से घिर जाता है /home/<username>। ये लगभग कभी भी जेनेरिक तरीके से नहीं लिखे जाते हैं, इसलिए आमतौर पर यह केवल एक नया उपयोगकर्ता नाम बनाने के लिए सबसे अच्छा होता है और फिर उपयोगकर्ता की फ़ाइलों और डेटा को नए खाते में स्थानांतरित कर देता है।


1
टिप्पणी के लिए धन्यवाद। मैंने नया उपयोगकर्ता बनाया और पुराने के संबंध में उपयोगकर्ता / समूह और होम निर्देशिका को बदल दिया। ऐसा लगता है कि सब कुछ अच्छा काम कर रहा है। क्या आपको लगता है कि इस विधि के कारण भी समस्या हो सकती है?
कॉर्पस कैलासुम

3

Usermod कमांड का प्रयास करें ।

exec sudo su
usermod --login newname oldname

बस। सुडो जो भी आप करने जा रहे थे ’करें। कर sudo su ठीक से आदेशों को लॉग नहीं करेगा।
कीथ Twombley

3

आप इसे बदल सकते हैं; देखें कि मैं अपना उपयोगकर्ता नाम कैसे बदलूं? AskUbuntu पर। उन निर्देशों ने मेरे लिए अच्छा काम किया। अपने कॉन्फ़िगरेशन को संरक्षित करने के लिए, बस अपने पुराने होम डायरेक्टरी के लिए एक सिमलिंक बनाएं जैसा कि उस प्रश्न के उत्तर में वर्णित है।


3

उपयोगकर्ता नाम और होम निर्देशिका को बदलने के लिए usermod का उपयोग करें । उपयोगकर्ता पेटी को पाऊल में बदलें:

usermod -l paul peter
grep paul /etc/passwd /etc/shadow       # check

घर निर्देशिका बदलें और वहां सब कुछ स्थानांतरित करें (यदि आवश्यक हो)

usermod -m -d /home/paul paul
grep paul /etc/passwd               # check

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

nano /etc/group

और बदल जाते हैं

peter:x:1000:

सेवा मेरे

paul:x:1000:

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

find /var -name "*peter*"

इन फ़ाइलों को खोजने के लिए।

आपको कुछ सेवाओं द्वारा उपयोग की जाने वाली कॉन्फिग फाइलों को भी बदलना होगा जैसे कि आप एप्लिकेशन को मेल करते हैं।

अंत में, "/ home / peter /" का उपयोग करने वाली स्क्रिप्ट को संपादित करने की आवश्यकता होगी। "/ होम / पीटर /" के परिवर्तन को "$ HOME" में बदलें।

उपयोगकर्ता पहचान को बदलने के लिए यह बहुत काम नहीं है, आपको बस पूरी तरह से रहने की आवश्यकता है।


Upvoted क्योंकि यह वही दृष्टिकोण है जो मैं उपयोग करता हूं (GID के संरक्षण के संबंध में समान कारणों के लिए)। BTW, आप वास्तव में दो usermodआदेशों को एक में जोड़ सकते हैं और आपको /etc/gshadowसाथ में संपादित करना भी याद रखना चाहिए /etc/group; इन दोनों को GNU sed के साथ बदला जा सकता है: sudo sed -i 's/oldname/newname/g' /etc/{group,gshadow}- या इससे भी बेहतर sudo groupmod -n newname oldname। अच्छी तरह से कुछ अन्य गोचरों को उजागर करने के लिए किया जाता है जैसे कि उपयोगकर्ता के क्रॉस्टब (यदि उनके पास एक है) का नाम मैन्युअल रूप से बदलना है।
एंथनी जी -

इस पर त्वरित परिशिष्ट ... ऐसा करते समय आपको लॉग इन नहीं किया जा सकता है। नए अस्थायी उपयोगकर्ता बनाएं जो sudoers समूह का हिस्सा हैं, उसके साथ लॉगिन करें, परिवर्तन करें, नए अस्थायी अस्थान से लॉगआउट करें, नाम बदलकर लॉगिन करें और अस्थायी खाता हटाएं।
Janus
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.