۱۳۸۶ دی ۹, یکشنبه

سربازی و قطع کردن صدای بوق لینوکس

بعد از سالها فرار از سربازی بالاخره مجبور به رفتن شدم و 2 روز آینده دفترچه رو پست می کنم, بقول بچه ها ایندفعه شتر در خونه نخوابیده بلکه روت خوابیده که راه فرار تداشته باشی!
چند روز پیش یه جایی بودیم که من مسئول نصب یه برنامه شدم در ترمینال.....هی بوق می زد و ملت چپ چپ نگاه می کردن....منم نمیدونم چرا بفکر همه چیز بودم جز این دستور
setterm -blength 0

بعضی وقتها مغز آدمم میره تعطیلات دیگه
راستی هر کس راهی برای راحت گذراندن سربازی بلده از همین الان اعلام کنه

راستی اون دستوره برای دبین و آبانتو فقط کار میکنه,برای ردهت و فدورا این دستور هست که معمولا میزارن توی /etc/inputrc

set bell-style none

UMask چیست؟

UMask مخفف User file creation mode mask می باشد.UMask در خانواده های یونیکس و لینوکس یک متغییر محیطی است که مجوز دسترسی فایل و دایرکتوری هایی که جدیدا ساخته می شوند را تعیین می کند و بعبارت دیگر بواسطه UMask می توانیم مجوز دسترسی فایل های جدید را شناسایی کنیم.

در هنگام استفاده از UMask با توجه به تعریف بالا ممکن است دچار اشتباه شویم , از آنجاییکه با UMask هر آنچه از مجوزها را که نمی خواهیم به کاربران و گروه ها اختصاص دهیم مشخص می کنیم ; در واقع شبیه ماسک عمل می کند.

UMask همچون مجوزهای دسترسی عددی octal یا هشت هشتی (در مبنای هشت) می باشد.

برای بدست آوردن میزان مجوزهای دسترسی که به فایل و دایرکتوری ها اختصاص پیدا می کند , می بایست مقدار UMask را از مقدار پیش فرض مجوزها ی فایل ها و دایرکتوری ها کم کنیم.این مقادیر بدین شرح می باشند :

مجوز برای
مقدار پیش فرض
فایل
666
دایرکتوری
777

محاسبات بدین شکل صورت می گیرد :

Formula : 6668 AND NOT ( UMask-value8 ) = Newly file permission
Formula : 7778 AND NOT ( UMask-value8 ) = Newly directory permission

همانطور که مشاهده می کنید , اعداد را در مبنای هشت از یکدیگر کم می کنیم.

مقدار پیش فرض UMask برای کلیه کاربران در فایل etc/profile/ مشخص شده است و برابر با 022 می باشد , پس :

مجوز دسترسی دایرکتوری های جدید = 0228 - 7778 = 7558 (rwxr-xr-x)
مجوز دسترسی فایل های جدید = 0228 - 6668 = 6448 (--rw-r--r)

به شکل زیر توجه کنید(1)


می توانید UMask پیش فرض را تغییر دهید , برای تغییر UMask کلیه کاربران فایل etc/profile/ را ویرایش کنید و برای تغییر UMask یک کاربر خاص , فایل profile. یا bash_profile. واقع در پوسه خانگی کاربر را ویرایش می کنیم.


مقدار جدید UMask بستگی به سیاست امنیتی شما دارد.برای امنیت بیشتر توصیه می شود که UMask کاربر ریشه برابر با 077 باشد تا مجوز خواندن , نوشتن و اجرا کردن فایل ها و دایرکتوری ها برای دیگر کاربران غیر فعال شود و در صورت نیاز به مجوز دسترسی خاص برای یک کاربر , می توانید با استفاده از دستور chmod این مجور را واگذار کنید.


همچنین می توانید UMask را بطور موقت با دستور umask تغییر دهید , فرضا برای ساختن تعداد زیادی فایل و دایرکتوری با مجوز خاص و متفاوت از مجوز پیش فرض.

umask value

به شکل زیر توجه کنید (2)


مثالی برای درک بهتر :

فرض کنید مقدار UMask را برابر با 174 قرار داده اید ; در این حالت مجوز دسترسی برای فایل ها و دایرکتوری جدید چه مقدار است ؟

جواب :

فایل های جدید دارای مجوز 602 و دایرکتوری های جدید مجوز 603 را به خود اختصاص می دهند.

محاسبه :

File : 6668 AND NOT (1748) = 6028
Directory : 7778 AND NOT (1748) = 6038
7778 = ( 111 111 111 )2
1748 = ( 001 111 100 )2
NOT ( 001 111 100 )2 = ( 110 000 011 )2
( 111 111 111 )2 AND ( 110 000 011 )2 = ( 110 000 011 )2

همانطور که مشاهده می کنید از AND منطقی برای محاسبه استفاده کردیم.

1 0 *
0 0 0
1 0 1

توضیح :

همانطور که قبلا اشاره شد , UMask مجوزهایی که اعمال نخواهد شد را نشان می دهد , پس از 174 چه چیزی دستگیرمان می شود؟

با توجه به جدول زیر مجوزهایی که اعمال نمی شوند را مشخص می کنیم :

O G U *
4 4 4 R
2 2 2 W
1 1 1 X
7 7 7 SUM

کاربر (مالک) : 1 : اجرا کردن(x)

گروه : 7 : خواندن(r), نوشتن (w) , اجرا کردن (x)

دیگران : 4 : نوشتن (w) , اجراکردن(x)



O G U *
4 4 4 R
2 2 2 W
1 1 1 X
4 7 1 SUM

(نجوه محاسبه UMask :
با توجه به این مثال به نحوه محاسبه UMsask پی بردیم , کافیست در جدول مجوزهایی که خواهان اعمال آنها نیستیم را مشخص و با هم جمع کنیم , همانند مثال بالا)

بالا مجوزهایی که اعمال نمی شوند رو مشخص کردیم , حال مجوزهایی باقی مانده را با هم جمع و سطح دسترسی را حساب می کنیم

سطح دسترسی دایرکتوری :

O G U *
4 4 4 R
2 2 2 W
1 1 1 X
3 0 6 SUM
سطح دسترسی فایل :


O G U *
4 4 4 R
2 2 2 W
1 1 1 X
2 0 6 SUM

نکته :
برای محاسبه مجوز دسترسی فایل های جدید , همانطور که قبلا اشاره شد , مجوز پیش فرض 666 می باشد , پس در محاسبات مجوز مربوط به اجرا شدن (x) را حساب نمی کنیم.

منابع کمکی :

tech-faq.com
linuxsecurity.com
cyberciti.biz
wikipedia.org

۱۳۸۶ آذر ۲۵, یکشنبه