این مطلب رو قبلا با هدف دیگه ای تهیه کردم. ولی مطمئنا به درد این موضوع هم می خوره
سناریو: فرض کنید اعضای کلاس، کاربران سیستمی هستند که تعداد زیادی کاربر دارد. در این سیستم هدف این است که فقط اعضای کلاس بتوانند به فایل هایی که در فرایند کلاس تولید شده دست پیدا کنند و بقیه کاربران حتی اجازه دیدن فعالیت های کلاس را ندارند. می خواهیم راه حلی روی یک سیستم لینوکسی برای این مسئله ارائه دهیم.
گام اول: با استفاده از کاربر ریشه وارد سیستم شده و گروهی را به نام farmad ایجاد می کنیم و برای آن یک کلمه عبور تنظیم می کنیم.
root@localhost# groupadd farmad
root@localhost#gpasswd farmad
گام دوم: حال باید گروه جاری را به گروه farmad تغییر دهیم و با استفاده از این گروه یک پوشه برای فایل های کلاسی درست کنیم و مجوزهای دسترسی را برای آن به گونه ای تنظیم کنیم که اجازه دسترسی به دیگران را ندهد. اگر این کار را انجام ندهیم پوشه به صورت پیش فرض با گروه مربوط به کاربر ریشه ایجاد می شود و امکان دسترسی برای کاربران مد نظر ما وجود ندارد.به صورت زیر عمل می کنیم.
root@localhost#newgrp farmad
root@localhost# mkdir class-files
root@localhost# chmod o-rwx classfiles
گام سوم: فرض می کنیم کاربران مورد نظر قبلا ایجاد شده اند. برای اینکه کاربران مورد نظر بتواند به محتوای پوشه دسترسی داشته باشند باید آنها را به اعضای این گروه اضافه کنیم. فرض کنید کاربری به نام yaser در سیستم داریم. این کاربر به صورت عادی نمی تواند محتوای پوشه class-files را مشاهده کند. می خواهیم این کاربر بتواند به محتوای پوشه دسترسی داشته باشد.
root@localhost#gpasswd –a yaser farmad
حال که کاربر مورد نظر به گروه اضافه شد می تواند به محتوای پوشه دسترسی داشته باشد. برای این کار باید گروه پیش فرض خود را به گروه farmad تغییر دهد. این کاربر به صورت زیر عمل می کند.
yaser@localhost$ newgrp farmad
چند نکته: در هر مرحله می توانید بررسی کنید که آیا کاربر مورد نظر اجازه دسترسی دارد یا نه. برای این کار می توانید از ls –ld بر روی پوشه class-files استفاده کرده و مجوزهای دسترسی را برای آن بررسی کنید. لیست گروه هایی که کاربر در آنها عضویت دارد با دستور groups قابل بررسی است. دستور newgrp گروه پیش فرض کاربر را تغییر می دهد. می توانید با یک کاربر دیگر که عضو این گروه نیست مسئله را بررسی کرده و ببیند می تواند محتوی پوشه مربوط به کلاس ما را مشاهده کند یا خیر.