परिदृश्य एवं पृष्ठभूमि
मल्टी-यूज़र लिनक्स वातावरण में डेटा की सुरक्षा, फ़ाइल अनुमतियों का पृथक्करण और टीमों के बीच सुचारू सहयोग सुनिश्चित करने के लिए उपयोगकर्ता समूहों (Groups) का प्रबंधन बेहद अहम भूमिका निभाता है। जब कई डेवलपर्स या सिस्टम प्रक्रियाएं एक ही सर्वर पर साझा संसाधनों के साथ कार्य करती हैं, तब सही अनुमतियों के बिना सुरक्षा जोखिम उत्पन्न हो सकते हैं। इस ट्यूटोरियल में हम उबंटू के अंतर्गत addgroup टूल के व्यावहारिक उपयोग, नए ग्रुप्स के निर्माण, कस्टम सेटिंग्स और बैकएंड पर /etc/group फ़ाइल के साथ होने वाले आंतरिक समन्वय को गहराई से समझेंगे।
addgroup का बुनियादी प्रयोग और स्टैंडर्ड ग्रुप का निर्माण
टर्मिनल पर अभ्यास शुरू करने से पूर्व यह सुनिश्चित करना आवश्यक है कि ऑपरेटिंग सिस्टम में adduser पैकेज मौजूद हो, क्योंकि addgroup इसी पैकेज का हिस्सा है:

सिस्टम में नया सुरक्षा संदर्भ या टीम विभाजन तैयार करने के लिए addgroup उपयोगिता काम में ली जाती है। जब किसी अतिरिक्त फ़्लैग के बिना इसे रन किया जाता है, तो लिनक्स कॉन्फ़िगरेशन में निर्धारित डिफ़ॉल्ट रेगुलर यूज़र रेंज में से अगला उपलब्ध GID (Group ID) स्वचालित रूप से चुन लिया जाता है।
⚙️ [सर्वाधिक उपयोगी विकल्प]
--gid GID : सिस्टम द्वारा ऑटो-असाइनमेंट के बजाय अपनी पसंद का निश्चित GID मैन्युअली निर्धारित करने के लिए।--system : आम उपयोगकर्ताओं के स्थान पर बैकग्राउंड डेमन्स और सिस्टम सेवाओं हेतु सुरक्षित ग्रुप (सामान्यतः GID 1000 से कम) रजिस्टर करने के लिए।--quiet : टर्मिनल पर निष्पादन के दौरान आने वाले सामान्य स्टेटस मैसेजेस को म्यूट रखने के लिए।--debug : निष्पादन के दौरान पर्दे के पीछे चल रहे हर तकनीकी चरण और लॉग्स की विस्तृत जानकारी स्क्रीन पर देखने हेतु।--force-badname : सिस्टम की मानक नेमिंग कन्वेंशन से बाहर के वर्णों (जैसे अपरकेस या विशेष चिह्न) वाले ग्रुप नाम को ज़बरदस्ती स्वीकार कराने के लिए।

फ़ाइल सिस्टम के डेटाबेस में हुए बदलाव को सत्यापित करने के लिए /etc/group की नवीनतम प्रविष्टियों की जांच tail -n 3 /etc/group चलाकर की जा सकती है। इससे यह साफ हो जाता है कि हमारा नया ग्रुप devteam अपने आवंटित GID के साथ फ़ाइल के अंत में दर्ज हो चुका है:

कस्टम GID का आवंटन और सिस्टम ग्रुप (–system) तैयार करना
कई बार विशेष अनुपालन नीतियों या सर्वर-टू-सर्वर माइग्रेशन के तहत हमें पहले से तय GID की आवश्यकता होती है। ऐसे परिदृश्यों में --gid विकल्प के ज़रिए वांछित मान (जैसे 1500) सीधे निर्दिष्ट करके qa-team ग्रुप तैयार किया जा सकता है:

दूसरी ओर, एप्लिकेशन सेवाओं और सिस्टम बैकग्राउंड प्रोसेसेज़ को मानव उपयोगकर्ताओं से अलग सुरक्षा डोमेन में रखना सर्वर सुरक्षा का बुनियादी नियम है। इसके लिए --system पैरामीटर का प्रयोग किया जाता है, जिससे उबंटू सिस्टम-आरक्षित GID पूल (100–999) में से रिक्त पहचानकर्ता (उदा. 103) को app-service के लिए सुरक्षित कर देता है:

इन दोनों ग्रुप्स के सफलतापूर्वक जुड़ने और उनके पहचान क्रमांकों की पुष्टि करने के लिए grep द्वारा पैटर्न सर्च किया जा सकता है। आउटपुट से यह स्पष्ट हो जाता है कि qa-team को साधारण श्रेणी का 1500 और app-service को सिस्टम श्रेणी का 103 प्राप्त हुआ है:

मौजूदा यूज़र को ग्रुप में शामिल करना और सदस्यता सत्यापन
समूह सदस्यता के व्यावहारिक परीक्षण के लिए हमें एक प्रयोगात्मक यूज़र खाते की आवश्यकता होगी। यदि testuser पहले से मौजूद नहीं है, तो उसे होम डायरेक्टरी और बैश शेल के साथ इनिशियलाइज़ कर लेते हैं:

अब addgroup कमांड के सरल सिंटैक्स का उपयोग करते हुए पहले यूज़रनेम और उसके बाद टार्गेट ग्रुपनेम देकर testuser को devteam का द्वितीयक (supplementary) सदस्य घोषित किया जा सकता है:

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

addgroup की आंतरिक संरचना और कॉन्फ़िगरेशन फ़ाइलों का विश्लेषण
यह समझना तकनीकी रूप से आवश्यक है कि addgroup नए पहचान क्रमांक किस आधार पर चुनता है। /etc/adduser.conf फ़ाइल की प्राथमिक सेटिंग्स को फ़िल्टर करके हम देख सकते हैं कि साधारण और सिस्टम दोनों प्रकार के ग्रुप्स के लिए GID की न्यूनतम एवं अधिकतम सीमाएं किस प्रकार परिभाषित हैं:

जब कोई ग्रुप पंजीकृत होता है, तो उसकी वास्तविक प्रविष्टि /etc/group में किस प्रारूप में लिखी जाती है, इसे देखने के लिए grep का सहारा लिया जा सकता है। परिणाम में चार स्पष्ट फ़ील्ड्स कोलन (:) द्वारा अलग दिखते हैं—समूह का नाम, पासवर्ड प्लेसहोल्डर (x), आवंटित संख्यात्मक GID (1001), और उससे जुड़े सदस्यों की सूची:

सुरक्षा की दृष्टि से ग्रुप का पासवर्ड और प्रशासनिक अधिकार सादे रूप में न रहकर /etc/gshadow में एन्क्रिप्टेड रूप में संचित होते हैं। फ़ील्ड में मौजूद लॉक प्रतीक (!) यह सुनिश्चित करता है कि समूह के पास कोई सीधा लॉगिन पासवर्ड सक्रिय नहीं है और इसका नियंत्रण केवल अधिकृत एडमिनिस्ट्रेटर तक ही सीमित है:

इस प्रकार, उबंटू सर्वर पर addgroup केवल एक साधारण कमांड नहीं है, बल्कि परमिशन लेयर्स को सुव्यवस्थित रखने वाला एक सशक्त टूल है। सही ग्रुप नीतियों और न्यूनतम विशेषाधिकार (Least Privilege) के सिद्धांत को लागू करके आप अपने लिनक्स इन्फ्रास्ट्रक्चर को अनधिकृत एक्सेस से सुरक्षित रख सकते हैं।