با یادگیری بیشتر در مورد گروه های کاربری موجود در رایانه لینوکس خود، در مدیریت کاربر بهتر شوید.
گروههای کاربری در لینوکس به شما کمک میکنند مجموعهای از مجوزها را تعریف کنید که سپس میتوانید به سایر کاربران تحمیل کنید. یونیکس و لینوکس با برخی از گروه های کاربری از پیش پیکربندی شده عرضه می شوند و به عنوان مدیر، ایجاد گروه های اضافی برای دسته بندی و مدیریت بیشتر کاربران آسان است.
اما قبل از ایجاد یک گروه جدید، میخواهید درباره گروههای موجود بیشتر بدانید. خوشبختانه، راههای مختلفی برای فهرست کردن همه گروههای کاربری موجود در لینوکس وجود دارد، و حتی میتوانید فهرست گروههایی را که یک کاربر خاص بخشی از آنهاست، مشاهده کنید. بیا شروع کنیم.
با استفاده از فایل /etc/group
فایل /etc/group حاوی اطلاعات مربوط به تمام گروههای کاربر محلی است که روی یک ماشین لینوکس پیکربندی شدهاند. با فایل /etc/group، می توانید نام گروه، رمز عبور، شناسه گروه و اعضای مرتبط با هر گروه را مشاهده کنید.
محتویات فایل را با استفاده از دستور cat مشاهده کنید:
cat /etc/group
خروجی ممکن است در ابتدا گیج کننده باشد. اسم گروه ها کجاست؟ و این “x”ها و دو نقطه در خروجی چیست؟
ستون اول (متن قبل از دو نقطه اول) همان چیزی است که شما به دنبال آن هستید. شما می توانید یک نسخه زیبا از فایل را مشاهده کنید و تنها نام گروه ها را با استفاده از دستور cut نمایش دهید:
cat /etc/group | cut -d: -f1
این لیست ساده هم برای چشم راحت تر است و هم برای استفاده در اسکریپت ها عالی است.
همچنین می توانید با استفاده از wc تعداد کل گروه های محلی را در دستگاه خود بشمارید:
cat /etc/group | wc -l
برای جالب کردن چیزها، با استفاده از دستور groupadd یک گروه جدید ایجاد کنید و سپس تعداد کل گروه های کاربری را در سیستم خود مشاهده کنید. همانطور که واضح است، تعداد یک افزایش می یابد و شما می توانید نام گروه لیست شده در خروجی را ببینید.
لیست گروه ها با استفاده از دستور getent
getent، مخفف “get entries” یک دستور لینوکس برای مشاهده محتویات فایل های اطلاعات سیستم، همچنین به عنوان پایگاه داده، در لینوکس است. فایل های /etc/group، /etc/passwd و /etc/shadow نمونه های خوبی از چنین پایگاه های داده ای هستند.
استفاده از دستور getent برای مشاهده اطلاعات گروه کاربر در لینوکس ساده است. تنها کاری که باید انجام دهید این است که getent و سپس فایلی که می خواهید مشاهده کنید را تایپ کنید. در این مورد، فایل گروه است.
getent group
خروجی “گروه getent” کمی با دستور cat /etc/group متفاوت خواهد بود. این به این دلیل است که getent اطلاعات گروه را از سایر پایگاههای داده مشابه در سیستم شما (به عنوان مثال LDAP) میکشد.
از دستور cut برای تجزیه خروجی و نمایش فقط نام گروه استفاده کنید:
getent group | cut -d: -f1
دستور getent همه کاره است. میتوانید با دریافت تمام ورودیها از فایل /etc/passwd و سپس تجزیه خروجی برای نامهای کاربری، نام همه کاربران لینوکس را فهرست کنید.
مشاهده لیست گروه برای یک کاربر خاص با استفاده از گروه ها
تطبیق بصری نام کاربران با گروه های آنها با استفاده از روش های قبلی دشوار است. اگر میخواهید فقط گروههایی را فهرست کنید که یک کاربر خاص بخشی از آن است، به جای آن از دستور group استفاده کنید.
سینتکس اصلی دستور به صورت زیر است:
groups username
اگر نام کاربری را مشخص نکنید، خروجی همه گروهها را برای کاربر فعلی نمایش میدهد. اما برای وضوح، بهتر است یک نام کاربری به عنوان استدلال ارائه کنید.
برای دریافت لیستی از گروه ها برای کاربری به نام “testuser”، اجرا کنید:
groups testuser
گروه ها کنترل دسترسی کاربر را در لینوکس ساده می کنند
از نظر فنی، کاربر ریشه مالک کل سیستم است و مجوزهایی دارد که هیچ کاربر دیگری ندارد. گروهها راهی برای ابرکاربر برای دستهبندی کاربران، اعطای مجوز به آنها و اعمال محدودیتهایی برای جلوگیری از انجام عملیات نامطلوب است.
به جای اعطای مجوز به هر کاربر، می توانید یک گروه ایجاد کنید و همه کاربران را به آن اضافه کنید. سپس تنها کاری که باید انجام دهید این است که مجوزهای گروه مذکور را مدیریت کنید و قوانین به صورت خودکار بر اعضا تحمیل می شود. این یکی از روش های متعدد برای مدیریت کاربران در لینوکس و سایر سیستم عامل های مرتبط با یونیکس است.