किसी विशिष्ट समूह का परिवर्तन बदलें


34

मैं एक विशिष्ट समूह की समूह आईडी बदलना चाहूंगा। किसी फ़ाइल या निर्देशिका के gid को बदलने के लिए समाधान हो सकते हैं। लेकिन ऐसा मैं नहीं चाहता। क्या ऐसा करने के लिए कोई रास्ता है?

जवाबों:


42

GID समूह का प्राथमिक पहचानकर्ता है। जहां तक ​​सिस्टम का सवाल है, एक अलग जीआईडी ​​एक अलग समूह है। इसलिए GID को बदलने के लिए, आपको उन सभी स्थानों को संशोधित करना होगा जहां GID का उपयोग किया जाता है।

आपको GID को महत्वपूर्ण मानने से बचना चाहिए और इसके बजाय समूह नामों का उपयोग करना चाहिए; आप एकल कमांड (लिनक्स पर groupmod -n NEW_GROUP_NAME OLD_GROUP_NAME) के साथ एक समूह का नाम बदल सकते हैं ।

हालाँकि, यदि आप वास्तव में GID बदलना चाहते हैं, तो यह है:

  • सबसे पहले, आपको समूह में उपयोगकर्ताओं को लॉग आउट करना होगा और उन समूहों को मारना होगा जिनके पास उस समूह को उनके प्रभावी, वास्तविक या सहेजे गए समूह के रूप में रखा गया है।
  • समूह डेटाबेस में प्रविष्टि बदलें। लिनक्स पर, भागो groupmod -g NEWGID GROUPNAME। अन्य प्रणालियों पर, उस सिस्टम के प्रशासन उपकरण का उपयोग करें, या vigrयदि उपलब्ध हो, या /etc/groupलागू के रूप में संपादित करें ।
  • अपने सिस्टम की सभी फाइलों के समूह को बदलें जो पुराने समूह से संबंधित हैं।

    find / -gid OLDGID ! -type l -exec chgrp NEWGID {} \;
    
  • chgrp साफ और झंडे को साफ करता है, उन लोगों को पुनर्स्थापित करता है।

  • यदि आपके पास कोई संग्रह है जो पुराने GID का उपयोग करता है, तो उसका पुनर्निर्माण करें।
  • यदि आपके पास कोई कॉन्फ़िगरेशन फ़ाइल या स्क्रिप्ट है जो पुराने GID का संदर्भ देती है, तो उसे अपडेट करें।
  • नई GID का उपयोग करने वाली सभी प्रक्रियाओं को पुनरारंभ करें।

2
के chgrp -h ...बजाय का उपयोग कर सुझाव दें chgrp ...। इसके बिना -h, किसी भी प्रासंगिक सीलिंक के लक्ष्य को उसके समूह को बदल दिया जाएगा।
मार्क प्लॉटनिक

3
groupmodमेरे लिए मुख्य तर्क के रूप में एक नाम लें ...groupmod -g NEWGID GROUPNAME
मैट

29

उपयोग करने का सबसे आसान तरीका है groupmod -g <NEW_GID> <groupname>

एक और तरीका /etc/groupसीधे संपादित करना है। प्रत्येक स्तंभ में तीसरा क्षेत्र gid है।

बदली हुई समूह एक उपयोगकर्ता के मुख्य समूह है, तो /etc/passwdअनुकूलित किया जाना है, भी जरूरत है: usermod -g <NEW_GID> <username>


क्या यह फाइलों पर भी असर करेगा? मेरा मतलब है, फ़ाइल का gid और समूह का gid एक ही समय में बदल जाएगा?
mibzer

1
नहीं। यह केवल समूह की आईडी को बदल देगा। फ़ाइलें / निर्देशिकाएँ उनके (अब अनाम) gid रखता है और अलग से बदलने की जरूरत है।
जोफेल

ठीक है धन्यवाद। इसलिए अगर मैं उनकी (फाइलें) जीआईडी ​​को नए जीआईडी ​​में बदलना चाहता हूं, तो मुझे एक और कमांड निष्पादित करनी होगी। क्या वह सही है ? यह बेहतर होगा यदि एक ही समय में froup फ़ाइल के gid और संबंधित फ़ाइलों के gid दोनों को बदलने का तरीका है।
मिबज़र

मैंने अपने उत्तर में दूसरी कमांड जोड़ी है। यह एक समस्या नहीं है यदि अस्थायी gid का उपयोग किया जाता है जो / etc / group में नहीं है। समूह के प्रत्येक उपयोगकर्ता को नया gid करने के लिए पुनः लॉगिन करना होगा।
जोफेल

0

खोज / पथ-समूह foo -print0 | xargs -0 चेंग बार


जैसा कि मैंने कहा कि फाइलों का gid बदल देगा। लेकिन मेरा मतलब यह नहीं है। मैं एक फ़ाइल नहीं एक समूह के gid बदलना चाहते हैं।
mibzer

ठीक है, मैं उलझन में था, फिर 'vi / etc / group' :)
jirib
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.