sticky bit و کاربرد آن

این بخش مربوط به مطالب و دست نوشته های کوچک آموزشی اعضا میباشد

sticky bit و کاربرد آن

نوشتهاز Ali_Gh » دو شنبه آبان 4, 88 8:13 pm

راستش شاید برای کاربران مبتدی لینوکس این تاپیک اصلا مفید نباشه! ولی خب چون قبلا از یکی از دوستام که نمی‌خوام اسمش رو بگم! می‌شنیدم که استکی بیت در رابطه با دسترسی به فایل‌هاست و نمی‌گفت که بالاخره کارش چیه؟!‌ تصمیم گرفتم که این تاپیک رو بزنم و تقدیمش کنم به این دوست خوبم. ;)

<< این مقاله در واقع ترجمه‌ای از تعریف sticky bit در دانشنامه آزاد ویکی پدیا با تلخیص و کمی تصرف. (رج. مرجع پایین همین نوشتار) >>

و اما چیست این استکی بیت؟
sticky bit در واقع در پنجمین نسخه سیستم عامل یونیکس در سال ۱۹۷۴ برای استفاده در فایل‌های اجرائی مطلق به وجود آمد. با تنظیم کردن آن، این بیت به سیستم عامل اعلام می‌کرد که سگمنت متنی برنامه را بعد از خارج شدن برنامه، در فضای swap نگه دارد. این فرآیند اجرا‌های بعدی برنامه را سریعتر می‌کرد چرا که کرنل با یک عمل برنامه را از فضای swap وارد حافظه‌ی اصلی می‌کرد. بنابراین، برنامه‌های پر‌استفاده مثل ویرایشگر‌های متنی بسیار سریعتر اجرا می‌شدند. یک مشکل قابل ذکر در رابطه با برنامه Stick شده این بود که برای جایگزینی فایل اجرایی (مثل patch کردن آن)؛ نیاز بود که sticky bit از فایل اجرایی حذف شود، برنامه اجرا و خارج شود تا فضای کش فلاش شود، سپس فایل باینری اجرایی جایگزین شود و Sticky bit به آن اضافه شود.

استکی بیت در کدام سکو ها یافت می‌شود؟
در حال حاضر استکی بیت با این رفتار فقط در HP-UX، NetBSD, UnixWare و Mac OS X وجود دارد. سولاریس این رفتار را از سال ۲۰۰۵ میلادی (معادل ۱۳۸۴) رها کرده است. در BSD نسخه 4.4Lite رفتار قدیمی استکی بیت باقی مانده است ولی در OpenBSD از نسخه 3.7 و FreeBSD نسخه 2.2.1 حذف شده است. در netBSD همچنان این ویژگی یافت می‌شود. هیچ نسخه‌ای از لینوکس از این رفتار سنتی پشتیبانی نمی‌کند.

کاربرد امروزی استکی بیت چیست؟
امروزه متداول‌ترین استفاده استکی بیت در دایرکتوری‌هاست. به این ترتیب که با ست شدن این بیت روی یک دایرکتوری، محتویاتش فقط می‌توانند توسط صاحبشان، یا صاحب پوشه و یا کاربر ریشه حذف شده یا تغییر نام داده شوند. بدون فعال کردن استکی بیت روی دایرکتوی، هر کاربری که نسبت به دایرکتوری دسترسی execute و write داشته باشد، صرفنظر از اینکه چه کسی مالک فایل است، می‌تواند فایل‌ها را حذف کرده یا تغییر نام دهد. عموما این بیت روی دایرکتوری tmp/ برای جلوگیری از حذف شدن یا جابه‌جا شدن فایل‌های کاربران توسط کاربران عادی از سوی مدیر سیستم اعمال می‌شود. این ویژگی در BSD نسخه 4.3 در سال ۱۹۸۶ معرفی شد و امروزه در اکثر سیستم‌های یونیکسی جدید یافت می‌شود.

علاوه بر این سولاریس (از نسخه 2.5) رفتار خاصی برای زمانی که استکی بیت روی فایل‌های غیر اجرائی اعمال شده باشد، تعریف کرده است. با فعال شدن این بیت روی چنین فایل‌هایی، آن‌ها توسط کرنل قابل کش شدن نیستند. این رفتار معمولا روی فایل‌های swap اعمال می‌شود تا از دسترسی به محتویات فایل جلوگیری شود. در واقع با فعال شدن این بیت روی فایل‌های غیر اجرایی از کش سیستم برای باز کردن یا نگهداشتن محتویات فایل استفاده نمی‌شود. همچنین از این فرآیند در تست‌های رده‌بندی کارآیی (Benchmark) نیز استفاده می‌شود.

استکی بیت همچنین توسط automounter نیز اعمال می‌شود. به کمک این بیت automounter متوجه می‌شود که کدام فایل هنوز ماونت نشده است. همچنین این رفتار به برنامه‌هایی مثل ls اجازه می‌دهد که فایل‌های شبکه که هنوز unmount نشده‌اند، را نادیده بگیرد. (لینوکس برای دسترسی به فایل‌های روی شبکه (مثل یک workgroup) آن‌ها را ماونت می‌کند)


باشه.. باشه.. نمی خواد اسکرول کنین! رسیدیم به قسمت عملی کار!

استکی بیت می‌تواند بوسیله دستور chmod و با کد عددی 1000 اعمال شود یا با نماد خودش t (البته s قبلا برای اعمال دسترسی‌های عادی یا همان setuid بیت استفاده می‌شود). به عنوان مثال، برای اضافه کردن بیت محترم به دایرکتوری
کد: گزینش همه
 /usr/local/tmp

می‌توان تایپ کرد:
کد: گزینش همه
chmod +t /usr/local/tmp

یا برای اطمینان از اینکه آن دایرکتوری مجوز استاندارد tmp را دارد، وارد می‌کنیم:
کد: گزینش همه
chmod 1777 /usr/local/tmp


در نمادگذاری مجوز فایل سیستم یونیکس، استکی بیت با حرف t در محل آخرین کاراکتر نمایش داده‌ می‌شود. برای مثال، در سولاریس ۸، در مورد دایرکتوری tmp/ که به طور پیش فرض استکی بیت دارد، چنین دیده می‌شود:
کد: گزینش همه
$ ls -ld /tmp
drwxrwxrwt        4   root     sys      485   Nov   10   06:01   /tmp

/( با تشکر از امید جان به خاطر دقت و تذکر مفیدش ;) )
اگر استکی بیت روی یک فایل یا پوشه‌ای بدون مجوز execute برای others اعمال شود (یعنی نه کاربر-مالک و نه گروه-مالک) این مسئله با T (حرف T بزرگ) نشان داده می‌شود:
کد: گزینش همه
 # ls -l test
 -rw-r--r--   1 root     other          0 Nov 10 12:57 test
 # chmod +t test; ls -l test
 -rw-r--r-T   1 root     other          0 Nov 10 12:57 test


خیلی خب! باشه.. منم کپی رایت بلدم! 8-) کریتیو کامنز هم سرم می‌شه :ugeek: :
http://en.wikipedia.org/wiki/Sticky_bit
گروه کاربران ایرانی اینک اسکیپ
http://inkscape-ir.org
آکلینوکس
http://aqlinux.ir
Ali_Gh
مسئول جلسات
 
نوشته: 443
پیوستن: شنبه دی 7, 87 11:00 am
شهر: اهواز
Given: 58 thanks
Received: 197 thanks

The following 3 users would like to thank Ali_Gh for his or her post:
moslem.b, NabiKAZ, OA7

Re: sticky bit و کاربرد آن

نوشتهاز OA7 » دو شنبه آبان 4, 88 8:42 pm

در نمادگذاری مجوز فایل سیستم یونیکس، استکی بیت با حرف t در محل آخرین کاراکتر نمایش داده‌ می‌شود. برای مثال، در سولاریس ۸، در مورد دایرکتوری tmp/ که به طور پیش فرض استکی بیت دارد، چنین دیده می‌شود:
کد: گزینش همه
$ ls -ld /tmp
drwxrwxrwXt        4   root     sys      485   Nov   10   06:01   /tmp


سلام علی جان
بسیار عالی بود فقط به نظرم یخورده روان‌تر مینوشتی بهتر بود که دوستان تازه‌آشنا (تازه‌کار نمیشه گفت) با این بیت راحت‌تر متوجه بشن
در مورد این قسمت هم که در بالا نقل‌قول کردم فکر کنم بخاطر اشتباه تایپی یک دونه x اضافه گذاشتی
موفق باشی
یا علی
سیما
OA7
مسئول آموزش
 
نوشته: 73
پیوستن: آدینه دی 6, 87 5:48 pm
Given: 16 thanks
Received: 58 thanks

The following user would like to thank OA7 for his or her post:
Ali_Gh

Re: sticky bit و کاربرد آن

نوشتهاز Ali_Gh » سه شنبه آبان 26, 88 7:28 pm

والله امید جون، اولش هم نوشته‌آم که واسه کاربران مبتدی مناسب نیست. آخه پیش نیاز‌هاش زیاده. مثلا باید بگم سگمنت چیه؟ برنامه چطور اجرا می‌شه؟ کش چیه؟ فلاش شدن یعنی چی؟
خلاصه اینکه خودش هفت هشت تا تاپیک می‌شه! ولی هرجاش که به نظرت گیج کننده میاد بگو که اگه تونستم روون‌تر بنویسمش.
همین الانم یک ویرایش رفتم روش! ببین بهتر شده؟
گروه کاربران ایرانی اینک اسکیپ
http://inkscape-ir.org
آکلینوکس
http://aqlinux.ir
Ali_Gh
مسئول جلسات
 
نوشته: 443
پیوستن: شنبه دی 7, 87 11:00 am
شهر: اهواز
Given: 58 thanks
Received: 197 thanks

Re: sticky bit و کاربرد آن

نوشتهاز OA7 » سه شنبه آذر 9, 88 12:58 am

سلام
علی بیان نویسنده و زاویه نگاهش خیلی مهمه، نویسنده میتونی خیلی از مطالب تخصصی رو طوری بیان کنه که اکثریت متوجه بشن
حالا انشاال... تو جلسه حضوری که باهم داریم مفصل حرف میزنیم
فعلا
یا علی
سیما
OA7
مسئول آموزش
 
نوشته: 73
پیوستن: آدینه دی 6, 87 5:48 pm
Given: 16 thanks
Received: 58 thanks


برگشت به دست نوشته های اعضا

اکنون هست

;کسانی که اکنون در این تالار هستند: کاربری نام ننوشته است کاربر و 2 میهمان

cron