بررسی مجوز های فایل در لینوکس وسرور مجازی سرور اختصاصی

می 21, 2017

بررسی مجوز های فایل در لینوکس

در لینوکس هر object که ایجاد میشود یک شناسه منحصر به فرد دارد که اطلاع و مجوزها و صاحب هر object را مشخص

میکند.

وقتیفرمانl -ls را میزنیم اطلاع و مشخصا فایل ها را مشخص میکند.اولین فیلد اطلاعتی شامل مجوزها می باشد .سمت چپ

ترین کاراکتر اگر d باشد یعنیدایرکتوری است و اگر – باشد یعنی فایل است.

بعد از سمت چپ ترین کاراکتر در فیلد اول . کاراکتر دیگر هم در این فیلد مشاهده میکنیم که سه دسته می باشند.سه تا ی اول

مربوط به ownerیعنی صاحب فایل می باشد execute write read rwx یعنی مجوز خواندن، نوشتن و اجرا کردن. اگر به

جای هر کدام از این کاراکترها – بود یعنی اجازه ی انجام آن کار را ندارد .سه تای دوم مربوط به هم گروه ها ی آن userid می

باشدgroup که مشخص میکند هم گروههای آن userid چه permission هایی دارندexecute write read rwx و سه

تای آخر هم مجوز های مربوط به other را مشخص می کند یعنی افراد غریبه چه مجوزهایی دارند.به عنوان مثال مجوز زیر می

تواند مربوط به یک فایل می باشد.

سرور مجازی 

-rwx r– r–

حال با این فرمان از هر جایی که هستیم به خانه ی خودمان میرویم :

[[email protected]~]$ cd /home/

به یاد داشته باشید که هیچ وقت در لینوکس اسم فایل و یا فرمان ی را به طور کامل تا ی م نکنید و همیشه از کلید tab که

completion command است استفاده کنید.

 

و از آنجا به خانه یک فرد دیگر میرویم که پی ام denied permission میگیریم چون باید root باشیم تا این مجوز فعال شود

و اجازه داشته باشیم:

[[email protected]~]$ cd /a.Niki/

Permission denied

حال اگر مجوزها را تغییردهیم میتوانیم به خانهی فرد برویم که با فرمانchmod میتوانیم مجوزها را تغییردهیم. 777 یعنی

همه میتوانند همه کاری را انجام دهند، هر فردی چه غریبه و چه همگروه میتوانند همه کاری انجام دهند.

اجازهی اجرای دایرکتورییعنی مجوز x برای یک دایرکتوری چیست؟

ln

در لینوکس ما میتوانیم به یک فایل تا 055 تا اسم بدهیم.

فرمانln که مخفف link می باشد در لینوکس برای دادن چندین اسم به یک فایل به کار می رود.

ابتدا یک فایل می سازیم.با فرمانl –ls مشخصا آن را میبینیم که اندازه آن صفر است.

[[email protected]~]$ > F1

[[email protected]~]$ ls-l

اگر بخواهیم دو تا اسم دهیم از فرمانln استفاده میکنیم که با هم manual آن را میبینیم

[[email protected] ~]$ man ln

[[email protected]~]$ln F1 F2

[[email protected]~]$ln F1 F3

حال F1 سه تا اسم دارد.فرمانln که مخفف link می باشد چندین کاربرد دارد:

1:فایل های با نام طولانی را می توانیم یک اسم کوتاه بدهیم .

0:به یک فایل می توانیم چندین نام به زبان های مختلف بدهیم.

3:ت ییرا در هر چند فایل به صورت همزمان اعمال می شود.

ttp

19

1:با پاک شدن یکی از فایل ها در صورت وجود نام دیگر به طور کامل نابود نمی شود چون 0 تا اسم دارد از روی دیسک پاک

نمیشود..سرور اختصاصی 

فرمانrm فایل را پاک میکند:

[[email protected]~]$rm F2

حال فایلی که ساختیم دواسمیمیشود.

آیا F3یک کپی از F2 است؟ چطور بفهمیم که یکی هستند؟

در لینوکس هر object ای که درست میکنیم به آن یک عدد صحیح و مثبت اختصاص میدهد. که اگر قبل از دس تور l-lsیک

i –هم بنویسیم یعنیindexیا شمارهی آن را هم میدهد و شماره F1 و F3 را میبینیم که یکی است. ه ر object در لین وکس

درست شود یک شماره دارد که به آن inode node index میگویند.

حال اگر i –ls بزنیم میبینیم که شماره این سه فایل یعنیinode آنها یکی است البته چون یکی از آنه ا را delete کرد یم الان

دو تا فایل داریم که f1 و f3 می باشند که inode آنها یکی است.

[[email protected] ~]$ ls -i

با فرمانfind میتوانید پیدا کنید که فایلهایی که هم اسم هستند را نشان دهد.

حال یک دایرکتوری میسازیم تا ببینیم به تناق میرسیم یا نه؟

[[email protected]~]$mkdir test2

[[email protected]~]$ls-l

میبینیم که این دایرکتوری که تازه ساختیم و هیچ ln هم به آن نداشتیم تعداد لینکهایش 0 است چرا؟

مثالً یک دایرکتوریetc داریم که 055 اسم دارد آیا میتواند درست باشد؟ تعداد لینکهای دایرکتوری 0 است ولی فایل 1 است

در همان ابتداچرا؟