لینوکس : آشنایی و کار با ویرایشگر VI
در اين مبحث مي خوانيد :
آشنايي و كار با ويرايشگر vi
مديريت حساب كاربري در لينوكس
مجوزهاي دسترسي در لينوكس
ويرايشگر VI
هنگام كار با گنو/لينوكس زياد اتفاق مي افتد كه به يك ويرايشگر نياز داشته باشيد . اگر در محيط X (گرافيكي) هستيد ، مي توانيد از ويرايشگرهاي GEdit يا XEdit استفاده كنيد . محيط متني نيز ويرايشگرهاي خاص خود را دارد ؛ مانند Vi , Ed , Emacs , …
اين در حاليست كه به دليل جذاب بودن محيط متني ، اكثر كاربران حرفه اي گنو/لينوكس ترجيح مي دهند از اين محيط استفاده كنند ، و يا در مواردي كه در حال اتصال روي شبكه (Telnet) هستيد ، نياز به استفاده از محيط متني خواهيد داشت . همچنين از آنجايي كه تمام ويرايشها و پيكربنديها در پوسته متني گنو/لينوكس انجام مي شود و يا به دلايلي از اين قبيل ، آشنايي با يك ويرايشگر محيط Text ، يكي از ملزومات كار با گنو/لينوكس مي باشد .
با توجه به آنچه عنوان شد ، در اين بخش قصد دارم شما را با طرز كار ويرايشگر متني VI آشنا كنم .
VI(Visual editor) ، قدمتش به سيستم عامل يونيكس Unix باز مي گردد و خيلي قديميتر از لينوكس مي باشد . VI از حداقل هاي گنو/لينوكس است و هميشه در دسترس بودن VI را يكي از مزيت هاي آن ناميده اند .
قابل ذكر است تمام كارها در محيط VI را مي توان با يك صفحه كليد استاندارد انجام داد ، همين امر هم باعث افزايش سرعت مي شود و هم در صورتي كه به كامپيوتري ديگر Telnet كرده باشيد ، ممكن است بعضي از كليدهاي صفحه كليد يا ماوس درست كار نكند ، بنابراين VI بهترين انتخاب است ، زيرا در VI فقط كليدهايي مورد نياز ما هستند كه در يك صفحه كليد استاندارد موجود است و همه ترمينالها آن را به يك صورت مي شناسد .
البته اين ويرايشگر متني ، يك محيط پر نقش و نگار مانند Opera Officeنيست ، ولي بي ترديد يكي از برنامه هاي ويرايشي سودمند و قدرتمند گنو/لينوكس به شمار مي رود .
همچنين ممكن است در ابتدا ، كار با VI دشوار به نظر برسد ، ولي بعد از مدتي كار با اين محيط ، خواهيد توانست ويرايش هاي خود را با سرعتي قابل قبول انجام دهيد و ديگر نياز به استفاده از ماوس يا امثال كليدهاي تابعي (Function key) نخواهيد داشت .
شكل اجراي اين ويرايشگر به صورت زير مي باشد :
$vi/pathfile/filename
به عنوان مثال :
$ vi/tmp/test
در مثال فوق ، فايلي به نام test را كه مسير آن پوشه tmp مي باشد ، اگر :
الف) وجود نداشته باشد ، آن را ايجاد مي كند .
ب) وجود داشته باشد ، آن را جهت ويرايش باز مي كند .
ج) در صورتي كه اين يك فايل جديد باشد ، چيزي شبيه زير ظاهر خواهد شد :
[root @.../…]$ vi / temp/test
~
~
~
~
~
"(tmp/test)"[New File]
در اين حالت يك علامت چشمك زن ، بالاي صفحه مشاهده مي كنيد و در انتهاي صفحه نيز ، در مورد آنچه در حال رخداد است ، توضيحاتي مشاهده مي شود . در مثال قبل ، باز شدن فايلي جديد را اعلام كرده است و علامت هاي "~" به عنوان پر كننده موقت صفحه در صورت نبودن متن مي باشد. در چنين حالتي شما هنوز هيچ دسترسي جهت تايپ نخواهيد داشت و اگر كليدي براي تايپ فشار دهيد ، كامپيوتر پيغام خطا مي دهد و به شما امكان ويرايش نمي دهد .
حالت هاي كاري VI working mod VI
نخستين چيزي كه بايد براي كار با اين ويرايشگر ياد بگيريد ، آشنايي با انواع حالت هاي كاري VI مي باشد ، اين ويرايشگر سه حالت كاري دارد كه شامل حالت هاي زير است :
الف) حالت ورودي (Insert/Edit Mod) : وقتي در اين مود هستيد ، هرچيزي كه تايپ مي كنيد ، عيناً در صفحه ظاهر مي شود . همچنين براي ويرايش فايلها بايد در اين مود قرار بگيريد . براي رفتن به اين حالت ، از كليد Insert و براي خارج شدن از آن ، از كليد sc استفاده كنيد .
ب) حالت فرمان (Command Mod) : حالتي است كه منتظر صدور فرمان مي باشد و با زدن بعضي از كليدها ، دستوري اجرا مي شود . در ادامه با اين كليدها آشنا خواهيد شد . به صورت پيش فرض ، ويرايشگر بعد از اجرا ، در اين حالت قرار خواهد گرفت .
ج) حالت ايكس (EX Mod) : EX در واقع نام ويرايشگري است كه VI بر اساس آن ساخته شده است. در اين مود نيز مانند مود فرمان ، از يكسري دستورات استفاده مي كنيد . البته بعضي ها اين حالت را جزء حالتهاي كاري مستقل در نظر نگرفته اند و آن را قسمتي از حالت فرمان به حساب مي آورند . روش دستور دادن در اين حالت ، استفاده از ":" و يك دستور مي باشد .
شروع كار با VI
همانطور كه ذكر شد ، بعد از جرا ، اين ويرايشگر ( با استفاده از روشي كه ذكر شد ) به طور پيش فرض در حالت فرمان (Command Mod) قرار مي گيرد . براي رفتن به حالت ويرايشي ، بايد از كليد Insert استفاده كرد . همچنين بعد از اتمام عمليات ويرايشي ، براي بازگشت به حالت فرمان ،از كليد Esc استفاده مي كنيم . بعضي از دستوراتي را كه در حالت فرمان مي توانيم صادر كنيم ، از قرار زير است :
- كليد a : به معني Add است مانند كليد Insert عمل مي كند ، با اين تفاوت كه با زدن اين كليد مي توانيد متن را در طرف راست اعلان وارد نماييد .
- كليد I : به معني Insert است . مي توانيد متن را در طرف چپ اعلان فرمان هم وارد كنيد.
- كليدهاي مكان نما (Arrow Key) : براي حركت به چپ و راست و بالا و پايين مي توانيد از كليدهاي جهتي و همچنين از كليدهاي h براي رفتن به چپ ، l براي رفتن به راست ، j براي رفتن به پايين و k براي رفتن به بالا استفاده كنيد .
- كليدw : اعلان را به ابتداي كلمه بعدي هدايت مي كند .
- كليد b : اعلان را به ابتداي كلمه قبلي باز مي گرداند .
- كليد صفر : اعلان را به ابتداي خط جاري هدايت مي كند .
- كليد $ : اعلان را به انتهاي خط جاري هدايت مي كند .
- كليد H : اعلان را به اول نخستين خط صفحه حركت مي دهد .
- كليد M : اعلان را به اول خط مياني صفحه حركت مي دهد .
- كليد L : اعلان را به اول خط پاياني صفحه حركت مي دهد .
قابل ذكر است همانند تمام ويرايشگرهاي فرمان متني ، در vi هم مي توانيد از كليدهاي Home ، End ، PgUP ،PgDWN براي حركت در فايل و خطوط و از كليد Del براي پاك كردن متن استفاده كنيد.
- دستور ! : در صورتي كه در VI هستيد ، مي توانيد با استفاده از تايپ علامت تعجب سپس دستور مورد نظر دستورات گنو/لينوكس را از درون VI اجرا كنيد . پس از اتمام تايپ دستورات ، كليد Enter را فشار دهيد تا به برنامه باز گرديد . حتي مي توانيد با تايپ bash ! يك پوسته فرمان از درون VI باز كرده و با آن كار كنيد . پس از اتمام كار كافي است با تايپ exit به برنامه باز گرديد .
- كليدهاي Ctrl+g : در صورتي كه فراموش كرده ايد در حال ويرايش كدام فايل هستيد . با فشار دادن اين كليدها ، نام فايل و شماره خطي كه در آن هستيد و نيز تعداد خطوط فايل و ... به شما نمايش داده مي شود .
همچنين براي جستجوي متن مي توانيد از كليدهاي اسلش (/) و علامت سوال (؟) استفاده كنيد . همچنين امكان استفده از كاراكترهاي ويژه نيز وجود دارد . اسلش عمل جستجوي فايل بعد از علان ، و علامت سوال عمل جستجوي فايل قبل از اعلان را انجام مي دهد . مثلا ?hello , /hello عمل جستجو را به جلو و عقب را براي لغت hello انجام مي دهند .
و در نهايت براي استفاده و بررسي كليه امكانات و سوئيچها و فرمان هاي اين ويرايشگر قدرتمند و كاربردي ، مي توانيد از دستور help استفاده كنيد . ناگفته نماند در بين راهنما ، يك سري عبارات با رنگ فيروزهاي ديده مي شود كه در واقع لينك هستند . براي اجراي اين لينك ها روي آنها قرار بگيريد و كليدهاي Ctrl+[ را بزنيد و همچنين براي بازگشت نيز كليدهاي Ctrl+o فشار دهيد .
مديريت حساب كاربري
يونيكس همواره از حالتي كه چند كاربر ، جداگانه و به طور همزمان كارهاي خود را بر روي يك كامپيوتر انجام دهند ، پشتيباني كرده است . در حقيقت هر كاربر داراي نام كاربري معتبر ، مي تواند وارد سيستم شود و كار مورد نظر خود را انجام دهد . لينوكس نيز طبيعت چند كاربري خود را از همان سيستم هاي يونيكس اوليه به ارث برده است ، همانطور كه تعداد قابل توجهي از ساير قابليتها را نيز به ارث برده است ، مانند مجوزهاي دسترسي و حفاظت از فايلها .
اين ويژگيها با گذر زمان تغيير زيادي نكرده اند . در مقابل ، بيشتر كارهاي جعبه ابزار ،تغيير كرده اند . مانند اضافه كردن حساب كاربري كه امروزه نسبت به گذشته بسيارآسان شده است و يا تكنيك هاي قديمي استفاده از ابزار خط فرمان كه با استفاده از ابزارهاي گرافيكي كه كارهاي مديريتي را به طور قابل ملاحظه اي آسان تر كرده اند ، به راحتي انجام مي شوند .
به عنوان مثال اگر شما يك كامپيوتر مجزا داريد كه بيشتر از آن براي برنامه هاي اجرايي استفاده مي كنيد و نمي خواهيد منابع آن را با فرد ديگري به اشتراك بگذاريد ، در اين صورت ، مديريت حساب هاي كاربري و اجازه دسترسي زياد به كارتان نخواهد آمد . به هر حال اصلاح حساب هاي چند كاربره در لينوكس ، همچون ساير سيستم عامل هاي امروزي ، بسيار مهم است . همچنين چه كامپيوتر خود را با ديگر كاربران به اشتراك بگذاريد و چه از آن براي كارهاي شخصي خود استفاده كنيد ، هر عملي را كه از آن درخواست مي كنيد ، بر اساس خط مشي مشخصي ممكن است به شما اجازه داده شود يا نشود . به عنوان مثال ، ممكن است اجازه نصب برنامههاي كاربردي ، اجراي برنامه هاي به خصوص و يا دسترسي به ابزاري چون درايو CD-ROM به بعضي كاربران داده شود ، در حاليكه ممكن است به سايرين اين اجازه داده نشده باشد .
يادگيري چگونگي مديريت حساب هاي كاربري و كنترل اجازه دسترسي در لينوكس بسيار مفيد است . به اين ترتيب شما مي دانيد چگونه كامپيوتر خود را با در نظر گرفتن پروندههاي خصوصي خود ، با ساير افراد به اشتراك بگذاريد . همچنين مي دانيد چگونه خود را در برابر خسارات احتمالي محافظت كنيد ، چگونه در برابر ويروسها مقاوم باشيد و يا چگونه از به هم ريختن سيستم در اثر نصب نرم افزارهاي غير ضروري توسط كاربران فرعي ، جلوگيري كنيد .
اهداف حسابهاي كاربري متفاوت
همانطور كه مي دانيد براي دسترسي به كامپيوتر از طريق لينوكس ، اولين كاري كه بايد بكنيد ، ورود به سيستم – از طريق نام كاربري و رمز عبور – (log in) است . براي همه كاربراناين عمل يكسان و مشابه است . هر يك از كاربران سيستم مي توانند از طريق نام كاربري يكتاي خود ، هويت خود را براي سيستم مشخص كند .
ضمن اينكه وجود حساب هاي كاربري متفاوت بر روي سيستم ، نتايج مهم و مفيد بسيار دارد :
- تنها كاربران مجاز قادرند به سيستم دسترسي داشته باشند . سيستم عامل تنها ورود كاربراني را اجازه مي دهد كه نام كاربري و رمز عبورشان با هم مطابقت كنند .
- اجازه دسترسي به منابعي مانند فايلها و ابزار ، طبق قاعده و اصول داده مي شود . به عنوان مثال همه كاربران مجاز مي توانند محتواي فايل خاصي را بخوانند ، اما تنها بعضي كاربران حق تغيير محتواي آن را دارند .
- به هر كاربر دايركتوري مجزايي براي ذخيره دادههاي شخصي داده مي شود ، كه دايركتوري خانه (home directory) ناميده مي شود .
- لينوكس مي تواند به گونهاي پيكربندي شود كه رويههاي setup مشخص كاربر را براي همان كاربر خاص در زماني كه وارد سيستم شده است ، اجرا كند . به عنوان مثال ، ممكن است برنامه اي را اجرا كند كه رسيدن mail جديدي را به كاربر اعلام مي كند .
- هر برنامه اي كه توسط يك كاربر مشخص آغاز مي شود ، به حساب همان كاربر مربوط است. علاوه بر اين هر برنامه تنها به منابعي دسترسي دارد كه صاحب آن حساب ، اجازه دسترسي به آن را داشته باشد .
كاربر معمولي و مدير سيستم (Super User)
بسياري از سيستم هاي بزرگ ، بين كاربران عادي و مدير سيستم ، تفاوت قائل مي شوند . به ويژه يك كاربر از اجراي كارهاي خاصي مانند كارهاي زير منع شده است ، مگر اينكه مدير سيستم باشد :
1- نگهداري عمومي ، شخصي سازي و ارتقاء سيستم .
2- نصب عمومي برنامه هاي كاربردي ، ابزار و درايوها .
3- Backup گرفتن دورهاي از داده ها .
4- مديريت حساب كاربري .
در حقيقت جزء وظايف مدير سيستم است كه كاربران را آزاد بگذارد تا كارهاي روزمره خود را انجام دهند . به عبارتي ، در محيطهاي بسيار بزرگ با هزاران كاربر ، مديريت سيستم يك كار تمام وقت است . در اين گونه محيط ها ، تفاوت بين كاربران عادي و مدير سيستم ، به خوبي ديده مي شود . اگر مديريت سيستم به هر يك از كاربران شخصي ، بدون در نظر گرفتن تخصص و اجازه آنها واگذار شود ، فقدان سياست و كنترل مي تواند ثبات و پايداري سيستم ، سطوح اجرايي ، امنيت سيستم و ... را به خطر بيندازد.
در واقع تفاوت بين كاربران عادي و مدير سيستم در تمامي انواع نصب linux اعمال شده است . حتي در كامپيوترهاي خانگي كه تنها استفاده شخصي دارند . زيرا بسياري از مواردي كه بر روي شبكه هاي بزرگ كاربرد دارند ، بر روي كوچكترين نوع نصب نيز به كار مي رود. به عنوان مثال ، هنگامي كه حساب مدير براي اجراي كارهاي معيني سودمند باشد ، قطعاًٌ اشتباه بزرگي است كه كارهاي روزمره خود مانند خواندن mail را از طريق اين حساب كاربري انجام دهيد . نه تنها به اين خاطر كه مي توانيد از حساب معمولي نيز mail خود را بخوانيد ، بلكه به علت اجتناب از خطرهاي احتمالي كه ممكن است به سيستم آسيب برسانند .
قابل ذكر است حساب كاربري مدير ، در تمامي سيستمهاي خانواده يونيكس ، حساب ريشه (root) ناميده مي شود . قدرت اين حساب آنقدر زياد است كه تقريباً هيچ كاري براي آن ممنوع نشده است و هر كاري را مي توان در اين حساب انجام داد. در حاليكه براي كاربر معمولي ، حذف فايلهاي سيستم غير ممكن است .ضمن اينكه كاربر با حساب ريشه مي تواند همه آنها را به آساني پاك كند . به همين دليل حساب ريشه بايد با مراقبت بالايي استفاده شود . معمولاً پيشنهاد مي شود كه يك حساب شخصي به عنوان بخشي از نصب لينوكس ايجاد شود .
همچنين لينوكس به شما اين اجازه را مي دهد كه shell ريشه را از حساب عادي خود اجراكنيد .به اين ترتيب مي توانيد بيشتر كارهاي خود را تحت حساب عادي خود انجام دهيد و تنها براي انجام كارهاي مديريتي خود ، به حساب ريشه برويد .
مجوزهاي دسترسي
اكنون كه مدتي است با لينوكس آشنا شده و با اين نرم افزار قدرتمند شروع به كار كردهايد ، مطمئناً با پيام Permission Denied برخورد داشته ايد . اين پيغام مربوط به مجوزهاي دسترسي به فايل ها مي باشد . مجوزهاي فايل و دايركتوري در سيستم عاملها ، به اين علت ايجاد شده اند كه از دسترسي كاربران به فايلها و اطلاعات خصوصي كاربران ديگر جلوگيري به عمل آورده و از فايلهاي سيستمي در مقابل آسيبديدگي حفاظت كنند . همچنين مجوزهاي دسترسي ، تعيين كننده اين مطلب است كه هر كاربر يا كاربران يك گروه ، اجازه انجام چه كارهايي را دارند .
در اين قسمت مقايسه اي اجمالي بر مجوزهاي دسترسي در سيستم عاملهاي مايكروسافت و لينوكس خواهيم داشت ، همچنين نحوه اعمال اينمجوزها در لينوكس بررسي خواهد شد .
سطوح دسترسي كاربران در ويندوز
در جديدترين و امن ترين فايل سيستم مايكروسافت ، يعني NTFS 5.0 ، امكان تعيين سطوح مختلف دسترسي به دايركتوري ( و نه فايلها! ) براي كاربران مختلف به صورت زير وجود دارد :
1) No Access
2) Read
3) Read & Execut
4) Write
5) Full Control
در حالت اول ، كاربر مورد نظر هيچگونه دسترسي به دايركتوري مورد نظر ندارد .در حالت دوم تنها مي تواند فايلها را ببيند ، ولي امكان اجراي فايلهاي اجرايي را ندارد .در گزينه سوم اين اختيار به كاربر داده شده است تا فايلها را اجرا كند . در حالت چهارم يا Write ، كاربر قادر به انجام هر كاري جز تغيير سطوح دسترسي به دايركتوري مورد نظر را دارد . به اينحالت Modify هم گفته مي شود و بالاخره در آخرين حالت كاربر ميتواند هر آنچه را اراده مي كند اعمال كند . اين سطح دسترسي معمولاً Administrator مي باشد . در اين فايل سيستم ، امكان فيلتر كردن دسترسي كاربران به فايلها وجود ندارد و تمام فايلهاي موجود در يك دايركتوري ، به لحاظ سطح دسترسي ، تابع دايركتوري خود هستند . اما درلينوكس استراتژي كاملاً متفاوت است .
سطوح دسترسي كاربران در لينوكس
از آنجايي سيستم هاي مبتني بر يونيكس ، مثل لينوكس ، سيستم عاملهاي چند كاربره يا Multiuser به شمار مي آيند ودر هر لحظه بيش از يك كاربر مي تواند از سيستم استفاده نمايد ، اين نكته بسيار ضروري است كه بتوانيم اين كاربران را مديريت و از لحاظ سطح امنيتي آنها را محدود كنيم ، تادر آينده دچار مشكلات امنيتي نشويم .
لازم به ذكر است در لينوكس هر كاربري كه مالك يا ايجاد كننده يك فايل يادايركتوري باشد ، مي تواند باتعيين سطوح دسترسي ، فايل يا دايركتوري مربوطه براي ديگر كاربران يا گروه هاي كاربري ، آنان از امكان خواندن و ايجاد تغييرو يا اجراي فايل محروم يا بهرهمند سازد .
به اين نكته توجه داشته باشيد كه مجوزهاي تعريف شده براي يك گروه كاربري ، بر روي تمام اعضاي آن گروه اعمال شده و هر كرابر عضو آن گروه از تمام مزايا يامحدوديتهاي مورد اشاره ، بهرهمند خواهد شد.
كاربران در لينوكس
در لينوكس سه دسته مختلف از كاربران وجود دارند :
1- كاربر اصلي : يا Super User با نام root شناخته مي شود كه بر تمام سيستم كنترل كامل داشته و بالاترين سطح دسترسي يك سيستم را دارا مي باشد و قابل ذكر است كه اين كاربر ، با شناسه كاربري يا User ID به شماره [.] شناخته مي شود .
2- كاربر ساده : مي تواند وارد سيستم شود و كارهاي معمولي يك كاربر را انجام دهد . هر كاربر يك دايركتوري به نام دايركتوري خانگي يا Home Directory دارد كه اغلب در /home و با نام كاربري آن كاربر مي باشد و نيز يك شل دارد كه در اكثر مواقع /bin/bash مي باشد . اين كاربران به منابع سيستم دسترسي ندراند ، به اين معني كه نمي توانند تنظيمات كلي سيستم مثلاً سرويس دهندههاي وب راتغيير دهند ( مگر آنكه كاربر ريشه اين مجوز را براي آنها صادر كند ) . در نتيجه اين كاربران نمي توانند به سيستم آسيبي برسانند و يا فايلهاي سيستمي را پاك نموده يا تغييردهند .
دقت داشته باشيد كه در لينوكس ، هر سيستمي علاوه بر يك كاربر ريشه ، حداقل يك كاربر ساده نيز دارد تاكارهاي معمولي و حتي كارهاي كاربر خانگي توسط اين كاربر ساده انجام گيرد تا از آسيب ديدن سيستم جلوگيري شود . (اين آسيب مي تواند پاك شدن يك فايل سيستمي به دليل ناآشنايي كاربر ساده باشد ) .
3- كاربران سيستم : اين كاربران هرگز Login نمي كنند . ضمن اينكه حسابهاي كاربري يا Account هاي اين كاربران براي كارهاي خاص استفاده مي شود .اين كاربران معمولاً دايركتوري خانكي نيز ندارند. نمونه اي از اين كاربران ، كاربران ftp ، lp, apache مي باشند . كاربر ftp براي دسترسي بي نام (Anonymius) يا همان بدون نام كاربري و پسورد استفاده مي شود ، ياكاربر apache معمولاً براي مديريت درخواستهاي HTTP استفاده مي شود . (البته در برخي توزيعهاي لينوكس ، اين ك اربر nobody يا www-data مي باشد) .
مجوزهاي دسترسي در لينوكس
به طور كلي در لينوكس ، سه سطح دسترسي براي هر فايل و دايركتوري تعريف مي شود . اين مجوزها از ابتدا در سيستم عامل لينوكس و بر روي تمام انواع فايل سيستم هاي آن موجود بوده ودر تمام سيستم فايل ها نيز يكسان مي باشند . كه عبارتست از :
1- Read Permission : بيانگر مجوز خواندن يك فايل مي باشد و امكان خواندن محتواي يك فايل را به يك كاربر مي دهد و براي دايركتوري ها امكان ليست كردن محتواي داخل دايركتوري را براي كاربر فراهم مي سازدو با r نشان داده مي شود .
2- Write Permission : بيانگر مجوز نوشتن و تغييردادن محتويات يك فايل مي باشد و امكان ايجاد تغييرات در محتويات فايلها را به كاربر مي دهد . براي دايركتوري ها ، اين گزينه امكان ايجاد فايل جديد در دايركتوري يا حذف فايلهاي موجود در آن را براي كاربر مهيا مي سازد و حتي اگر اين كاربر يا گروه كاري مالك يا ايجادكننده اصلي فايل يا دايركتوري نباشد ، با w نشان داده مي شود .
3- eXect Permission : بيانگر داشتن مجوز اجرا مي باشد .اين مجوز در مورد فايل هاي اجرايي ، امكان اجراي فايل را به يك كاربر يا گروه خاص مي دهد . توجه داشته باشيد كه اين گزينه با گزينه Read اشتباه گرفته نشود . چون صرفاً با داشتن مجوز eXecute و بدون داشتن مجوز Read ، كاربر يا گروه مي تواند وارد دايركتوري خاصي شود ، ولي امكان خواندن محتويات داخلي آن دايركتوري براي آنها فراهم نخواهد بود .
در اين جا لازم به ذكر است ، هميشه تركيبي از سطوح سه گانه مجوزهاي فوق نيز قابل استفاده مي باشد .به عنوان مثال شما در صورت داشتن مالكيت يك فايل ، مي توانيد دسترسي به آن را صرفاً براي شخص خود تعريف و سايركاربران و گروهها را از ديدن يا اجرا و ايجادتغيير در آن محدود نماييد. حتي بر عكس آن نيز امكان پذير هست ، يعني يك كاربر كه مالك يك فايل يا دايركتوري است ، مي تواند به ديگران اجازه دسترسي و اجرا يا تغيير آن را بدهد ، ولي خود او از اين امكانات محروم باشد .
البته هميشه تنها كسي كه تمام دسترسي ها را به فايلها و پوشه ها دارد ، مدير سيستم يا كاربر Root مي باشد . بنابراين از مهمترين جنبه هاي امنيت در سيستم هاي مبتني بر يونيكس ، حفظ و حراست از كلمه عبور ، ريشه يا (Root) به عنوان يكي از اطلاعات حياتي سيستمي مي باشد .
انواع دستهبندي كاربران براي تنظيم مجوزهاي دسترسي
انواع كاربراني كه مي توانيد براي آنها مجوز دسترسي تنظيم كنيد ، به شرح ذيل مي باشد:
1- Owner : كاربري كه فايل يا پوشه را ايجاد كرده است يا اصطلاحاً مالك آن مي باشد ، و با كد u مشخص مي شود .
2- Group : گروهي از كابران كه كاربر مالك در آن عضويت دارد و با كد g مشخص مي شود .
3- Other : ديگر كاربران استفاده كننده از سيستم ، كه با كد o مشخص مي شود .
4- All : تمام كاربران كه با كد a مشخص مي شود .
تغيير مجوزهاي دسترسي
از دستور (change mode ) chmod براي تغيير مجوزهاي دسترسي استفاده مي كنيم . دو روش براي اين كار وجود دارد كه به قرار زير مي باشد :
فقط مالك فايل (كاربر ايجاد كننده آن ) و root مي تواند Permission يا مجوز دسترسي فايل را تغييردهند . توجه داشته باشيد كه اگر مجوزها را طوري تعيين كنيد كه مالك فايل يادايركتوري ، هيچ مجوزي نداشته باشد ، حتي مالك آن فايل يا دايركتوري نيز نمي تواند به آن دسترسي داشته باشد . اما چون وي مالك فايل يا دايركتوري مي باشد ، مي تواند مجدداً مجوزها را تغيير دهد و از آن استفاده كند .
روش اول با استفاده از نشانها
در روش نخست پس از دستور chmod مي توان با علامت هاي "+" يا "-" يك يا چند مجوز را به كلاسها افزود و يا از آنها گرفت .
Chmod USER/=NEW_MODE File/Directory
مثلاً :
#chmod go – rx anything
اين دستور تعيين مي كند كه مجوز خواندن و اجراي فايلي به نام anything از كلاس گروه كاربر (u) و سايرين (o) گرفته شود و بر عكس آن نيز به صورت زير است :
#chmod go + rx anything
روش دوم با استفاده از اعداد
در روش دوم ، مجموع سه سطح دسترسي (خواندن ، نوشتن و جرا) به صورت يكعدد بين صفر تا هفت براي 3 كلاس كاربر ، گروهش و سايرين به صورت زير تعيين مي شود و پس از دستور chmod مي آيد .
Chmod MODE File/Directory
MODE در نمونه بالا ، عددي سه رقمي مي باشد كه نشان دهنده مجوزهاي جديد براي فايل يا دايركتوري مورد نظر است . رقم اول مربوط به مجوز دسترسي مالك ، رقم دوم مربوط به مجوز دسترسي گروه و رقم سوم مربوط به مجوز دسترسي ساير كاربران مي باشد .
براي خواندن (Read) عدد چهار "4" براي نوشت (Write) عدد دو "2" و براي اجرا (execute) عدد يك "1" منظور مي شود . براي دادن مجوزها اين اعداد را بايد با هم جمع كنيم . يعني هفت (4+2+1) نشان دهنده دسترسي كامل است . در نتيجه مثلا 777 نشان دهنده اعطاي دسترسي كامل به همه كاربران است . مثلاً :
#chmod 750 anything
اين دستور تعيين مي كند كه مجوزها براي فايل anything بصورت زير تغيير كنند :
Rwxr-x---
همچنين براي تغيير تعداد زيادي از فايل ها در يك زمان ، بايد از گزينه R در دستور chmod استفاده كنيد . در عين حال اين امكان وجود دارد كه با يك فرمان ، مجوزهاي تمام فايلها و دايركتورهاي درون يك ساختار دايركتوري راتغيير دهد . براي مثال ، براي تغييرمجوزهاي تمام فايل ها و دايركتورهاي موجود در مسير tmp/test مي توانيد از دستور زير استفاده كنيد :
$chmod –R 777 / tmp/test
به اين نكته نيز توجه داشته باشيد كه گزينه R دستور chmod ، هنگام اعطا مجوزهاي كامل و اعطا مجوز اجرا ، بسيار خودب است ولي در صورتي كه دستور بالا را بجاي مقدار 777 با مقدار 644 اجرا كنيد ، ديگر نمي توانيد به هيچ يك از دايركتورهاي موجود در آن مسير وارد شويد .
مجوزهاي پيش فرض
شما زماني كه يك فايل يا دايركتوري مي سازيد ، به طور پيش فرض به آن يك مجوز اختصاص پيدا خواهد كرد . مجوز پيش گزيده آن 644 براي فايل ها و در مورد دايركتوري ، اين مجوز 755 است . اين مقادير پيش گزيده توسط دستور umask تعيين مي شود . براي نمايش مقدار umask دستور زير را تايپ كنيد :
$ umask
022
روش خواندن اين عدد كمي متفاوت است ؛ در واقع اين اعداد مجوزهاي سلب شده است كه به شما نمايش داده مي شود . براي نمونه در 022 از مالك هيچ مجوزي سلب نشده است . يعني مالك تمام مجوزها را داراست و از گروه و ديگران مجوز 2 يانوشتن سلب شده است .براي اينكه بتوانيد راحتتر اين مجوزها را بخوانيد ، مي توانيد براي دايركتوريها مقدار داده شده را از 777 و براي فايلها از 666 كم كنيد . بااين كار مجوز پيش فرض براي فايل ها و دايركتوري ها بدست مي آيد .
666-022=644
777-022=755
اگر باز هم با خواندن اعداد مشكلي داريد ، مي توانيد با گزينه S اين دستور را اجرا كنيد :
$ umask – S
u=rwx,g=rx,o=rx
تغييرماليكت فايل يادايركتوري
به طور پيش فرض ، هر كاربري كه فايلي را ايجاد نمايد ، مالك آن فايل شناخته مي شود .در صورتي كه بخواهيد ماليكت يك فايل را تغييردهيد ، بايد از دستور chown استفاده نماييد . هنگامي كه ماليكت يك فايل يا دايركتوري را به كاربري اعطا كنيد ، آن كاربر داراي تمام مجوزها براي انجام تغييرات و تغيير مجوزها روي آن فايل يادايركتوري است . شكل دستور ، به صورت زير مي باشد :
$ chown NEW_OWNER File/Directory
NEW_OWNER نام مالك جديد فايل يادايركتوري مي باشد كه مي خواهيم مالكيت فايل يا دايركتوري را به او نسبت دهيم . بايد دقت كرد كه فرد مورد نظر كه مي خواهيم مالكيت فايل يا دايركتوري را به او نسبت بدهيم ، در سيستم تعريف شده باشد . در غير اين صورت با پيغام (invalid user) مواجه خواهيم شد.
به مثال هاي زيرتوجه كنيد :
#chown hossein anything
#chown – R hossein /home/hossein
در مثال نخست ، ماليكت فايلي به نام anything به كاربر hossein اعطا مي شود . در مثال دوم ، ماليكت دايركتوري home/hossein و تمام فايل ها و دايركتوري هاي زير آن به كاربر hossein اعطا مي شود . توجه داشته باشيد كه در چنين مواردي از گزينه R در دستور استفاده مي شود .
به اين نكته توجه داشته باشيد كه پس از تغيير ماليكت فايل يادايركتوري ، ديگر نمي توانيد مجوزهاي آن را تغييردهيد ، چون شما ديگر مالك آن فايل يادايركتوري نيستيد . البته اگر عضو گروه فايل يا دايركتوري باشيد ، همانند اعضاي گروه با شما رفتار خواهد شد . اگر هم عضو گروه نباشيد ، در قسمت ساير كاربران قرار خواهيد گرفت . پس حواس خود را جمع كنيد تا اشتباهي ماليكت فايلي را تغييرندهيد .البته كاربر ريشه مي تواند هرگونه تغييري در ماليكت فايل يا دايركتوري ايجاد كند .
بررسي پردازش ها (Processes) در لينوكس
لينوكس علاوه بر چند كاربره بودن ، سيستم عاملي است چند وظيفهاي (multitasking) چند وظيفه بودن به اين معني است كه برنامه هاي زيادي مي توانند در يك زمان اجرا شوند . ضمن اينكه هر برنامه در حال اجرا ، پروسه ناميده مي شود . لينوكس فراميني براي نمايش پروسه هاي در حال اجرا ، نمايش استفاده از منابع سيستمي و متوقف كردن پروسههاي در مواقع لزوم دارد .
Process (فرآيند) هر نوع برنامه يا كاريست كه توسط PC شما انجام مي شود . براي مثال ls-IR يك دستور يا درخواست براي فهرست كردن فايل هاي موجود در دايركتوري و تمام زير دايركتوري هاي دايركتوري جاري مي باشد . اين يك نوع فرآيند است . در حقيقت Process يك برنامه يادستور داده شده توسط كاربر براي انجام يك سري كارها است . در لينوكس زماني كه شما يك Process را آغاز مي كنيد ، به آن فرآيند ، يك شماره اختصاص داده مي شود ، كه به آن PID يا Process-ID مي گويند . PID عددي بين 0 تا 65535 است .
همانطور كه قبلاً اشاره شد ، لينوكس يك سيستم عامل چند كاربره و چند كاره است . به اين معني كه اگر بخواهيد مي توانيد بيش از 2 فرآيند را به طور همزمان اجرا كنيد . به عنوان مثال ، براي اينكه بدانيد چه تعداد فايل روي سيستم خود داريد ، ممكن است قصد اجراي دستوري مانند زير داشته باشيد :
$ ls / -R|wc - l
اين دستور زمان زيادي را براي جستجوي تمامي فايلهاي سيستم مي گيرد . شما مي توانيد چنين دستوري را در background اجرا كنيد يا به طور همزمان اجرا نماييد :
$ls / R|wc-l&
اين در حاليست كه علامت & در انتهاي فرمان ، به shell اعلام مي كند كه فرمان (ls / -R|wc – l) را آغاز كند و آن را در background اجرا نمايد و بلافاصله دستور بعدي را بگيرد . مثال فوق يك فرآيند استو عددي است كه توسط shell چاپ مي شود ، PID ناميده مي شود . از اين PID ممكن است براي ارجاع به يك پروسه (process) در حال اجراي مشخص ، استفاده شود .








