اگر شما بعنوان تنها کاربر در سیستم عامل لینوکس خود باشید متوجه شده اید که به برخی از فایل ها و دایرکتوری ها دسترسی ندارید یعنی نمی توانید یک فایل متنی را اصلا باز کنید (در این حالت دسترسی writ یا خواندن و دسترسی Read یا نوشتن را ندارید) و یا اینکه اگر فایل را هم باز کردید و محتویات آنرا خواندید و تغییراتی در آن هم دادید در نهایت شما نمی توانید تغییرات را ذخیره کنید ( در این حالت دسترسی Read را دارید اما دسترسی write را ندارید) یا اینکه اصلا نمی توانید دایرکتوری را باز کنید (در این حالت دسترسی writ یا خواندن و دسترسی Read یا نوشتن را ندارید) و یا اینکه اگر دایرکتوری را باز کردید نمی توانید یک دایرکتوری جدید در آن ایجاد کنید و یا دایرکتوری را حذف کنید( در این حالت دسترسی Read را دارید اما دسترسی write را ندارید).
برای درک بیشتر یک پنجره خط فرمان باز کنید و دستور ls -l را اجرا کنید و خروجی را ببینید(یک خط از خروجی چیزی شبه به زیر است)
drwxr-xr-x. 2 unixmen unixmen 4096 Nov 3 16:18 Desktop
در توضیح خط بالا باید با چند مفهوم آشنا شویم :
انواع نشان ها در سیستم مجوزدهی در یونیکس :
منظور از سیستم اکتال یعنی اعداد از صفر تا ۷ است و به این صورت تعریف می شود که از راست به چپ 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 مجوز خواندان را نیز از دیگر کاربران گرفتیم.
نماد = این نماد به این نعنی ایت که مجوز را به کاربر داده ایم.