linux

مجوز ها در یونیکس – بخش اول

امتیاز کاربران

ستاره فعالستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعال
 

اگر شما بعنوان تنها کاربر در سیستم عامل لینوکس خود باشید متوجه شده اید که به برخی از فایل ها و دایرکتوری ها دسترسی ندارید یعنی نمی توانید یک فایل متنی را اصلا باز کنید (در این حالت دسترسی writ یا خواندن و دسترسی Read یا نوشتن را ندارید) و یا اینکه اگر فایل را هم باز کردید و محتویات آنرا خواندید و تغییراتی در آن هم دادید در نهایت شما نمی توانید تغییرات را ذخیره کنید ( در این حالت دسترسی Read را دارید اما دسترسی write را ندارید) یا اینکه اصلا نمی توانید دایرکتوری را باز کنید (در این حالت دسترسی writ یا خواندن و دسترسی Read یا نوشتن را ندارید) و یا اینکه اگر دایرکتوری را باز کردید نمی توانید یک دایرکتوری جدید در آن ایجاد کنید و یا دایرکتوری را حذف کنید( در این حالت دسترسی Read را دارید اما دسترسی write را ندارید).

 

برای درک بیشتر یک پنجره خط فرمان باز کنید و دستور ls -l را اجرا کنید و خروجی را ببینید(یک خط از خروجی چیزی شبه به زیر است)

drwxr-xr-x. 2 unixmen unixmen 4096 Nov  3 16:18 Desktop

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

در لینوکس سه حالت یا mode دسترسی وجود دارد که به ترتیب read با علامت r و write با علامت w و execute با علامت x نشان داده می شوند. خروجی دستور ls در ۷ ستون نشان داده می شود که در این پست با مفهوم تعدادی از ستون ها اشنا شدیم اما بحث اصلی در مورد مجوزها مربوط به ستون نخست است که  از ۱۰ کارکتر تشکیل شده اند  همانطور که گفته شد کارکتر نخست تعیین کننده نوع فایل که در اینجا d یعنیdirectory است اما ۹ کارکتر دیگر چگونه هستند.۹ کارکتر بعدی در سه دسته سه تایی سازماندهی شده اند که دسته نخست معرف مجوز مالک و ایجاد کننده فایل است.دسته دوم معرف مجوز گروه اصلی که مالک فایل عضو آن است و دسته سوم مجوز دیگر افراد است پس با توجه به این توضیه سه نشان دیگر داریم که : مالک یا user با علامت u و گروه اصلی مالک یا group با علامت g و دیگر کاربران یا other با علامت o در سیستم مجوزدهی لینوکس مشخص می شوند.
مجوز دهی عددی (در سیستم اکتال) :
منظور از سیستم اکتال یعنی اعداد از صفر تا ۷ است و به این صورت تعریف می شود که از راست به چپ x معرف عدد یک و w معرف عدد ۲ و r معرف عدد ۴ است که مجموع این سه عدد بیشتر از ۷ نخواهد شد اما چگونه از انها استفاده کنیم؟ با توجه به مثال بالا خط زیر را در نظر بگیرید :
rwxr-xr-x
نتیجه گیری :
۱ – دسته قرمز رنگ تعیین کننده مجوز کاربر یا مالک است که اگر سه عدد را با هم جمع کنیم عدد 7 حاصل می شود و چون هر سه مجوز را دارد یعنی هم می تواند فایل یا دایرکتوری را بخواند و هم در فایل یا دایرکتوری بنویسد و هم آنرا بعنوان یک فایل اجرایی ببیند.
۲ – دسته دوم می گوید که اعضای گروهی که مالک نیز عضو آن گروه است مجوز خواند و اجرایی بودن فایل را دارند اما نمی توانند بنویسند و اگر اعداد را در دسته دوم از چپ به راست با هم جمع کنیم : ۵=۱+۴ خواهد بود
۳ – برای دیگر کاربرن با توجه به دو نومنه بالا عدد ۵ را داریم
۴ – در دودسته دوم یک علامت – امده. این علامت هرگاه یکی از مجوز های w , r و یا x را نداشته باشیم جای انها می اید.
۵ – در نهایت مجوز داریرکتوری Desktop(در مثال خط اول) از سمت چپ به راست عدد 755 خواهد بود.
 
مجوزدهی نمادی :
همانطور که در بالا گفتم سه نماد g , u و o به ترتیب معرف user یا مالک فایل group همان گروه اصلی کاربر و other به معنی دیگر کاربران است. بهطور مثال ugo به معنی که همه در سیستم به فایل یا دایرکتوری مجوز دارند اما اینکه مجوز چگون به این گروه داده می شود بصورت زیر است :
برای استفاده از مجوزدهی یک نماد دیگر به نام all که با a نشان داده می شود وجود دارد. نماد a همان ترکیب ugo است و این دو یکسان هستند.اما چگونه مجوز دهیم:
نماد + به معنی افزودن مجوز به مجوزهای کاربر است. مثلن u+rw به این معنی که user مجوز read و write دارد و یا ug+rw یعنی هم user و هم group مجوز read و write دارند.و یا u+w , ugo+r یعنی اینکه همه مجوز read دارند اما فقط user مجوز write دارد که این دستور را می توان به شکل u+w,a+r نیز نوشت و اینکه دو مجوز با کاما از هم جدا شدند.
نماد – به معنی حذف یک مجوز از مجوز های موجود یک کاربر است. مثلا در مثال اخر داریم u+w,ug+r,o-r یعنی با o-r مجوز خواندان را نیز از دیگر کاربران گرفتیم.
نماد = این نماد به این نعنی ایت که مجوز را به کاربر داده ایم.

تمام حقوق سایت برای سلام دیجی و نويسندگان آن محفوظ می باشد