یکی از ویژگی های امنیتی یا ساختار اولیه امنیت در سیستم عامل لینوکس برپایه ی سطح دسترسی (Permissions) یا مالکیت تعریف شده است . لینوکس یک سیستم عامل چند کاربره(multi user) است که مجوز و اجازه ی دسترسی یک راه محافظت سیستم در برابر خرابکاری ها و دسترسی های غیر مجاز است.فایل ها و دایرکتوری ها در لینوکس"متعلق به" شخصی است که آنها را ایجاد کرده و دارای یک سری سطوح دسترسی است که بیانگر کارهایی است که کاربر مورد نظر ما می تواند بر روی فایل یا دایرکتوری مورد نظر انجام دهد این بدان معناست که شما می توانید مشخص کنید چه کسی مجاز به خواندن فایل، ارسال فایل، و یا اینکه فایل را اجرا کند .تمامی فایل ها و دایرکتوری ها در لینوکس با مجموعه ای از بیت های اجازه مجهز شده اند که دسترسی های مختلفی را تعیین می کند . این بیت ها از اعداد 0 تا 7 ساخته شده اند .به جدول زیر توجه کنید . (شکل 1-1 )
سطوح دسترسی فایل ها و دایرکتوری ها در سیستم عامل لینوکس با دستور ls –l قابل مشاهده است :
kingdeface@ubuntu:~$ ls -l total 44 drwxr-xr-x 2 kingdeface kingdeface 4096 Dec 27 10:57 Desktop drwxr-xr-x 2 kingdeface kingdeface 4096 Dec 27 10:07 Documents drwxr-xr-x 2 kingdeface kingdeface 4096 Dec 27 10:07 Downloads -rw-r--r-- 1 kingdeface kingdeface 8980 Dec 27 08:00 examples.desktop drwxr-xr-x 2 kingdeface kingdeface 4096 Dec 27 10:07 Music drwxr-xr-x 2 kingdeface kingdeface 4096 Dec 27 10:07 Pictures drwxr-xr-x 2 kingdeface kingdeface 4096 Dec 27 10:07 Public drwxr-xr-x 2 kingdeface kingdeface 4096 Dec 27 10:07 Templates drwxr-xr-x 2 kingdeface kingdeface 4096 Dec 27 10:07 Videos
اولین کاراکتری که از سمت چپ در این خروجی مشاهده می کنید نشان دهنده نوع آن فایل یا دایرکتوری است. اگر حرف " d " بود نشان دهنده ی یک دایرکتوری است اما اگر علامت dash" – " بود نشان دهنده ی یک فایل است .
d rwx r-x r-x
- rw- r-- r--
نماد ها و کاراکترهای دیگری هم هستند که به ترتیب زیر مشاهده می کنید :
- =l سیمبولیک لینک
- = b بلاک دیوایس
- = s سوکت
- = c کاراکتر دیوایس
- = p پایپ
دسترسی کاربران در سیستم عامل لینوکس
کاربران در لینوکس دارای مجوز های زیر هستند :
- خواندن یا read : مجوز خواندن یا بازکردن محتویات یک فایل.
- نوشتن یا write : مجوز تغییر محتویات یک فایل و اجازه ی نوشتن بر روی یک دایرکتوری را می دهد. اما قادر به تغییر نام و حذف یک دایرکتوری نیست.
- اجرا کردن یا Execute : مجوز اجرا کردن یک فایل یا وارد شدن به یک دایرکتوری
مالکیت ها در سیستم عامل لینوکس
هرفایل و دایرکتوری در لینوکس به ترتیب زیر به سه حساب و مالک اعمال می شود :
- user کاربر صاحب فایل یا Owner
- group گروهی که مالکیت فایل مورد نظر را بر عهده دارند.
- other دیگران (نه مالک نه صاحبان گروه)
- all, everyone, world تمامی کاربران دیگر
(شکل 3-1 )
چون Permissions ها قابلیت ترکیب شدن را دارند برای اینکه ما بتوانیم سطح دسترسی یک فایل را تنظیم کنیم به ترتیب زیر عمل میکنیم :
- مالک یا owner = read ,write ,execute
- گروه یا group = read ,execute
- کاربران دیگر all = read
(شکل 4-1 )
خواندن مجوزها در مبنای 8
طبق تعاریف بالا ما میتوانیم مجوز ها را به دو 2 روش در مبنای 8 بخوانیم .
روش اول : با توجه به (شکل 1-1 ) این کار را انجام می دهیم . مثال (1-1) :
d rwxrwxrwx
اولین کاراکتر از سمت چپ نشان دهنده ی یک دایرکتوری است . باقیمانده ی قسمت ها را از سمت چپ به سه قسمت سه تایی ، که هر سه قسمت از آنها به ترتیب از چپ به راست متعلق به دسترسی های owner ، دسترسی های group و دسترسی های all users است .
rwx = owner
rwx = group
rwx = all user
سپس به صورت زیر معادل باینری یا دو دویی هر یک از قسمت های 3 تایی در بالا را حساب می کنیم :
rwx = owner = 111
rwx = group = 111 => 111 111 111 => 777
rwx = all user = 111
و در نهایت اگر اعداد 111 111 111 را به مبنای 8 ببریم پرمیژن این دایرکتوری 777 خواهد بود . مثال (1-2) :
- rwxr-xr-x
به ترتیب روش بالا ابتدا قسمت ها را 3 تا 3 تا از هم جدا می کنیم :
rwx = owner
r-x = group
r-x = all user
سپس معادل باینری هر یک از قسمت های 3 تایی را حساب می کنیم :
rwx = owner = 111
r-x = group = 101 => 111 101 101=> 755
r-x = all user = 101
روش دوم :
در روش دوم ابتدا مطابق این تعریف :
- مالک یا owner = read ,write ,execute
- گروه یا group = read ,execute
- کاربران دیگر all = read
و این جدول :
(شکل 5-1 ) میتوانیم نتیجه بگیریم که :
0 = no permission = -
1 = execute = x
2 = write = w
4 = read = r
مثال (1-3) :
d rw- r-- r--
مطابق روش قبلی 3 تا 3 تا از سمت چپ از هم جدا می کنیم .( حرف d به معنای دایرکتوری است ) .
rw- = owner
r-- = group
r-- = all user
سپس معادل عددی هر کدام از مجوزها را می نویسیم و درنهایت با هم جمع می کنیم :
rw- => r = 4 w=2 - = 0 => 4+2+0= 6
r-- => r = 4 - = 0 - = 0 => 4+0+0 = 4 => 644
r-- => r = 4 - = 0 - = 0 => 4+0+0 = 4
مثال (1-4) :
d rwxr-xr-x
(1)
rwx = owner
r-x = group
r-x = all user
(2)
rwx => r=4 w=2 x = 1 => 4+2+1= 7
r-x => r=4 -= 0 x = 1 => 4+0+1 = 5 => 755
r-x => r=4 -= 0 x = 1 => 4+0+1 = 5
گاردایران
نظرات کاربران (0)