मैं लिनक्स में उपयोगकर्ता के डिफ़ॉल्ट समूह को कैसे बदल सकता हूं?


41

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

useradd
usermod
groupadd
groupmod

मैंने अभी हाल ही में लिनक्स / यूनिक्स प्रशासक की हैंडबुक में उपयोगकर्ता प्रशासन की पुस्तक को पढ़ना समाप्त किया है, लेकिन कुछ चीजें अभी भी थोड़ी धुंधली हैं।

मूल रूप से useraddकाफी आगे सीधे लगता है:

useradd -c "David Hilbert" -d /home/math/hilbert -g faculty -G famous -m -s /bin/sh hilbert

मैं उपयोगकर्ता नाम "डेविड हिल्बर्ट" जोड़ सकता हूं hilbert, अपनी डिफ़ॉल्ट निर्देशिका, शेल और समूह सेट कर सकता हूं । और मुझे लगता है कि -gयह उनका प्राथमिक / डिफ़ॉल्ट समूह है और -Gउनके अन्य समूह हैं।

तो ये मेरे अगले सवाल हैं:

  1. क्या यह कमांड तब भी काम करेगा यदि समूह मौजूद नहीं हैं facultyऔर famousक्या नहीं? क्या यह सिर्फ उन्हें पैदा करेगा?
  2. यदि नहीं, तो नए समूह बनाने के लिए मैं किस कमांड का उपयोग करूं?
  3. यदि मैं उपयोगकर्ता को हटा देता हूं hilbertऔर उन समूहों में कोई अन्य उपयोगकर्ता नहीं हैं, तो क्या वे अभी भी मौजूद रहेंगे? क्या मुझे उन्हें हटाना चाहिए?
  4. useraddऊपर की कमान चलाने के बाद , मैं डेविड को famousसमूह से कैसे निकालूं , और अपने प्राथमिक समूह को फिर से सौंप दूं, hilbertजो अभी तक मौजूद नहीं है?

जवाबों:


27

usermodआदेश आप उपयोगकर्ता के प्राथमिक समूह, अनुपूरक समूह या अन्य विशेषताओं के एक नंबर को बदलने के लिए अनुमति देगा। -gस्विच प्राथमिक समूह नियंत्रित करता है।

आपके अन्य सवालों के लिए ...

  1. यदि आप एक समूह को निर्दिष्ट करते हैं groupname, जो कि useraddचरण के दौरान मौजूद नहीं है , तो आपको एक त्रुटि मिलेगी - useradd: अज्ञात समूह groupname

  2. groupaddआदेश नया समूह बनाती है।

  3. यदि आप अपने भीतर मौजूद सभी उपयोगकर्ताओं को हटा देते हैं तो समूह बना रहेगा। जरूरी नहीं कि आप खाली समूह को हटा दें।

  4. के hilbertमाध्यम से समूह बनाएँ groupadd hilbert। इसके बाद डेविड के प्राथमिक समूह का उपयोग करें usermod -g hilbert hilbert। (कृपया ध्यान दें कि पहला hilbertसमूह का नाम है और दूसरा hilbertउपयोगकर्ता नाम है। यह उन मामलों में महत्वपूर्ण है, जहां आप उपयोगकर्ता को किसी भिन्न नाम से समूह में ले जा रहे हैं)

आप यहाँ चीजों को थोड़ा जटिल कर सकते हैं, हालाँकि। कई लिनक्स वितरण में, एक useradd hilbertउपयोगकर्ता hilbertप्राथमिक के रूप में उपयोगकर्ता और उसी नाम का एक समूह बनाएगा । मैं -Gस्विच का उपयोग करके एक साथ निर्दिष्ट पूरक समूहों को जोड़ूंगा।


1
धन्यवाद। अगर मैं करता हूँ usermod -g hilbert hilbertकि हिल्बर्ट के अन्य समूहों को हटा देंगे? यदि ऐसा है, तो मैं उन अन्य समूहों को कैसे रखूंगा? यदि नहीं, तो क्या मैं उन्हें अपने अन्य समूहों से हटाऊंगा?
cwd

इसका परीक्षण करें और अपने विशेष वातावरण के लिए देखें।
ewwhite

@ MIck के जवाब से मेरा उत्थान हो जाता है क्योंकि वह बताते हैं कि आपको -G के साथ -a का उपयोग करने की आवश्यकता है (अन्यथा आपके द्वारा छोड़ा गया कोई भी समूह हटा दिया जाएगा )
Jeff

9

आपको यह पढ़ने की ज़रूरत है man usermodकि विभिन्न विकल्पों के साथ क्या होता है:

usermod -g hilder hilder

जब तक आपका समूह 'फैकल्टी' से 'हर्टल' में प्रवेश नहीं करेगा, जब तक कि समूह 'हिटल' मौजूद है। अगर यह मौजूद नहीं है तो आपको पहले इसे ग्रुपड के साथ बनाना होगा।

जब आप -Gविकल्प का उपयोग करते हैं तो आपको -aनए समूहों को पूरक समूहों की वर्तमान सूची में जोड़ने के लिए विकल्प का उपयोग करना चाहिए जो उपयोगकर्ता 'हिटलर' के हैं। -aविकल्प के बिना आप वर्तमान पूरक समूहों को एक नए समूह सेट के साथ बदल देंगे। इसलिए इस का सावधानी से उपयोग करें।


5

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

  • usermod -g new_group user_name
  • समाप्त सभी user_name 'सक्रिय सत्र s

अपने परिवर्तनों को चलाने के लिए idऔर के मूल्य को देखने के लिएgid=

यदि कमांड त्रुटियों के बिना चलती है, लेकिन जीआईडी ​​नहीं बदला है तो आप चरण 2 के साहसिक भाग से चूक गए हैं।


1

उत्तर # 1 अच्छा है, फिर भी आप एक नया समूह जोड़ने के लिए निम्नलिखित समस्याएँ चुन सकते हैं:

# nano /etc/group

/etc/groupसीधे संपादन का नकारात्मक पक्ष यह है कि आपको अप्रयुक्त जीआईडी ​​(समूह आईडी नंबर) के साथ आना होगा।

निम्नलिखित आपको उपयोगकर्ता के प्राथमिक समूह को बदलने की अनुमति देगा। # nano /etc/passwd

आप उपयोगकर्ता की लाइन का पता लगाते हैं, और GID (समूह संख्या, इसे देखें /etc/group) में परिवर्तन करते हैं , ध्यान रखें कि सिंटैक्स निम्नानुसार है:

 <name>:*:<UID>:<GID>:<comment>:<directory>:<shell>

कोई नकारात्मक पहलू मैं इस दृष्टिकोण के बारे में सोच सकता है (बशर्ते आप GID जानते हैं) नहीं है, यह क्या मैं अक्सर स्थानीय उपयोगकर्ताओं के लिए उपयोग करते हैं, जिसका मुख्य कारण मैं भिन्न साथ कई अलग अलग यूनिक्स प्रणालियों का उपयोग है usermod, adduserऔर useraddआदेश विकल्प।

यह थोड़ा अधिक मैनुअल है, हालांकि काम करता है। ध्यान दें कि आप फ़ाइलों को संपादित करने के लिए viiso nanoका उपयोग कर सकते हैं , यदि आप जानते हैं vi


0

उपयोगकर्ता के प्राथमिक समूह को स्थायी रूप से बदलने के लिए:

  • usermod -g groupname उपयोगकर्ता नाम कमांड

या आप newgrpछोटे पर्यावरण और अस्थायी स्थिति के लिए उपयोग कर सकते हैं ।

एक नया उपयोगकर्ता बॉब और एक नया समूह बनाएं dodo

useradd bob

तो RedHat / Centos में हमारे पास UID = (ID_number) बॉब है; GID = (ID_number) bob डिफ़ॉल्ट रूप से प्राथमिक समूह के रूप में

groupadd dodo

उपयोगकर्ता बॉब को dodoसमूह में जोड़ें :

usermod -aG dodo bob -make sure to use "a"

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

newgrp dodo

पासवर्ड रखने और भविष्य के प्राथमिक समूह के सदस्य होने के लिए अपने खाते से सावधान रहें। और न्यूग्रेप एक नया खोल खोलता है; जब तक उपयोगकर्ता उस शेल में रहता है, प्राथमिक समूह नहीं बदलेगा। प्राथमिक समूह को मूल में बदलने के लिए, आप बाहर निकलें कमांड चलाकर नया शेल छोड़ सकते हैं।

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