(टिप्पणी: groupsकमान, हालांकि अभी भी उपयोगी है, ज्यादातर आईडी कमांड द्वारा अधिगृहीत है ।)
एक उपयोगकर्ता के पास एक प्राथमिक समूह होता है जिसे परंपरागत रूप से उस फ़ाइल /etc/passwdफ़ाइल में परिभाषित किया
जाता है जिसके साथ वह लॉग इन करता है, लेकिन आज अन्य स्रोत हो सकते हैं। वह अतिरिक्त समूहों का सदस्य भी हो सकता है, जिसे माध्यमिक या पूरक समूहों के रूप में जाना जाता है, जो परंपरागत रूप से फ़ाइल में निर्दिष्ट है /etc/groups, लेकिन जो आज अतिरिक्त स्रोतों (जैसे एनआईएस, एलडीएपी, एसएएमबीए आदि) से भी आ सकता है या निहित हो सकता है।
प्राथमिक और पूरक समूह लॉगिन के समय परिभाषित होते हैं और वर्तमान रहते हैं । हालाँकि, उपयोगकर्ता किसी भी समय कमांड
का उपयोग करके अपने वर्तमान सक्रिय प्राथमिक समूह को बदल सकता है newgrp।
लॉगिन प्रक्रिया प्राथमिक और पूरक समूहों को निर्धारित करती है। बाद में, यह आम तौर पर libc फ़ंक्शन को
inggroups कहता है , जो पूरक समूह डेटा की सूची को संकलित करता है और इसे सेटग्रुप फ़ंक्शन में
भेजता है, जो इसे प्रक्रिया के संदर्भ में स्थापित करता है।
जानकारी के स्रोत इस प्रकार initgroupsहैं:
जीएनयू सी लाइब्रेरी और कुछ अन्य अनुप्रयोगों द्वारा स्रोतों का निर्धारण करने के लिए उपयोग किया जाता है जहां से श्रेणियों की एक श्रेणी में नाम-सेवा की जानकारी प्राप्त की जा सकती है, और किस क्रम में। प्रत्येक श्रेणी की जानकारी डेटाबेस नाम से पहचानी जाती है।
groupsआदेश से पता चलता है समूहों के रूप में वर्तमान में लागू अपने उपयोगकर्ता के लिए, और सूची के साथ शुरू होगा वर्तमान प्राथमिक समूह लॉगिन के समय से अनुपूरक समूहों द्वारा पीछा किया। प्रदर्शित सूची के बाद से डेटा के स्रोतों में कोई भी परिवर्तन दिखाई नहीं देता है।
groups usernameआदेश लिनक्स के लिए पूछ रहा है की गणना है कि उपयोगकर्ता है, जो यह मुख्य फ़ाइलों का उपयोग करना होगा के लिए समूहों /etc/password
और /etc/groupsऔर उसके बाद अतिरिक्त स्रोतों। यह सिस्टम फ़ाइलों की वर्तमान स्थिति को प्रतिबिंबित करेगा और लॉगिन के समय से प्रभावी होने वाले वर्तमान समूहों के बराबर नहीं हो सकता है ।
groups usernameजब यह सभी स्रोतों प्रवेश प्रक्रिया अपने अनुपूरक समूहों, जो है जाहिरा तौर पर अपने मामले में क्या हुआ की गणना करने के लिए प्रयोग किया जाता का उपयोग नहीं करता आदेश एक अलग परिणाम दे सकता है। ये स्रोत आपके लॉगिन से सुलभ नहीं हो सकते हैं या केवल कमांड द्वारा परामर्श नहीं किया जा सकता है।
id usernameआदेश का उपयोग करना बेहतर परिणाम दे सकता है, हालांकि यह भी लॉगिन प्रक्रिया के रूप में पूरा होने की गारंटी नहीं है। idआदेश से नवीनतम है, और की तुलना में, पुराने और अधिक स्पष्ट होने का इरादा था groupsआदेश।
जबकि groupsकमांड एक सटीक और सही परिणाम देता है, आपने अच्छी तरह से प्रदर्शित किया है कि groups usernameकमांड को उसी पर निर्भर नहीं किया जा सकता है।
groupsआदेश के स्रोत-कोड की जांच किए बिना , मैं यह अनुमान लगाऊंगा कि groups usernameआपके लिनक्स वितरण में कमांड का कार्यान्वयन विश्लेषण करता है /etc/groups, जिसमें आपके मामले में कुछ भी नहीं था, लेकिन उपयोग नहीं करता है /etc/nsswitch.conf, जिसमें से आपके सभी पूरक समूह आए थे। इसलिए, केवल प्राथमिक समूह का नाम सूचीबद्ध है
jacob।
अधिक जानकारी के लिए देखें: