আপনি যখন চালনা করেন , তখন এটি প্রদত্ত ব্যবহারকারীর মধ্যে 1 টি দেখায় এবং (যদিও এটি এলডিএপি, এনআইএস বা অন্য কিছু হতে পারে 2 ) এবং আপনাকে পাওয়া সমস্ত গোষ্ঠী দেখায়।groups username/etc/passwd/etc/group
অন্যদিকে, যখন আপনি চালাতে groupsকোনো আর্গুমেন্ট ছাড়া কমান্ড, এটা শুধু সকল গোষ্ঠী তালিকাবদ্ধ এটি নিজে জন্যে 3 যা - অগত্যা কি তালিকাভুক্ত করা হয় হিসাবে একই /etc/group। (একটি ব্যাখ্যা জন্য নিচে দেখুন।) বস্তুতপক্ষে, শুধুমাত্র লুক-করানো /etc/groupগ্রুপ নামের GIDs অনুবাদ জন্যে।
প্রতিটি প্রক্রিয়ার শংসাপত্রগুলির একটি সেট থাকে, যা (অন্যান্য জিনিসের মধ্যে) একটি "রিয়েল গ্রুপ আইডি" (প্রাথমিক জিআইডি), একটি "কার্যকর গ্রুপ আইডি" (ইজিআইডি) এবং "পরিপূরক গ্রুপ" আইডিগুলির একটি তালিকা (মাধ্যমিক জিআইডি) থাকে। ডিফল্টরূপে, একটি প্রক্রিয়া তার অভিভাবকের কাছ থেকে তার শংসাপত্রগুলি উত্তরাধিকার সূত্রে পায়; তবে, রুট হিসাবে চলমান প্রক্রিয়াগুলি (ইউআইডি 0) বা CAP_SETUIDসক্ষমতা থাকা স্বেচ্ছাসেবী শংসাপত্রগুলি সেট করার অনুমতি দেয়।
বিশেষত, আপনি যখন লিনাক্সে লগ ইন করেন (কোনও টিটিআই, এক্স 11, বা এসএসএইচের উপরের), লগইন প্রক্রিয়া (/ বিন / লগইন, জিডিএম, এসএসডি) আপনার ইউআইডি, প্রাথমিক জিআইডি এবং সেকেন্ডারি জিআইডি নির্ধারণ করতে আপনার ব্যবহারকারীর নাম সন্ধান করে । একটি ব্যক্তিগত মেশিনে, এর অর্থ কেবলমাত্র উপযুক্ত লাইনগুলি passwdএবং groupফাইলগুলি (বা এনআইএস, এলডিএপি, ইত্যাদি) পড়া।
এর পরে, লগইন প্রক্রিয়াটি আপনার অধিবেশন শুরুর আগে 4 টি শংসাপত্রগুলিতে স্যুইচ করে এবং এখন থেকে আপনি যে প্রতিটি প্রক্রিয়া শুরু করবেন তার যথাযথ ইউআইডি এবং জিআইডি থাকবে - সিস্টেমটি /etc/groupএখন 5 টি পরীক্ষা করে না এবং কোনও পরিবর্তনই গ্রহণ করবে না।
এইভাবে, /usr/bin/groupsপ্রক্রিয়াটি একই গ্রুপের অন্তর্গত হবে যখন আপনি লগ ইন করার সময় করেছিলেন , ডাটাবেস যা বলে আপনি তাতে না।
দ্রষ্টব্য: উপরের ব্যাখ্যাটি প্রায় সমস্ত ইউনিক্সের ক্ষেত্রেও প্রযোজ্য; উইন্ডোজ এনটি পরিবারের কাছে (ইউআইডি এবং জিআইডি ব্যতীত সবাইকে "এসআইডি" বলা হয়, কোনও "প্রাথমিক গ্রুপ" নেই, শংসাপত্রগুলিকে "প্রসেস টোকেন" বলা হয়, এবং CAP_SETUIDএটি সেক্রেটটোকেনপ্রাইভিলিজ বা SeTcbPrivilege ); এবং সম্ভবত বেশিরভাগ অন্যান্য বহু-ব্যবহারকারী অপারেটিং সিস্টেমের ক্ষেত্রে।
1 গেটপুইউড () এবং গেটগ্রুপলিস্ট () ব্যবহারকারীর গ্রুপগুলি অনুসন্ধান করতে ব্যবহৃত হয়।
2 লিনাক্সে, গ্লিবিসি এই তথ্যটি কোথায় সন্ধান করবে /etc/nsswitch.confতা নির্ধারণ করতে ব্যবহার করে ।
3 groups নিজস্ব শংসাপত্রগুলি পেতে getgid (), getegid () এবং getgroups () ব্যবহার করে।
4 সেটুইড (), সেটগিড (), আরগ্রোগস () এবং সম্পর্কিত।
5 ব্যতিক্রম, অবশ্যই, বিভিন্ন সরঞ্জাম যা উঁচু চালনা করুন (হয় setuid যেমন) su, sudo, sg, newgrp, pkexec, ইত্যাদি। এর অর্থ su $USERএটি আপডেট হওয়া গ্রুপ তালিকার সাথে একটি শেল স্প্যান করবে।