मैं अपनी खुद की उपयोगकर्ता आईडी कैसे बदल सकता हूं?


49

मेरे सिस्टम पर केवल एक उपयोगकर्ता है। मैं 1000 के डिफ़ॉल्ट से इसकी उपयोगकर्ता आईडी कैसे बदल सकता हूं?

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


5
जिज्ञासा से बाहर, उपयोगकर्ता आईडी बदलने के क्या कारण हैं?
ओलिवियर लालोंडे

14
यदि आप आमतौर पर एनएफएस के माध्यम से अन्य प्रणालियों के साथ डेटा का आदान-प्रदान करते हैं, या सिर्फ कुछ कॉपी पद्धति जो यूआईडी को संरक्षित करती है, तो यह मदद करेगा यदि आप समान यूआईडी का उपयोग पूरे सिस्टम में करते हैं।
जोहो पिंटो

जोआओ सही हो गया। विशेष रूप से, मैं मैक ओएस एक्स में उपयोगकर्ताओं के साथ यूआईडी का मिलान करने की उम्मीद कर रहा हूं ताकि एक साझा फाइलसिस्टम ऑपरेटिंग सिस्टम में इच्छित अनुमतियों को ले जाए।
æंड्रिक्स

1
नेटहॉक का वर्तमान संस्करण (3.6.0) फ़ाइल नाम में वर्तमान यूआईडी सहित गेम बचाता है। यदि आप मशीनों के बीच एक सेव गेम को सिंक करना चाहते हैं, तो आपको uids से मिलान करना होगा। (सिम्कलिन का उपयोग करना व्यावहारिक नहीं है)
जोनाथन हार्टले 1

जवाबों:


27

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

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

आप पुनर्प्राप्ति मोड में बूट कर सकते हैं (यह एक ऐसा विकल्प है जो आपके कंप्यूटर को शुरू करने पर प्रकट होता है, या BIOS संदेशों के पूरा होने के बाद शिफ्ट होल्ड करें; ESCOEM-Ubuntu पर चलने वाली डेल मशीनों पर उपयोग करें )। यह आपको रूट सेशन में लॉग इन करेगा। रूट में लॉग इन किया जा रहा है और आपका सामान्य उपयोगकर्ता खाता नहीं है , आप अपने यूआईडी को संशोधित करने में सक्षम होंगे।

क्योंकि रिकवरी मोड केवल कमांड लाइन इंटरफेस में काम करता है, एक बार एक रूट सत्र में प्रवेश करने के बाद, आपको निम्न करना होगा:

  1. का प्रयोग करें पठन-लेखन मोड में जड़ फाइल सिस्टम को पुन: माउंट करने के लिए BubbaJ के निर्देशों : mount -o remount,rw /

  2. का प्रयोग करें लुइस Alvarado के आदेश : usermod -u NEW_UID your_username

  3. फ़ाइल अनुमतियों को अद्यतन करने के लिए ddeimeke के निर्देशों का पालन ​​करें ।
  4. फिर, अपने कंप्यूटर को रिबूट करें ( reboot), ताकि आप सामान्य मोड में बूट कर सकें।

1
Ubuntu 14.04 के लिए काम नहीं करता है। करने के बाद usermod -u NEW_UID your_usernameऔर find / -uid 1000 -exec chown -h 5000 '{}' \+, रिबूट एक अनुमान-सत्र-केवल GUI लॉगिन की ओर जाता है।
Kay

हो सकता है, घर में छिपी हुई फाइलें ठीक से न बदली गई हों? क्या आप अपने घर के लिए एन्क्रिप्शन का उपयोग करते हैं?
गणित

यदि आप उन कॉन्फ़िगरेशन फ़ाइलों में प्रदान की गई नीतियों के बाहर अपना यूआईडी बदल चुके हैं, तो आप अपनी /etc/login.defsऔर /etc/adduser.confफाइलों की जांच कर सकते हैं। पॉलिसी सीमा से बाहर के उपयोगकर्ता लॉगिन लूप में प्रदर्शित नहीं होते हैं, लेकिन आप पॉलिसी को बदल सकते हैं। इसका उत्तर
K Markey

usermod: user user_name is currently used by process 1118 @Alexandre पी
alper

54

आप इसे बदल सकते हैं /etc/passwd, /etc/groupऔर /etc/shadowया आप ऊपर पसंदीदा अधिभारों में से एक का उपयोग कर सकते हैं। लेकिन - सबसे महत्वपूर्ण - आपको उपयोगकर्ता से संबंधित सभी फाइलों के स्वामित्व को बदलना होगा।

उदाहरण के लिए, यदि पुराना यूजर आईडी 1000 है और नया 5000 है:

find / -uid 1000 -exec chown -h 5000 {} +

और ग्रुप आईडी के लिए समान (यदि आप इसे भी बदलते हैं)।

find / -gid 1000 -exec chgrp -h 5000 {} +

8
यह वास्तव में एक महत्वपूर्ण बिंदु है। यदि आप अन्य उत्तर में दी गई तकनीकों का पालन करते हुए भी ऐसा करते हैं तो कई चीजें टूट जाएंगी।
पूली

4
मैं सिर्फ एक बेहतर इस्तेमाल करना चाहिए सीखा sudo find / -xdev -uid 1000 -exec chown 5000 '{}' \+है, अन्यथा एक घुड़सवार डेटा (में शामिल होंगे /mntमें साथ है, जो संभवतः अवांछित है) और फ़ाइलों को आप बेहतर नहीं गंदगी /procऔर /devइस पोस्ट को
सेबस्टियन

2
यह एक अच्छा विचार नहीं है। इस मामले को देखते हुए कि / घर एक अलग फाइल सिस्टम पर है, आप अपनी खुद की फाइलों के स्वामित्व को भी नहीं बदलेंगे।
डेडाइमके

इस उत्तर पर, आपको फ़ाइलों को संपादित करने से पहले समूह / यूआईडी अनुमतियां बदलनी चाहिए, आदि, सही?

इससे कोई फर्क नहीं पड़ता कि आप पहले क्या करते हैं।
ddeimeke

25

पूरा समाधान @AlexandreP पर आधारित है। और @ddeimeke + आधिकारिक दस्तावेज। कोई रिबूट आवश्यक नहीं है।

डेबियन / उबंटू नीति यह है कि यदि jimउपयोगकर्ता आईडी वाला कोई उपयोगकर्ता है 1001, तो jimसमूह आईडी के साथ एक समूह भी है 1001। यह समाधान उन ग्रुप आईडी को भी अपडेट करता है।

  1. रूट खाता सक्षम करें :

    sudo passwd root
    
  2. यदि उपयोगकर्ता लॉग इन है, तो लॉग आउट करें (वर्चुअल टर्मिनलों पर भी)
  3. VT1 पर जाएं: Ctrl-Alt-F1
  4. रूट के रूप में लॉग इन करें और उपयोगकर्ता नाम और पुराने / नए यूआईडी की आपूर्ति के साथ इसे चलाएं:

    # put the information we need in variables
    username=...
    old_uid=`id -u $username`  # looks up current (old) uid
    new_uid=...
    
    # update the user ID and group ID for $username
    usermod -u $new_uid $username
    groupmod -g $new_uid $username
    
    # update the file ownerships
    # NB: you cannot combine the next two chowns, or files where 
    # only the uid xor the gid matches won't be updated  
    chown -Rhc --from=$old_uid $new_uid /    # change the user IDs
    chown -Rhc --from=:$old_uid :$new_uid /  # change the group IDs
    
  5. लॉग आउट
  6. इससे लॉगिन करें $username
  7. रूट खाता अक्षम करें :

    sudo passwd -dl root
    

रूट खाते को सक्षम करना आवश्यक नहीं होना चाहिए; बस रिकवरी मोड का उपयोग करें ।
æंड्र्स जूल

2
यह रिबूट करने से तेज होना चाहिए, यही वजह है कि मैंने इसे पोस्ट किया।
l0b0

3
उबंटू 14.04 और 14.10 में आपको / मीडिया में विस्तारित एसीएल अनुमतियों को ठीक करने की आवश्यकता है अन्यथा पुराने यूआईडी के रूप में ऑटोमेटिंग (नॉटिलस / निमो में) टूट जाता है। sudo setfacl -m "u:<NEWUID>:r-x" /media/<USERNAME> sudo setfacl -x "u:<OLDUID>" /media/<USERNAME>
richud.com

यह मेरे लिए एक आकर्षण की तरह काम करता था। केवल यूआईडी बदलना था, हालांकि।
चमीक

रिकवरी मोड का उपयोग करने की तुलना में रूट अकाउंट को सक्षम करना (और कम डरावना) लगता है।
जोनाथन हार्टले

7

यदि आप कंसोल में जाते हैं और टाइप करते हैं: usermod --helpआपको एक पैरामीटर मिलेगा, जो कह रहा है:

-u, - उपयोगकर्ता खाते के लिए यूआईडी नया यूआईडी

इसलिए यदि आप उपयोगकर्ता साइरेक्स के लिए यूआईडी बदलना चाहते हैं तो करें:

usermod -u 1000 cyrex

जो कि 1000 से पहले जो भी मूल्य था, से साइरेक्स के लिए यूआईडी को बदल देगा

यदि आप इसे नेत्रहीन करना चाहते हैं तो यह करें:

के लिए जाओ

प्रणाली -> अनुकूलन -> उपयोगकर्ता और समूह

सूची से खुद का चयन करें और उन्नत सेटिंग्स पर क्लिक करें

UID उस विंडो के अंत में है।


1
मैंने आपके द्वारा सुझाई गई चित्रमय विधि की कोशिश की, लेकिन एक संदेश है "उपयोगकर्ता लॉग इन करते समय आप उपयोगकर्ता आईडी नहीं बदल सकते।" क्या आपने इस विधि का परीक्षण किया है?
ændrük

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

2
  • गोटो सिस्टम >> प्रशासन >> उपयोगकर्ता और समूह

वैकल्पिक शब्द

  • एडवांस्ड सेटिंग्स पर क्लिक करें और नीचे एडवांस्ड टैब वहां पर आपको अपनी यूजर आईडी दिखाई देगी।
  • इसे बदलें और ठीक पर क्लिक करें।
    वैकल्पिक शब्द

1
क्या मुझे आपके स्क्रीनशॉट में चेतावनी को अनदेखा करना चाहिए, "उपयोगकर्ता लॉग इन करते समय आप उपयोगकर्ता आईडी नहीं बदल सकते हैं।"
ændrük

आपको इस चेतावनी से छुटकारा पाने के लिए इसे किसी अन्य उपयोगकर्ता खाते से बदलना होगा।
कार्तिक87

7
मेरा सवाल है "मैं अपनी खुद की उपयोगकर्ता आईडी कैसे बदल सकता हूं ?"। यदि आप अपना उत्तर देने का इरादा रखते हैं कि मुझे इस मूल्य को संपादित करने के लिए एक नया उपयोगकर्ता बनाना चाहिए, तो आपको संकेत करने के लिए अपने उत्तर को संपादित करना चाहिए।
ændrük

0

KDE के साथ: उन्नत उपयोगकर्ता सेटिंग मेनू बदलें:

किसी अन्य उपयोगकर्ता से बदलना 1000 के लिए काम नहीं करता है जो डिफ़ॉल्ट उपयोगकर्ता है।

आपको वह स्वयं करना होगा - मेरा अनुभव


0

पहले आपको रूट के रूप में लॉगिन करने की आवश्यकता है, कम से कम थोड़ी देर के लिए, इसलिए हम इसे संभव बनाते हैं:

sudo passwd root

रिबूट, ctrl + alt + f1 कंसोल पर स्विच करने के लिए, रूट के रूप में लॉगिन करें, निम्नलिखित करें (घर की dir में स्वामित्व का स्वचालित रूप से ध्यान रखा जाएगा):

groupmod --gid NEWGID username
usermod  --uid NEWUID username 

आपके घर के अलावा अन्य स्थानों पर आपकी फ़ाइलों के लिए, यह करने के लिए:

sudo chown -R username:username /path/to/files

यदि आप चाहते हैं, तो रूट के पास को हटा दें और लॉक करें। (मैं इसे रखने के लिए जाते हैं):

passwd -dl root

0

मैंने निम्नलिखित परिवर्तनों के साथ ddeimeke के निर्देशों का पालन ​​किया:

  1. मैंने लॉगआउट नहीं किया और इसके बजाय किया sudo su
  2. मैंने नहीं छुआ /etc/shadow

मैंने अन्य उत्तरों में इसका उल्लेख किया है कि आपको पुनर्प्राप्ति के लिए बूट करना चाहिए या इसके रूप में लॉगिन करना चाहिए root। मेरा एक नया उबंटू 14 स्थापित था इसलिए मैं यह परीक्षण करने के लिए तैयार था कि क्या यह बिना लॉग इन के काम करेगा root। इसके अलावा, मैं SSH पर EC2 उदाहरण पर ऐसा कर रहा था।

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