خوب دوستان در سری آموزشی Linux Essentials ای که درست کردم یکی از قسمت ها مربوط به تعیین سطوح دسترسی در سیستم عامل لینوکس بود ، در این ویدیوی آموزشی ما به بررسی انواع سطوح دسترسی و ساختار Permission ها در لینوکس که بصورت read write execute و بصورت خلاصه rwx نمایش داده می شود توضیحاتی ارائه کردیم ، اما نکته ای در این خصوص وجود دارد ، شما ممکن است در ریشه پارتیشن لینوکسی خودتان با استفاده از دستور ls خروجی permission ها را مشاهده کنید و در انتهای کاراکترهای سطوح دسترسی چیزی به غیر از حروف rwx مشاهده کنید ، ممکن است به شکل زیر شما rwt مشاهده کنید ، این خروجی در مثال زیر کاملا پیداست :
drwxrwxrwt 30 root root 20480 Jan 11 12:17 /tmp
خوب دو سئوال در خصوص خروجی دستور بالا بایستی برای شما پیش بیاید ، اولین سئوال اینکه کاراکتر t در انتهای سطوح دسترسی چه می کند و از طرفی چرا پوشه tmp که پوشه temporary همه کاربران شبکه است بایستی سطح دسترسی به شکل 777 یعنی همه دارای دسترسی full control داشته باشد ؟ آیا این موضوع منطقی است ؟
خوب در پاسخ به این سئوالات ابتدا یک مثال می زنیم ، طبیعی است که هر کسی بایستی بتواند در دایرکتوری tmp فایل های خودش را قرار بدهد و هر کسی هم باید بتواند فایل های خودش را پاک کند ، پس به ناچار ما به همه دسترسی full control به این پوشه می دهیم ، اما نکته اینجاست که در چنین مواقعی من به عنوان کاربر unity نبایستی بتوانم محتویات فایلی که کاربر f.khanlari ایجاد کرده است را حذف کنم اما در حالت عادی با توجه به سطح دسترسی که کاربران به این پوشه دارند هر کسی می تواند فایل های دیگران را حذف کند ، پس چاره چیست ؟ چاره اینکار استفاده از تکنیکی به نام 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 بر روی یک فولدر به نام itpro را مشاهده می کنید :
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 بصورت مفصل صحبت می شود . امیدوارم مورد توجه شما قرار گرفته باشد.
بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات
محمد نصیری هستم ، بنیانگذار انجمن تخصصی فناوری اطلاعات ایران و مجموعه توسینسو ، هکر قانونمند و کارشناس امنیت سایبری ، سابقه همکاری با بیش از 80 سازمان دولتی ، خصوصی ، نظامی و انتظامی در قالب مشاور ، مدرس و مدیر و ناظر پروژه ، مدرس دوره های تخصص شبکه ، امنیت ، هک و نفوذ ، در حال حاضر در ایران دیگه رسما فعالیتی غیر از مشاوره انجام نمیدم ، عاشق آموزش و تدریس هستم و به همین دلیل دوره های آموزشی که ضبط می کنم در دنیا بی نظیر هستند.
زمان پاسخ گویی روز های شنبه الی چهارشنبه ساعت 9 الی 18
فقط به موضوعات مربوط به محصولات آموزشی و فروش پاسخ داده می شود