امنيت و دستيابي به اطلاعات در UNIX
مسئله امنيت و دستيابي به اطلاعات از وظائف مدير سيستم UNIX است كه بايد آن را انجام دهد. در اين فصل ساختار امنيتي و مسئله PASSWORD ( كلمه عبور) مورد بررسي قرار مي گيرد. هم چنين امكان دسترسي به فايلها از طريق استفاده كنندگان سيستم نيز بحث خواهد شد.

سيستم امنيتي UNIX
سيستم UNIX داراي سيستم امنيتي از پيش ساخته اي است . در سطح LOGIN ( ورود به سيستم ) ، يا پرسش PASSWORD , USER ID مسئله امنيت حاصل مي شود.
هر USER ID در سيستم منحصر به فرد است. هر فردي داراي USER ID خاص خودش مي باشد. با توجه به اينكه هر فردي با وارد شدن به سيستم مي تواند USER ID را بدست آورد، درخواست كلمه عبور نيز موجب بالا رفتن سطح امنيت مي شود. بايد از كلمات عبور مراقبت كامل شود. هيچ كس توانايي پيدا كردن كلمه عبور شما را ندارد.

قوانين PASSWORD
هنگام ورود به UNIX از شما كلمه عبور خواسته شده و شما آن را وارد مي كنيد. كلمه عبور را بايد تناوباً تغيير داده و در جاي مناسبي قرار دهيد، اگر اين كلمه را از دست دهيد، مدير سيستم برايتان يكي ديگر ايجاد خواهد كرد. پس از آن ، مي توانيد كلمه عبورتان را تغيير دهيد، همانند فرامين و نام فايلهاي UNIX ، كلمات عبور نيز به حروف كوچك و بزرگ حساس هستند.

حداقل طول اين كلمه شش كاراكتر است، سعي كنيد كه كلمه عبورتان ، شماره تلفن ، شماره شناسنامه يا چيز قابل حدس نباشد. مي توانيد آن را با استفاده از تركيب حروف

بزرگ و كوچك پيچيده تر كنيد، براي مثال shOoteRs بهتر از shooters است. توجه كنيد كه هنگام تايپ كردن كلمه عبور آن را روي مانيتور نمي بينيد.
تغيير password
وقتي وارد سيستم شديد مي توانيد با استفاده از فرمان password كلمه عبورتان را تغيير دهيد، مثال :
$ password
changing password for carson
old password
type new password:
Re – enter new password
$
سيستم در ابتدا نام user را نشان مي دهد ( carson ) ، سپس كلمه عبور قديمي را درخواست مي كند. در صورتي كه درست وارد كرده باشيد، كلمه عبور جديد از شما مي خواهد. در صورتي كه طول آن زياد باشد، unix فقط ۸ كاراكتر اول را انتخاب مي كند. براي اطمينان از نام كلمه عبور ، دوباره از شما مي خواهد كه آن را تايپ كنيد.
پس از وارد كردن كلمه جديد، فوراً سيستم را logoff كرده و مجدداً با كلمه عبور جديد وارد آن شويد.
امنيت فايل و دايركتوري
علاوه بر وجود كلمه عبور جهت حفاظت از دسترسي غير مسئولانه به اطلاعات سيستم ،‌ unix از دسترسي غيرمجاز به فايلها و دايركتوري ها نيز جلوگيري مي كند. استفاده كنندگان مختلف داراي انواع گوناگون دسترسي هستند، در اين بخش درباره انواع استفاده كنندگان و دسترسي ها مطالبي فرا خواهيد گرفت.
انواع استفاده كنندگان
در ارتباط با دسترسي به فايل سه نوع استفاده كننده وجود دارد، اولين نوع owner است كه ايجاد كننده فايل يا دايركتوري مي باشد، اگر با استفاده از فرمان mddir دايركتوري و فايل ايجاد كنيد، شما صاحب ( owner ) آنها هستيد. دومين نوع استفاده كننده group ( گروه ) استو. هر استفاده كننده در يك گروه مشخص قرار دارد كه داراي يك يا چندين عضو است. اعضاء گروه اغلب در يك پروژه با ديپارتمان يكسان كار مي كنند.

افراد يك گروه مي توانند به فايلهاي هم گروه خود دسترسي داشته باشند. البته مي توانيد با استفاده از فراميني اين (( اجازه ها )) را تغيير دهيد.
سومين نوع استفاده كننده others ‌ ( سايرين ) شامل هر فردي است كه از گروه شما خارج است. اين افراد دسترسي كمتري به اطلاعات تان دارند. در حقيقت ، نوع ديگري از استفاده كنندگان بنام supernuser با استفاده كننده ارشد وجود دارد.
مدير سيستم تنها فردي است كه مي تواند از اين نوع استفاده كننده باشد. البته چندين فرد مي توانند به كلمه عبور سوپروايزر دسترسي داشته باشند.
فردي كه بعنوان سوپروايزر وارد سيستم مي شود به تمام فايلها و دايركتوري ها دسترسي دارد.

سوپروايزر مسئول تمام اجازه هايي است كه به افراد مي دهد تا به فايلهاي ديگران دسترسي داشته باشند.
انواع دسترسي
سه نوع دسترسي وجود دارد:
READ ( خواندن )
WRITE ( نوشتن )
EXECUTE ( اجرا )

دسترسي (( خواندن )) به شما اجازه مي دهد كه فايلها را خوانده و يا چاپ كنيد. فايلهاييي را كه مي توانيد بخوانيد، مي توانيد به دايركتوري خودتان كپي كنيد. بطور خودكار، مي توانيد فايلهايي را كه ايجاد مي كنيد بخوانيد.
شايد بتوانيد اجازه خواندن فايهاي هم گروه خود را داشته باشد. ساير هم گروههاي شما نيز ممكن است بتوانند فايلهايتان را بخوانند.
وقتي اجازه نوشتن داريد، مي توانيد فايلها را تغيير يا انتقال داده، و يا حذف كنيد، بطور خودكار فايلهايي را كه خودتان ايجاد مي كنيد اجازه نوشتن داريد. ممكن است اجازه نوشتن در فايلهاي هم گروهي هاي خود نداشته و آنها نيز نتوانند روي فلاپيهاي شما بنويسيد.

دسترسي ( اجرا ) بدين معني است كه مي توانيد يك فايل را اجرا كنيد. اين (( اجازه )) مربوط به برنامه ها و فايلهاي خاصي از سيستم است كه امكاناتي را برايتان ايجاد نمي كنند.
معمولاً به يك سري از فالهاي UNIX كه در روز استفاده مي كنيد دسترسي ( اجرا ) داريد. داشتن يك نوع دسترسي به داشتن (( اجازه دسترسي )) ( ACCESS PERMISSION ) بستگي دارد. مي توانيد (( اجازه دسترسي )) را براي فايلهاي خودتان تغيير دهيد. حتي مي توانيد (( اجازه نوشتن )) را براي فايلهاي خودتان از خوتان سلب كنيد. ( براي جلوگيري از نوشتن هاي تصادفي ).
هر يك از انواع استفاده كنندگان ( OWNER – OTHER , GROUP ) مي توانند هر تركيبي از انواع دسترسي ( EXCCUTC , WRITE , READ ) را براي هر فايل با دايركتوري داشته باشند.

دسترسي پيش فرض ( DEFAULT ACCESS )
ممكن است بطور پيش فرض سيستم براي فايلها و دايركتوري هاي جديدي كه شما ايجاد مي كنيد تمام (( اجازه ها )) و براي هم گروهي هايتان فقط اجازه نوشتن و خواندن و براي هر فرد ديگر ي فقط اجازه خواندن را ارائه دهد.
اجازه هاي پيش فرض را مي توانيد با فرمان IS و سويچ –۱ بدست آوريد. شكل صفحه بعد نشان مي دهد كه چگونه در ليست گيري كامل و طولاني هر يك از كاراكترها چه اجازه هايي را بيان مي كنند.

همانطور كه مي دانيد، كاراكتر اول فايل بودن ( – ) يا دايركتوري بودن ( d ) را نشان مي دهد. ۹ كاراكتر بعدي بيانگر (( اجازه ها ))‌مي باشد، سه كاراكتر اول از اين ۹ كاراكتر مربوط به اجازه دسترسي owner ( خود استفاده كننده ) ، سه كاراكتر بعدي بيانگر اجازه دسترسي گروه و سه كاراكتر آخري بيانگر اجازه هر فرد ديگري است. حداكثر اجازه توسط twx مشخص مي شود كه بيانگر executc , write , read است.
خط تيره ( – ) بيانگر اينست كه هيچ نوع اجازه اي وجود ندارد.
بررسي دسترسي ( access )
نتيجه فرمان [ s – ] سه فايل زير است.
Rwxrwxr – ۲ carson 784 may 15 08:53 processing
Rw-rw-r- 1 carson 1128 may 17 10:14 realty . data
Rw-rw-r—۱ carson 9176 may 11:12 weather . data

توجه كنيد كه حرف اول d بيانگر دايركتوري بودن است. نام فايلها در سمت راست ظاهر مي شود.
در مثال فوق، owner داراي احازه rwx براي دايركتوري است كه موجب مي شود تا بتواند خواندن، نوشتن و ساير عمليات پيشرفته را انجام دهد.
بطور پيش فرض، owner داراي اجازه (( اجراي )) فايلهاي معمولي نيست. هم گروههاي owner نيز با اجازه rw مي توانند تمام فايلها را خوانده و بنويسند.
اعضاي گروه نمي توانند هيچ برنامه اي را اجرا كنند، اما مي توانند دايركتوري را جستجو كنند چرا كه ليست دايركتوري preccssing داراي x مي باشد . x براي دايركتوري به مفهوم اجراي دايركتوري نبوه و فقط اجازه عمليات ديگري را به دارنده آن اجازه بوجود مي آورد. هر فرد ديگري فقط داراي اجازه خواندن است – r )
آنها نمي توانند روي فايلها نوشته و يا دايركتوري را جستجو كنند.

مي توانيد (( اجازه هاي دسترسي )) را در هر دايركتوري كه اجازه جستجو داريد بررسي كنيد. اگر توانايي رفتن به دايركتوري هم گروه خود را داريد،‌ مي توانيد (( اجازه هاي دسترسي ))‌ را در آن دايركتوري برسي كنيد.
اگر بخواهيد به دايركتوري استفاده كننده گروه ديگري برويد پيام :
had direcctory
يا
access donied

ظاهر مي شود كه بيانگر عدم اجازه ورود و يا عدم وجود چنان دايكرتوري است.
تغيير (( اجازه هاي دسترسي )) ( chmod )
مي توانيد هر فايل يا دايركتوري كه شما صاحب هستيد تغيير (( اجازه دسترسي )) دهيد.
تغيير (( اجازه دسترسي )) توسط فرمان chmod صورت مي گيرد، شكل زير قالب اين فرمان را نشان مي دهد:
ليست فايل [ اجازه عمليات ] انواع استفاده كنندگان chmod

انواع استفاده كننده:
u استفاده كننده يا مالك فايل
g گروه مربوطه
o تمام استفاده كننده هاي ديگر
a تمام انواع سه گانه استفاده كننده ها
عمليات :
+ اجازه را اضافه كن
– اجازه را حذف كن
= اجازه را set كن. تمام اجازه هاي ديگر reset مي شود.
اجازه ها:
r اجازه خواندن
w اجازه نوشتن
x اجازه اجرا
s هنگام اجرا id را به owner مرتبط كن
مثالها :
۱ . chmed u – w finances. Date

۲ . chmod go + 1 newyork . 1990
3 . chmod o+1 newyork / *
4 – chmod g – x shome / miscel
نتايج :
۱ – اجازه نوشتن از owner سلب شود.
۲ – استفاده كنندگان other , group اجازه
خواندن فايل newyork .1990 را پيدا كردند.

۳ – اجازه خواندن تمام فايلهاي دايركتوري new york به استفاده كنندگان other داده شد.
۴ – اجازه (( اجراي )) دايركتوري shome / misce / از گروه گرفته شد، بدين معني كه نمي توانند ليست دايركتوري مذكور را ببينند.
با بكار گيري فرمان chmod مي توانيد دسترسي را براي خودتان بعنوان owner ، براي تمام اعضاء همگروه تان و براي هر فرد ديگري تغيير دهيد.
در اكثر فرامين chmod چهار موضوع مشخص مي شود:

نوع استفاده كننده مي تواند ( others ) o , ( group ) g , ( yourself ) u يا هر سه نوع استفاده كننده باشد.مي توانيد آنها را تركيب كنيد.
Ug بيانگر خود و گروه تان و go بيانگر هر استفاده كننده اي به غير از خودتان است.
كاراكتر s در اجازه ها موجب اجازه اجرا مي شود، اما هنگام اجراي برنامه ،‌id ساير استفاده كنندگان را به آن owner مجدداً مقدار گذاري مي كند.
اين ويژگي موجب مي شود كه دسترسي موقتي به اطلاعات و برنامه هايي پيدا شود كه برنامه ممكناست به آنها نيز داشته باشد.
فرمان chmod u + l newprog

اجازه اجراي فايل newprog را به شما مي دهد.
فرمان chmod a=r newfile
اجازه خواندن را براي تمام انواع سه گانه استفاده كننده ها ايجاد كرده و هر نوع نوشتن و اجرا را حذف مي كند.
فرمان chmod ug+x newprogs/*

به owner و هم گروه وي اجازه اجراي فايلهاي درون دايركتوري new progs را مي دهد.
اگر از = براي عمليات استفاده كنيد، مي توانيد دسترسي را حذف كنيد.
تاثير اين عمليات حذف تمام اجازه هاي استفاده كننده مشخص شده است:
$ chmod go = exam
نوع استفاده كننده go ( گروه و ساير استفاده كنندگان ) بوده و owner را شامل نمي شود.
عمليات = موجب مي شود تمام اجازه ها براي آنها حذف شود.
بهتر است پس از بكارگيري فرمان chmod محتواي دايركتوري را تست كنيد تا مطمئن شويد كه فرمان را درست بكار برده ايد.

محدوديت هاي فرمان chmod
نمي توانيد فقط يك user يا زير مجموعه اي از user ها را تغيير اجازه دهيد. اگر قصد تغيير اجازه يك عضو از گروهتان را داريد، بايد آن تغيير را در مورد كل گروه اعمال كنيد.

تغيير مالكيت يك فايل ( فايل chown)
گاهي لازم است مالكيت يك فايل را تغيير دهيد، فرمان chown به همين منظور بكار مي رود. شكل كلي اين فرمان چنين است:
نام فايل مالك فايل chown
فردي كه فايل را به ملكيت وي در مي آوريد بايد در سيستم حضور داشته و login id داشته باشد.
توجه فقط فايل هايي را كه مالك آن هستيد مي توانيد به تملك ديگران در آوريد. در صورتي كه فايلي را به تملك ديگري در آوريد، ديگر صاحب آن نيستيد. مالك جديد مي تواند مجدداً فايل را به تملك شما در آورد.

مثال ها:
$ chown hosnavi prg1
فرمان فوق ، فايل prog1 را به تملك hosnavi در مي آورد.
$ chown root *
فرمان فوق، مالكيت تمام

فايل ها در دايركتوري جاري را در اختيار مدير سيستم ( super user ) قرار مي دهد.
تغيير گروه يك فايل ( فرمان chgrp)
فرمان chgrp گروه يك فايل را تغيير مي دهد. شكل كلي فرمان چنين است:
نام فايل ها نام گروه chgrp
نام گروه بايد در فايل / etc/group وجود داشته باشد.
$ chgrp cad prog1
فرمان فوق ، گروه فايل prog1 را به گروه cad تغيير مي دهد.
توجه:

تغيير مالكيت و گروه يك فايل را مي توانيد با فرمان ls – ۱ ‌ مشاهده كنيد.
مديريت سيستم unix
با تغيير و تحول امكانات سيستم unix ، مديريت آن از اهميت ويژه اي برخوردار بوده و امري الزامي مي گردد. معناي اين سخن اين است كه ، افزايش و كاهش user ها، نصب نرم افزار جديد، كنترل فايلهاي مهم سيستم ، فرمت كردن فلاپي ديسكت ها ، گرفتن كپي پشتيبان از فايلها، همگي در چهار چوب مديريت سيستم يا system administration انجام ميگيرد.
يكي از user هاي سيستم unix معمولاً مدير سيستم است. وظيفه “ مدير سيستم “ است. وظيفه مدير سيستم “ عملياتي “ نگاهداشتن سيستم مي باشد تا ساير user ها سرويس بگيرند.

كارهاي مديريتي روي يك سيستم چند كاره ( mutilask ) بسيار پيچيده تر از سيستم عامل تك كاره اي ( single task ) چون ms – dos است. نسخه هاي جديد سيستم عامل چند كاره unix امكانات جالبي براي ايجاد سهولت در مديريت سيستم ارائه مي دهند. اكثر سيستم هاي svr2 , svr3 حاوي يك “ user agent ” براي مديران مي باشند.
User agent يك امكان (‌ برنامه ) “ فهرست گرايي “ است كه اداره سيستم را براي مدير سيستم آسان مي كند. برنامه هاي جديد “ كمك مديريتي “ عموماً حاوي منوهاي متعددي بوده و بكارگيري آنها بسيار ساده مي باشد.
در اين فصل مباني مديريت سيستم و برنامه هاي “ كمك مديريتي “ گوناگون مورد بحث قرار خواهند گرفت.
ما فوق استفاده كننده ها ( super user )

مدير سيستم يكي از استفاده كنندگان ( user ) سيستم مي باشد كه مسئوليت درست كاركردن سيستم بعهده وي است.
در واقع ، يك سيستم multitask مدير بايد نقش يك پليس و آتش نشاني را بازي كند تا استفاده كنندگان بتوانند از سيستم سرويس بگيرند.
Login id مربوط به مدير سيستم “ root ” است.
Root id داراي كلمه رمز مخصوص خود بوده و اختيارات ويژه اي دارند. از جمله اين اختيارات عبارت است از:
دستيابي كامل به تمام فايل ها و منابع سيستم.

Root id همان super user است. Root id هميشه بايد داراي “ كلمه رمزي “ باشد كه فقط مدير سيستم و حداكثر قائم مقام وي از آن مطلع باشد.
وارد شدن به سيستم به نام root بايد با دقت صورت گيرد، چرا كه امكان خراب شدن فايل ها و برنامه هاي سيستم توسط اين user وجود دارد.
اكثر مديران سيستم unix علاوه بر root داراي يك user id معمولي هستند تا كارهاي عادي خود را با آن انجام دهند.
محيط super user

علامت پوند ( # ) علامت shell مخصوص مدير سيستم يا super user است. وقتي اين علامت براي شما ظاهر مي شود، يعني كنترل سيستم و منابع آن در دست شما است.
دايركتوري كاري مدير سيستم دايركتوري ( root or ) ” / ” است.
محيط كاري مدير سيستم در فايل /.profile تعريف شده است. مي توانيد اين فايل را بطور دلخواه تغيير مي دهيد. در سيستم هاي جديد unix ، فقط بر روي ماشين كنسول مي توان بعنوان root وارد سيستم شده و اين امكان در ساير ترمينال هاي موجود در شبكه امكان ندارد.

فرمان su
وقتي با يك login id معمولي وارد سيستم unix شديد، مي توانيد بدون خارج شدن از آن فرمان su را اجرا كنيد و بصورت مدير سيستم در آييد. وقتي كارهاي مديريتي تمام شد بايد از محيط مديريت سيستم خارج گرديد. ( فرمان exit‌)

معناي سخن فوق اين است كه علاوه بر root id مي توانند توسط فرمان su و ارائه كلمه رمز مربوطه، مديريت سيستم را بعهده بگيريد. فرمان زير را اجرا كنيد:
$ su
password:
#
پس از وارد كردن كلمه رمز صحيح علامت # ظاهر مي گردد. مطابق معول كلمات رمز بر روي مانيتور ظاهر نمي گردند. اگر كلمه رمز تايپ شده فقط باشد،‌ فرمان su عمل نمي كند:
$ su
password
sorry
$
در برخي از سيستم هاي unix فرمان su نيازمند نام مسير كامل است:
$/bin/su
تا زماني كه پروسه su در حال اجراست ، شما تمام اختيارات مديريتي را در اختيار داريد. براي خروج از فرمان su كافي است كه ctrl – d ‌ را فشار داده و يا فرمان exit را اجرا كنيد.
$/bin/su
password:
#exit
$
با اتمام اجراي فرمان su مجدداً به محيط قبلي خود بر مي گرديد.
محيط su
محيط فرمان su همانند محيط هاي عادي شما است مضاف بر اينكه اختيارات مديريت سيستم ( اختيارات root ) نيز به آن اضافه شده است. بدين معني كه path عادي شما فعال است، دايركتوري home نيز تغيير نكرده است. براي ورود به محيط root و خروج از محيط عادي فرمان su را با سوييچ خط تيره ( – ) بكار ببريد:
$/bin/su
password:
# echo shome
/user/slove
# exit
$/bin/su –
password:
# icho shome
/
# exit
$
در واقع وقتي آرگومان خط تيره ( – ) را با su بكار مي برند فرمان su سرويس هاي فايل profile را به root user ارائه مي دهد. از اين رو اگر مي خواهد محيط كامل ROOT را در اختيار گيريد، حتماً خط تيره (‌- ) را با فرمان SU بكار ببريد