مجوزهای دسترسی – قسمت دوم (آموزش لینوکس LPIC1-101)
مجوزهای دسترسی – قسمت دوم (آموزش لینوکس LPIC1-101)
دستور umask (تعیین دسترسی هاي پیش فرض)
فرمان umask دسترسی هاي پیش فرضی که هنگام ایجاد یک فایل به آن داده می شود را تعیین می کند.
این دستور از نشان گذاري octal براي نمایش یک ماسک از دسترسی هایی که بایستی از مشخصه هاي فایل حذف شود استفاده می کند.
در اینجا ما ابتدا فایل test.txt را با استفاده از دستور rm حذف کردیم تا مطمئن شویم دسترسی ها از اول داده می شود.
حالا با استفاده از دستور umask ماسک پیش فرض را مشاهده می کنیم.
چه عددي است؟
0022 معمولا این عدد به صورت پیش فرض براي umask داده می شود.
خب حالا این یوماسک 0022 چه کار خواهد کرد؟
هر فایل جدیدي که ما در سیستم ایجاد می کنیم را نمی توانیم به صورت دستی به آن دسترسی بدهیم.
در نتیجه سیستم عامل یک مقداري به صورت پیش فرض دارد که با استفاده از آن هر فایلی جدیدي که ایجاد می شود به آن دسترسی می دهد.
ولی این جمله اشتباه هست که گفتم به فایل هاي جدید ایجاد شده دسترسی می دهد.
بهتر است بگوییم از فایل هاي جدید ایجاد شده دسترسی می گیرد!!؟؟؟
بله درست است هر مقداري که در umask موجود باشد از دسترسی هاي موجود در فایل کم خواهد کرد.
به مثال برگردیم . براي ایجاد یک فایل جدید از دستور touch استفاده می کنیم.
اکنون که فایل را ایجاد کرده ایم با استفاده از دستور ls -l test.txt دسترسی هاي آن را مشاهده خواهیم کرد.
به نظر شما چه دسترسی خواهد گرفت؟
خیلی از افراد اشتباه می کنند و می گویند خب یوماسک ما 0022 بود پس دسترسی هم 0022 خواهد بود!!
اشتباه است.
همین الان گفتیم هر مقداري که در یوماسک موجود باشد از دسترسی هاي فایل کم خواهد شد.
از کجا بدانیم چه دسترسی داشته و پس از اعمال یوماسک چه خواهد شد؟
دسترسی پیشفرض فایل —-rw-rw-rw می باشد یعنی کاربر، گروه و همگان دسترسی خواندن و نوشتن را خواهند داشت.
حالا اگر 0022 را به مقدار باینري تبدیل کنیم می شود 000000000010 یعنی یوماسک دسترسی همگان را 010 از وضعیت خواندن و نوشتن به وضعیت فقط خواندنی محدود می کند.
یک راه دیگر براي مشاهده دسترسی اورجینال فایل این است که مقدار umask را صفر کنیم
تا مطمئن شویم هنگام ایجاد فایل جدید یوماسک هیچ تاثیري روي دسترسی هاي اصلی فایل نخواهد گذاشت.
به مثال زیر توجه کنید:
همانطور که می بینید با دستور rm test.txt فایل قبلی را حذف کردیم. با دستور umask 0000 مقدار یوماسک را به صفر تبدیل کردیم
تا مطمئن شویم که تاثیري بر دسترسی هاي اورجینال فایل نخواهد گذاشت.
سپس با دستور touch دوباره فایل test.txt را ایجاد کردیم و با دستور ls -l test.txt دسترسی ها را مشاهده کردیم،
می بینیم دسترسی هاي پیش فرض خواندن و نوشتن (rw-) براي همه حالت ها می باشد.
مجوزهای دسترسی – تغییر هویت در لینوکس
برخی اوقات لازم است که براي انجام بعضی از کارها هویت یک کاربر دیگر را برداریم و از آن استفاده کنیم.
این کار بیشتر براي دریافت دسترسی کاربر ارشد (Superuser) به کار می رود.
به این منظور سه راه وجود دارد:
- از کاربر فعلی خارج شده و با کاربر مورد نظر لاگین کنیم
- استفاده از دستور su
- استفاده از دستور sudo
مورد اول را نادیده می گیریم چون همه می دانیم که چگونه با یک کاربر دیگر لاگین کنیم.
از داخل خود نشست شل (Shell) با استفاده از دستور su می توانید هویت خود را به عنوان یک کاربر دیگر تغییر دهید
و سپس شروع به انجام دستورهاي لازم در خط فرمان کنید.
دستور sudo به مدیریت این اجازه را می دهد تا تنظیمات پیکربندي را در داخل فایل etc/sudoers/ انجام دهد
و دستورهاي ویژه اي که کاربران خاص قادر به انجام آن هستند را تعریف کنند.
این که به صورت پیش فرض چه دستوراتی براي sudo تعریف شده اند بسته به نوع توزیعی دارد که از آن استفاده می کنید.
مجوزهای دسترسی – دستور su اجراي یک shell با کاربر جانشین
دستور su براي اجرا و شروع یک شل (Shell) جدید به عنوان یک کاربر دیگر (جانشین) استفاده می شود.
ترکیب استفاده شده در این دستور به این صورت است:
[su [-[l]] [user
اگر گزینه l- در این دستور آورده شود، نتیجه نشست شل (Shell) یک لاگین شل براي کاربر تعیین شده است.
یعنی چه؟
به این معنی که محیط کاربر تعیین شده بارگذاري شده و پوشه فعلی کاربر به پوشه home کاربر تعیین شده تغییر پیدا می کند.
یعنی درست مثل اینکه با یک کاربر دیگر لاگین کرده باشید.
این دقیقا همان چیزي است که اکثر اوقات به آن نیاز خواهیم داشت.
اگر در دستور نام کاربر آورده نشود، به صورت پیش فرض کاربر ارشد (Superuser) در نظر گرفته می شود.
توجه داشته باشید که می توانید گزینه l- را به صورت اختصاري – در نظر بگیرید به صورت زیر:
پس از اجراي دستور پسورد کاربري که تعیین کردیم از ما خواسته می شود و اگر پسورد با موفقیت وارد شود، یک شل جدید باز می شود
و همانطور که به یاد دارید علامت # نشانه دسترسی کاربر ادمین است در صورتی که $ نشانه کاربر عادي است.
براي خروج از این حالت و برگشت به حالت کاربر عادي که با آن به لینوکس وارد کرده ایم
کافی است دستور exit را وارد کنید:
علاوه بر این می توانیم به جاي تغییر کلی شل فقط یک دستور را به حالت ادمین اجرا کنیم به این صورت:
‘su -c ‘command
با استفاده از این فرم دستوري، یک خط دستوري در شل (Shell) اجرا می شود.
این نکته را به یاد داشته باشید که دستور مورد نظر را در داخل تک کوتیشن قرار دهید:
جهت مشاهده دوره های آموزشی بر روی این لینک کلیک نمایید.
جدیدترین اخبار مجموعه فراز نتورک را در این صفحه اجتماعی دنبال کنید.
مجوزهای دسترسی – نویسنده: موسی رشوند
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.