لینوکس از «گروه های کاربری» برای دسته بندی کاربران استفاده میکند. Groups مجموعه یی از اکانت های کاربری هستند که از Permission (پرمیشن یا مجوز) های یکسانی برخوردارند. مدیریت گروههای کاربری در لینوکس از طریق فایلی که در مسیر etc/group/ قرار دارد صورت میگیرد؛ به عبارت دیگر، گروههای کاربری در لینوکس به منظور ایجاد دسته یی از کاربران که دارای نیازهای یکسان، اهداف یکسان، مجوزهای یکسان و مسائل امنیتی مشابهی میباشند مورد استفاده قرار میگیرند و به صورت پیش فرض، هر کاربری که در لینوکس ساخته میشود به یک گروه پیشفرض یا اصلی تعلق دارد.
تمامی کاربران سیستم عامل گنو/لینوکس از یک شناسه ی کاربری تحت عنوان uid برخوردارند که یک عدد صحیح -مثلا ۱۰۰۰- است؛ علاوه بر این، هر کاربر از یک شناسه ی گروه کاربری هم تحت عنوان gid برخوردار میباشد. با استفاده از دستور groupadd میتوان اقدام به ایجاد یک گروه کاربری جدید در لینوکس کرد:
groupadd admins
حال اگر نگاهی به داخل فایل etc/group/ بیندازیم، خواهیم دید که در خط آخر گروهی تحت عنوان admins اضافه شده است.
نکته |
همان طور که پیش از این گفتیم، برای حذف/اضافه نمودن کاربر یا گروه، نیازمند سطح دسترسی root می باشیم که با وارد کردن دستور sudo su سپس وارد کردن پسورد می توان با این سطح دسترسی اقدام به وارد کردن کامندها در ترمینال نمود و یا به عنوان راه کاری جایگزین، می توان در ابتدای کامندهای groupadd یا useradd از دستور sudo استفاده نموده و هر بار پسورد را وارد نماییم. |
در صورتی هم که بخواهیم گروه مد نظر را حذف نماییم، میتوانیم از کامند groupdel استفاده نماییم:
groupdel admins
در صورتی که مجدد به فایل etc/group/ نگاهی بیندازیم، خواهیم دید که دیگر گروهی تحت عنوان admins وجود ندارد. حال سؤالی که ممکن است پیش بیاید این است که چگونه یک کاربر را میتوان به گروهی که ایجاد کردهایم اضافه نماییم؟ در پاسخ به این سؤال بایستی گفت که دستور usermod این کار را به سادگی برایمان انجام خواهد داد. برای روشن تر شدن این مسئله، ابتدا یک گروه کاربری جدید تحت عنوان developers ایجاد میکنیم:
groupadd developers
سپس با استفاده از دستور زیر کاربری جدید تحت عنوان behzadmoradi ایجاد میکنیم:
useradd behzadmoradi
حال با استفاده از دستور زیر میتوانیم کاربر behzadmoradi را به گروه کاربری developers اختصاص دهیم:
usermod -G developers behzadmoradi
در لینوکس دستوری داریم تحت عنوان groups که نشانگر گروههای کاربری است که یک کاربر به آنها اختصاص دارد. اکنون برای آن که مطمئن شویم کاربر behzadmoradi به گروه کاربری developers اختصاص داده شده است یا خیر، دستور زیر را در کامند لاین اجرا میکنیم:
groups behzadmoradi
به عنوان خروجی دستور فوق داریم:
behzadmoradi : behzadmoradi developers
در صورتی که بخواهیم کاربر behzadmoradi را از گروه developers حذف کنیم، دستور زیرا را می بایست وارد ترمینال کنیم:
usermod -G behzadmoradi behzadmoradi
حال اگر دستور groups behzadmoradi را در ترمینال وارد کنیم که برای نشان دادن گروههایی است که یک کاربر به آنها تعلق دارد، با خروجی زیر مواجه خواهیم شد:
behzadmoradi : behzadmoradi
می بینیم که این کاربر از گروه کاربران developers حذف شده و فقط به گروه کاربری behzadmoradi که به صورت پیش فرض در حین ساخت این اکانت جدید ایجاد شده تعلق دارد.