UMask چیست؟

0

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 = 2( 111 111 111 )
1748 = 2( 001 111 100 )
NOT ( 001 111 100 )2 = ( 110 000 011 )2
2( 111 111 111 ) 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) را حساب نمی کنیم.

نگارنده : رضا بهروزی

 

نظرات مسدود است.