X
تبلیغات
رایتل
آموزش لینوکس و معرفی نرم افزارهای کاربردی مرجع باز (open source)

آرشیو ماهانه مقالات

طبقه بندی موضوعی

برای عضویت در خبرنامه این وبلاگ نام کاربری خود در سیستم بلاگ اسکای را وارد کنید
نام کاربری
تعداد بازدیدکنندگان : 674345


Powered by BlogSky.com

سه‌شنبه 20 آبان‌ماه سال 1382
تعیین سطوح دسترسی کاربران به فایل ها و دایرکتوریها در لینوکس

در جدیدترین و به ظاهر امن ترین فایل سیستم مایکروسافت یعنی NTFS 5.0 امکان تعیین سطوح مختلف دسترسی فقط برای به دایرکتوری ها ( و نه فایل‌ها!) برای کاربران مختلف به صورت زیر وجود دارد:

1-No Access

2-Read

3-Read & Execute

4-Write

5-Full Control

در حالت اول کاربر مورد نظر هیچگونه دسترسی به دایرکتوری مورد نظر ندارد. حالت دوم تنها می تواند فایل‌ها را ببیند ولی امکان اجرای فایل‌ها (ی اجرایی) را ندارد .در گزینه سوم این اختیار به کاربر داده شده است تا فایل‌ها را اجرا کند. در حالت چهارم یا Write کاربر قادر به انجام هر کاری جز تغییر سطوح دسترسی به دایرکتوری مورد نظر را دارد. به این حالت Modify هم گفته می‌شود و بالاخره در آخرین حالت کاربر می‌تواند هر آنچه را اراده می‌کند اعمال کند!!! این سطح دسترسی معمولا مخصوص Administrator است.
همانگونه که اشاره شد در این فایل سیستم امکان فیلتر کردن دسترسی کاربران به فایل‌ها وجود ندارد و تمام فایل‌های موجود در یک دایرکتوری به لحاظ سطح دسترسی تابع دایرکتوری خود هستند. اما در لینوکس استراتژی کاملا متفاوت است. دسترسی به هر فایل یا دایرکتوری توسط ۹بیت اطلاعات اضافه‌ای که به فایل یا دایرکتوری چسبانده می‌شود برای ۳ کلاس ۳ بیتی کاربر, گروه کاربر و سایر کاربران , تعیین می‌شود که به ترتیب با کدهای u(کاربر) , g(گروه) و o(سایرین) مشخص می‌شوند. 0 یا 1 بودن بیت اول تعیین کننده دسترسی خواندن (Read)برای صاحب فایل ( کاربر), بیت دوم امکان نوشتن (Write) و ایجاد تغییر در فایل یا دایرکتوری مورد نظر و بالاخره بیت سوم امکان اجرای(eXecute) فایل‌های اجرایی را مشخص می‌کند. سه بیت دوم این دسترسی‌ها را برای کلاس گروه کاربر و سه بیت آخر دسترسی‌ها را برای سایر کاربران مشخص می‌کند. در صورتی که یک مجوز به کاربری داده نشده باشد به جای مجوز مورد نظر(یکی از حروف R,W یاX ) هنگام نمایش مجوزها، علامت دش (-) دیده می‌شود. آنچه در زیر دیده می‌شود مجوز دسترسی کامل به یک فایل است. یعنی همه کاربران امکان خواندن، نوشتن و اجرای فایل را دارند :

rwxrwxrwx

یا در حالتی که صاحب فایل دسترسی کامل، گروهش امکان خواندن و اجرا و سایرین هیچگونه دسترسی به فایل مورد نظر نداشته باشند این مجوزها به صورت زیر خواهد بود:

rwxr-x---

نمونه‌ای از این مجوزها را می‌توانید با اجرای فرمان ls -l مشاهده نمایید. توجه کنید که علاوه بر ۹بیت ذکر شده، یک کاراکتر اضافه نیز در ابتدای این رشته وجود دارد که تعیین کننده نوع فایل است که برای فایل‌های عادی بصورت دش (-) و برای دایرکتوری ها بصورت d دیده می‌شود:

drwxr-xr-x

-rwxr-xr-x

مجوز پیش فرض برای فایل‌های جدید بصورت زیر است:

rw-r- - r--

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

rwxr-xr-x

در صورتی که بخواهید مجوزهای پیش فرض را برای نشست جاری خود تغییر دهید می‌توانید از دستور umask استفاده کنید.

برای تغییر مجوزهای یک فایل یا دایرکتوری کاربری که این اختیار را دارد (کاربر ریشه یا صاحب فایل یا دایرکتوری) می‌تواند با دستور chmod این کار رابوسیله یکی از دو روش زیر انجام دهد.

-در روش نخست پس از دستور chmod می‌توان با علامت های "+" یا "–" یک یا چند مجوز را به کلاس ها افزود و یا از آنها گرفت. در این حالت کلاس ها با کدهایی که در بالا ذکر شد تعیین می شوند.مثلا:

#chmod go-rx anything

این دستور تعیین می کند که مجوز خواندن و اجرای فایلی به نام anything از کلاس گروه کاربر(u) و سایرین(o) گرفته شود و برعکس آن به صورت زیر است:

#chmod go+rx anything

-در روش دوم مجموع سه سطح دسترسی(خواندن,نوشتن و اجرا) به صورت یک عدد بین صفر تا هفت برای 3 کلاس کاربر, گروهش و سایرین به صورت زیر تعیین می شود و پس از دستور chmod می آید. برای خواندن عدد چهار, برای نوشتن عدد دو و برای اجرا عدد یک منظور می شود. یعنی هفت(1+2+4) نشان دهنده دسترسی کامل است در نتیجه مثلا 777 نشان دهنده اعطای دسترسی کامل به همه کاربران است.مثلا:

#chmod 750 anything

این دستور نیز تعیین می کند که مجوزها بصورت زیر تغییر کنند:

rwxr-x---

به طور پیش فرض، هر کاربری که فایلی را ایجاد نماید، مالک آن فایل شناخته می‌شود. در صورتی که بخواهید مالکیت یک فایل را تغییر دهید، باید از دستور chown استفاده نمایید. هنگامی که مالکیت یک فایل یا دایرکتوری را به کاربری اعطا کنید، آن کاربر دارای تمام مجوزها برای انجام تغییرات و تغییر مجوزها روی آن فایل یا دایرکتوری است. به مثال‌های زیر توجه کنید:

#chown memphis anything
#chown -R memphis /home/memphis

در مثال نخست، مالکیت فایلی به نام anything به کاربر memphis اعطا می‌شود. در مثال دوم، مالکیت دایرکتوری home/memphis و تمام فایل‌ها و دایرکتوری‌های زیر آن به کاربر memphis اعطا می‌شود. توجه داشته باشید که در چنین مواردی از گزینه R در در دستور استفاده می‌شود.

 


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