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

ژانویه 18, 2016

در لينوکس هر object که ايجاد ميشود يک شناسه منحصر به فرد دارد که اطلاعا و مجوزها و صاحب هر object را مشخص ميکند. هاست لینوکس وقتي فرمان ls -l را ميزنيم اطلاعا و مشخصا فايل ها را مشخص ميکند.اولين فيلد اطلاعاتي شامل مجوزها مي باشد .سمت چپ ترين کاراکتر اگر d باشد يعنيدايرکتوري است و اگر باشد يعني فايل است. – بعد از سمت چم ترين کاراکتر در فيلد اول . کاراکتر ديگر هم در اين فيلد مشاهده ميکنيم که سه دسته مي باشند.سه ت ا ي اول مربوط به owner يعني صاحب فايل مي باشد read write execute ( rwx ( يعني مجوز خواندن، نوشتن و اجرا کردن. اگر ب ه جاي هر کدام از اين کاراکترها – بود يعني اجازه ي انجام آن کار را ندارد .سه تاي دوم مربوط به هم گروه ه ا ي آن userid م ي باشد group که مشخص ميکند هم گروههاي آن userid چه permission هايي دارند read write execute ( rwx ( و س ه تاي آخر هم مجوز هاي مربوط به other را مشخص مي کند يعني افراد غريبه چه مجوزهايي دارند.به عنوان مثال مجوز زير م ي تواند مربوط به يک فايل مي باشد. -rwx r– r– حالا با اين فرمان از هر جايي که هستيم به خانهي خودمان ميرويم : [N.pardis@Lpi1~]$ cd /home/ به ياد داشته باشيد که هيچ وقت در لينوکس اسم فايل و يا فرم ان ي را ب ه ط ور کام ل تا ي م نکني د و هميش ه از کل ي د tab ک ه command completion است استفاده کنيد. و از آنجا به خانه يک فرد ديگر ميرويم که پي ام permission denied ميگيريم چون بايد root باشيم تا اين مجوز فعال شود و اجازه داشته باشيم: [N.pardis@Lpi1~]$ cd /a.Niki/ Permission denied حالا اگر مجوزها را ت يير دهيم ميتوانيم به خانهي فرد برويم که با فرمان chmod ميتوانيم مجوزها را ت يير دهيم. 777 يعني همه ميتوانند همه کاري را انجام دهند، هر فردي چه غريبه و چه همگروه ميتوانند همه کاري انجام دهند. اجازهي اجراي دايرکتورييعني مجوز x براييک دايرکتوري چيست؟ ln در لينوکس ما ميتوانيم به يک فايل تا 055 تا اسم بدهيم . فرمان ln که مخفف link مي باشد در لينوکس براي دادن چندين اسم به يک فايل به کار مي رود. ابتدا يک فايل مي سازيم.با فرمان ls –l مشخصا آن را ميبينيم که اندازه آن صفر است. [N.pardis@Lpi1~]$ > F1 [N.pardis@Lpi1~]$ ls-l اگر بخواهيم دو تا اسم دهيم از فرمان ln استفاده ميکنيم که با هم manual آن را ميبينيم [N.pardis@lpi1 ~]$ man ln [N.pardis@Lpi1~]$ln F1 F2 [N.pardis@Lpi1~]$ln F1 F3 حالا F1 سه تا اسم دارد.فرمان ln که مخفف link مي باشد چندين کاربرد دارد: 1:فايل هاي با نام طولاني را مي توانيم يک اسم کوتاه بدهيم . 0:به يک فايل مي توانيم چندين نام به زبان هاي مختلف بدهيم. 3:ت ييرا در هر چند فايل به صور همزمان اعمال مي شود. 1:با پاک شدن يکي از فايل ها در صور وجود نام ديگر به طور کامل نابود نمي ش ود چون 0 ت ا اس م دارد از رو ي ديس ک پ اک نميشود.. فرمان rm فايل را پاک ميکند: [N.pardis@Lpi1~]$rm F2 حالا فايلي که ساختيم دواسميميشود. آيا F3 يک کپي از F2 است؟ چطور بفهميم که يکي هستند؟ در لينوکس هر object اي که درست ميکنيم به آن يک عدد صحيح و مثبت اختصاص ميدهد. که اگر قبل از دس تور ls-l ي ک i هم بنويسيم يعني – index يا شمارهي آن را هم ميدهد و شماره F1 و F3 را ميبينيم که يکي است. ه ر object در لين وکس درست شود يک شماره دارد که به آن inode ( index node ( ميگويند. حالا اگر ls –i بزنيم ميبينيم که شماره اين سه فايل يعني inode آنها يکي است البته چون يکي از آنه ا را delete ک رد يم الان دو تا فايل داريم که f1 و f3 مي باشند که inode آنها يکي است. [n.pardis@lpi ~]$ ls -i با فرمان find ميتوانيد پيدا کنيد که فايلهايي که هم اسم هستند را نشان دهد. حالا يک دايرکتوري ميسازيم تا ببينيم به تناق ميرسيم يا نه؟ – [N.pardis@Lpi1~]$mkdir test2 [N.pardis@Lpi1~]$ls-l ميبينيم که اين دايرکتوري که تازه ساختيم و هيچ ln هم به آن نداشتيم تعداد لينکهايش 0 است چرا؟ مثلاً يک دايرکتوري etc داريم که 055 اسم دارد آيا ميتواند درست باشد؟ تعداد لينکهاي دايرکتوري 0 است ولي فايل 1 اس ت در همان ابتداچرا؟