محمد نصیری
بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

Sticky Bit چیست و چگونه در لینوکس ایجاد و حذف می شود؟

خوب دوستان در سری آموزشی Linux Essentials ای که درست کردم یکی از قسمت ها مربوط به تعیین سطوح دسترسی در سیستم عامل لینوکس بود ، در این ویدیوی آموزشی ما به بررسی انواع سطوح دسترسی و ساختار Permission ها در لینوکس که بصورت read write execute و بصورت خلاصه rwx نمایش داده می شود توضیحاتی ارائه کردیم ، اما نکته ای در این خصوص وجود دارد ، شما ممکن است در ریشه پارتیشن لینوکسی خودتان با استفاده از دستور ls خروجی permission ها را مشاهده کنید و در انتهای کاراکترهای سطوح دسترسی چیزی به غیر از حروف rwx مشاهده کنید ، ممکن است به شکل زیر شما rwt مشاهده کنید ، این خروجی در مثال زیر کاملا پیداست :

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
Stikcy Bit در لینوکس چیست
drwxrwxrwt 30 root root 20480 Jan 11 12:17 /tmp

خوب دو سئوال در خصوص خروجی دستور بالا بایستی برای شما پیش بیاید ، اولین سئوال اینکه کاراکتر t در انتهای سطوح دسترسی چه می کند و از طرفی چرا پوشه tmp که پوشه temporary همه کاربران شبکه است بایستی سطح دسترسی به شکل 777 یعنی همه دارای دسترسی full control داشته باشد ؟ آیا این موضوع منطقی است ؟

خوب در پاسخ به این سئوالات ابتدا یک مثال می زنیم ، طبیعی است که هر کسی بایستی بتواند در دایرکتوری tmp فایل های خودش را قرار بدهد و هر کسی هم باید بتواند فایل های خودش را پاک کند ، پس به ناچار ما به همه دسترسی full control به این پوشه می دهیم ، اما نکته اینجاست که در چنین مواقعی من به عنوان کاربر unity نبایستی بتوانم محتویات فایلی که کاربر f.khanlari ایجاد کرده است را حذف کنم اما در حالت عادی با توجه به سطح دسترسی که کاربران به این پوشه دارند هر کسی می تواند فایل های دیگران را حذف کند ، پس چاره چیست ؟ چاره اینکار استفاده از تکنیکی به نام sticky bit است.

Sticky Bit چیست ؟

اگر با سطوح دسترسی در ویندوز آشنا باشید حتما می دانید که در NTFS Permission ها یک سطح دسترسی به نام Creator Owner وجود دارد ( یا یک گروه ) با استفاده از این سطح دسترسی شما می توانید سطح دسترسی به یک پوشه اعمال کنید که کلیه کاربران فقط و فقط به فایل هایی که مالک یا Owner آنها هستند دسترسی کامل داشته باشند و به فایل های دیگران دسترسی نداشته باشند. همین امر در سیستم عامل لینوکس به عنوان sticky bit شناخته می شود ( البته این اصلا بحث مقایسه این دو سیستم عامل نیست فقط برای درک بهتر مطرح شد) .

در واقع سطح دسترسی sticky bit ، سطح دسترسی است که بر روی یک folder یا پوشه اعمال می شود و فقط به مالک یا owner فایل ها اجازه می دهد که تغییراتی که می خواهند را بر روی فایل مورد نظرشان اعمال کنند و نمی توانند کوچکترین تغییری بر روی فایل های دیگران در عین اینکه دسترسی به نظر 777 است اعمال کنند. تنها کاربر root در چنین مواقعی امکان حذف و یا تغییر دادن فایل های دیگران را خواهد داشت.

Sticky bit در واقع یک مکانیزم امنیتی در سیستم عامل لینوکس است که از حذف کردن فایل ها توسط کاربران غیرمجاز در پوشه های حساس این سیستم عامل جلوگیری می کند ، در عین حال که کاربر دسترسی کامل برای ایجاد کردن و حذف کردن و ویرایش کردن فایل های خودش دارد ، در عین حال به هیچ یک از فایل های سایر کاربران دسترسی نخواهد داشت. بصورت پیشفرض sticky bit بر روی پوشه tmp در لینوکس فعال شده است.

chmod 1757 ~/Desktop/test

چگونه می توانیم sticky bit را بر روی یک پوشه فعال کنیم ؟

فعال کردن sticky bit به روشهای مختلفی قابل انجام است ، شما می توانید آن را با استفاده از روشهای سمبولیک ، با استفاده از عددهای تعریف شده برای سطوح دسترسی و .. انجام دهید در ادامه انواع روشهای اعمال کردن Sticky bit بر روی یک فولدر به نام itpro را مشاهده می کنید :

استفاده از روش Symbolid برای ایجاد Sticky Bit


chmod o+t ~/Desktop/test

یا روش دیگر :

chmod +t ~/Desktop/test

یا با استفاده از قرار دادن عدد 1 در ابتدای اعداد سطوح دسترسی :

chmod 1757 ~/Desktop/test

حالا می توانید نتایج به دست آمده را مشاهده کنید :

ls -li ~/Desktop/test

1551793 drwxrwxrwt 45 hadi hadi 20485 Mar 11 14:35 ~/Desktop/test

همانطور که مشاهده کردید در خروجی حرف t در انتهای سطوح دسترسی به عنوان اعمال شدن sticky bit نمایش داده می شود ، برای حذف کردن این bit نیز می توانید به روش زیر عمل کنید :

chmod o-t ~/Desktop/test

حالا نتیجه خروجی نشان از حذف شدن sticky bit دارد :

ls -li ~/Desktop/test

1551793 drwxrwxrwx 45 hadi hadi 20485 Mar 11 14:35 ~/Desktop/test

در دوره آموزش لینوکس اسنشیالز مهندس نصیری در خصوص مفهوم Sticky Bit بصورت مفصل صحبت می شود . امیدوارم مورد توجه شما قرار گرفته باشد.


محمد نصیری
محمد نصیری

بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

محمد نصیری هستم ، هکر قانونمند و کارشناس امنیت سایبری ، سابقه همکاری با بیش از 50 سازمان دولتی ، خصوصی ، نظامی و انتظامی در قالب مشاور ، مدرس و مدیر پروژه ، مدرس دوره های تخصص شبکه ، امنیت ، هک و نفوذ ، در حال حاضر در ایران دیگه رسما فعالیتی غیر از مشاوره انجام نمیدم و مقیم کشور ترکیه هستم ، عاشق آموزش و تدریس هستم و به همین دلیل دوره های آموزشی که ضبط می کنم در دنیا بی نظیر هستند.

نظرات