منبع اصلی نوشتار زیر در این لینک قرار دارد

مجوز ها در یونیکس – بخش سوم (SGID و تنظیم آن در یونیکس ها)

SGID مخفف Set Group ID یک نوع خاص از مجوز ها در یونیکس هاست. مجوز های رایج write,read و execute هستند. بصورت معمول وقتی در یونیکس یک برنامه اجرا می شود، آن برنامه مجوز ها دسترسی را از کاربر وارد شده (logged user) به ارث می برد. SGID مجوزی موقتی است که به کاربر داده می شود تا تحت مجوز گروه مالک فایل بتواند برنامه را اجرا کند. (یعنی کاربر با SGID همان مجوز اجرایی را تحت عضو بودن آن گروه خواهد داشت). مجوز مشابه SGID، مجوز SUID است که می توانید از اینجا مطالعه کنید.تفاوت این دو در این است که SUID مجوز مالک یا owner فایل را در نظر می گیرد ولی SGID مجوز گروه مالک فایل را در نظر می گیرد.

از دو روش “نمادی یا Symbolic” و “عددی یا Numeric” می توانید برای تنظیم کردن SGID بر روی فایل استفاده کنید. دستور زیر توسط s+ بیت SGID را برای گروه مالک فایل تنظیم می کند.

chmod g+s file1

یا از دستور زیر به صورت عددی استفاده کنید. عدد 2 ابتدای فایل نشان دهنده تنظیم SGID بر روی فایل است و این در صورتی است که عدد 4 نشان دهنده تنظیم SUID بر روی فایل است.

chmod 2750 file1

در مثال بالا عدد 7 نشان دهنده داشتن مجوز های read, write و execute برای مالک فایل، عدد 5 نشان دهنده داشتن مجوز های read و execute برای گروه مالک فایل و عدد 0 نشان دهنده عدم داشتن هیچ مجوزی برای دیگر کاربران است. در خروجی دستور ls -l از یک فایل و در صورتی که SGID بر روی فایل تنظیم شده باشد، انگاه مانند خروجی زیر، s به جای بخش execute در بخش گروه مالک فایل جایگزین شده است.

rwxr-sr– 1 xyz xyzgroup 148 Dec 22 03:46 file1-

وجود S (حرف S بزرگ) پس از تنظیم SUID یا SGID نشان دهنده عدم داشتن مجوز اجرایی برای آن فایل است (مانند یک فایل اسکریپت). به طور مثال در خروجی بالا s (حرف s کوچک) نشان داشتن مجوز اجرایی تحت گروه مالک آن فایل است. (توجه کنید که s یا S برای SUID در جای مجوز execute در قسمت نشان دهنده مجوز مالک یا owner فایل قرار می گیرد.). پس لازم است که با دستور زیر مجوز اجرایی را به گروه مالک فایل بدهید.

chmod g+x file1

یا برای مالک فایل از دستور زیر استفاده کنید تا مجوز اجرایی به مالک داده شود.

chmod a+x file1

به هر حال پس از انجام دستور های بالا و تنظیم SUID و SGID بر روی فایل، حرف s کوچک نسبت به تنظیمات قرار داده می شود. همچنین با دستور زیر SGID از فایلی توسط s- حذف خواهد شد.

chmod g-s file1

همچنین از دستور find برای پیدا کردن تمامی فایل ها با مجوز SGID استفاده می کنیم. (توجه کنید از عدد 2 برای تنظیم SGID  استفاده کردیم، به طور مثال مانند آنچه که در بالا گفته شد، 2750. پس هر عددی بالاتر از مجوز 2000 شامل این جستجو است)

find  /bin  -perm  +2000  -exec  ls -l {} \; > sgidfound

راهنمای دستور find



برچسب ها : , , , , , , , ,

به سیاره لینوکس امتیاز دهید

به اين صفحه امتياز دهيد