تعاریف پایه و نکات کاربردی در لینوکس و یونیکس
در ابتدای کاربا سیستمهای عاملهای یونیکس بیس مثل لینوکس نکات مهمی وجود دارد که دانستن آنها به هر کاربر در امر آشناشدن با این سیستم عامل و فهمیدن مفاهیم پایه آن کمک میکند .
در این مقاله تصمیم دارم تعدادی از این مفاهیم را بصورت خلاصه برشمرده و شما را با آنها آشنا نمایم :
1- فرامین و دستورات در محیط سیستم عاملهای گنو / لینوکس به بزرگی و کوچکی حروف حساس یا باصطلاح case sesitive میباشند ، این بدان معناست که کلماتی چون Mozilla, MOZILLA, mOzilla , mozilla کاملا با هم متفاوت هستند و بعنوان چهار دستور جداگانه تلقی میشوند .و بصورت پیش فرض فقط دستور mozilla برای اجرای مرورگر اینترنت موزیلا در محیط این سیستم قابل اجراست و بقیه دستورات بدون نتیجه خواهد بود .
همچنین کلمه عبور ورودی شما به سیستم و کلمه رمز عبور نیز از این قائده پیروی میکنند .
2- نام فایلها در لینوکس میتواند حداکثر شامل 256 کاراکتر باشد که این کاراکترها کلیه حروف و اعداد و ( - و _ و .
) و حتی تعدادی کاراکترهای غیر مصطلح دیگر باشد .
3- فایلهائی که نام آنها با دات یا ( .
) آغاز میشود را نمیتوان با دستور ls یاdir مشاهده و لیست نمود .
چرا که سیستم تصور میکند این فایلها دارای خصوصیت پنهان بوده و باید حتما از دستور ls –a برای مشاهده همه فایلهای موجود در مسیر جاری استفاده کرد .
(a=all)
4- کاراکتر / در لینوکس مشابه همتای خود درداس یعنی \ بوده و به معنای ریشه تمام دایرکتوریهای موجود در سیستم فایل لینوکس است .
برای مثال برای رفتن به یکی از دایرکتوریهای سیستم از دستور cd /usr/doc استفاده میشود .
5- در لینوکس همه دایرکتوریها در زیر شاخه یک دایرکتوری اصلی بنام ریشه یا root قرار دارند و هیچگونه درایوی مثل داس یا ویندوز (c,d,e,f,…) وجود ندارد .
این بدان معناست که حتی درایوهای فیزیکی مثل هارد دیسکهای متعدد و یا حتی درایوهای شبکه پس از اتصال به سیستم فایل لینوکس در زیر مجموعه دایرکتوری ریشه root قرار میگیرند .
6- در فایلهای پیکربندی سیستمی لینوکس کلیه خطوط دستوری که با کاراکتر # شروع میشوند صرفا حاوی توضیحاتی برای راهنمائی کاربران میباشند و در هنگام اجرای فایل پیکربندی نادیده گرفته خواهند شد .
7- لینوکس بصورت ذاتی یک سیستم چند کاربره میباشد و کلیه تنظیمات سیستمی و فایلهای متعلق به هر کاربر در یک دایرکتوری اختصاصی وی در شاخه /home/ قرار میگیرد .
تنظیمات کاربری و کلمه شناسائی و سایر تنظیمات اختصاصی اعمال شده در سیستم توسط هر کاربر در دایرکتوری home مخصوص وی و در فایلهائی قرار میگیرد که همگی با نقطه یا .
آغاز میگردند .
8- فایلهای تنظیمات عمومی سیستم در دایرکتوری /etc قرار دارند .
9- در لینوکس همچون سایر سیستمهای عامل چند کاربره همه دایرکتوریها و حتی تک تک فایلها حاوی اطلاعات مربوط به خصوصیات و سطح دسترسی قابل تعریف permissions میباشند .
10- دستورات تکمیلی هر فرمان اجرا شده در خط فرمان متنی با کاراکتر - و وقتی فرمان کمکی حاوی بیش از یک کاراکتر باشد با - - آغاز میشوند.
این مورد را میتوان با برخی سوئیچها کمکی فرمان داس / مقایسه کرد .
11- هنگامی که بخواهید یک فرمان در پس زمینه سیستم اجرا شود باید پس از تایپ دستور یا فرمان مربوطه کاراکتر & را قرا دهید .
11- هنگامی که بخواهید یک فرمان در پس زمینه سیستم اجرا شود باید پس از تایپ دستور یا فرمان مربوطه کاراکتر & را قرا دهید .
معرفی انواع سیستم فایل در لینوکس و یونیکس و ویندوز سیستم فایل هر کامپیوتر، امکان ذخیره سازی فایلها و اطلاعات را روی آن فراهم میسازد.
هنگامی که از داخل برنامه واژه پرداز خود سندی را ذخیره میکنید، این سیستم فایل است که تعیین میکند سند چگونه و کجا ذخیره شود.
ابزارهای ذخیره سازی مانند فلاپی دیسکها، دیسکهای سخت، درایوهای CD-ROM، درایوهای Zip و...
تا قبل از اینکه سیستمعامل سیستم فایل را روی آنها تشکیل دهد، قابل استفاده نیستند.
سیستم فایلهای گوناگونی برای سیستمعاملهای مختلف از جمله ویندوز و سیستم عاملهای مبتنی بر یونیکس و لینوکس ارائه شدهاند که در مورد ویندوز این سیستم فایلها عبارتند از : انواع سیستمهای فایل در ویندوز ۱- FAT16 : در سیستمعامل داس استفاده میشد.
۲- FAT32 : از ویندوز ۹۵ تا me استفاده میشد.
۳- NTFS 4.0 : در سیستمهای nt 4.0 استفاده میشد.
۴- NTFS های جدید : از ویندوز ۲۰۰۰ به بعد استفاده میشود.
انواع سیستمهای فایل در یونیکس و لینوکس اما بحث اصلی ما درمورد سیستم فایلهای مبتنی برلینوکس است که برخی از آنها عبارتند از ext2، ext3، xfs، reiserfs و غیره.
این سیستم فایلها در جزئیات فنی دارای تفاوتهایی با هم هستند ولی از نظر ساختاری که ایجاد میکنند مشابه بوده و تفاوت چندانی باهم ندارند.
در این مقاله ما وارد جزئیات فنی هر نوع از سیستم فایلها نشده و تنها ساختار آنها را بررسی خواهیم کرد.
سیستم فایل یا درخت؟
سیستم فایل سیستمعاملهای مبتنی بر یونیکس و لینوکس بصورت یک درخت وارونه پیاده سازی شده است.
در یونیکس و لینوکس دیگر شما چیزی به نام درایوهای A، C و ...
ندارید.
تمام ابزارها و سیستم فایلها شاخههایی از این درخت وارونه هستند.
مرکز این درخت ریشه یا root نام دارد که بالاترین سطح سیستم فایل را تشکیل میدهد.
زیر ریشه، پوشههایی قرار دارند که سایر قسمتهای سیستم فایل را تشکیل میدهند .
سیستم فایل از تعداد زیادی پوشه تشکیل شدهاست که این پوشهها تقریبا در تمامی سیستمعاملهای مبتنی بر یونیکس و لینوکس مشترک هستند.
اکنون به تشریح تک تک این شاخهها پرداخته و در میان آن توضیحات اضافه را به شما ارائه خواهم کرد.
پارتیشنها در سیستم فایل سیستمعاملهای مبتنی بر لینوکس و یونیکس، دیسکهای سخت میتوانند پارتیشنهای متعددی داشته باشند.
در این صورت هر پارتیشن دارای یک نقطه اتصال یا mount point میباشد که در آن نقطه به درخت سیستم فایل متصل میشود.
مثلا میتوانید اطلاعات کاربران سیستم را در یک پارتیشن جداگانه ذخیره نموده و نقطه اتصال آنرا home تعیین کنید که محل قرارگیری اطلاعات کاربران است و به همین ترتیب.
بخشهای درخت سیستم فایل اکنون به بررسی تک تک شاخههای سیستم فایل میپردازیم.
توجه داشته باشید که دسترسی به اکثر این شاخهها فقط توسط کاربر ریشه امکان پذیر است.
-شاخه bin: در این شاخه، دستورات سیستمعامل که برای تمام کاربران قابل دستیابی هستند و برخی دستورات مدیریتی سیستم قرار میگیرند.
-شاخه boot: این شاخه که میتواند در یک پارتیشن جداگانه بوده و به پوشه boot متصل شده باشد، حاوی برنامه راهنداز بوت سیستم عامل میباشد.
مانند Grub و Lilo.
-شاخه dev: محل قرارگیری نقطه دسترسیهای ابزارهای سخت افزاری است.
مثلا تمام پورتها، پارتیشنها و...
در اینجا دارای یک فایل هستند.
برای مثال فایل dev/fd0 نشاندهنده فلاپی درایو سیستم است و به همین ترتیب.
بسیاری از برنامههای کاربردی از این فایلهای دسترسی برای خواندن و نوشتن دادهها بر روی ابزار مورد نظرشان استفاده میکنند.
مثلا یک برنامه کاربردی فایل dev/fd0 را باز کرده و در آن مینویسد.
در حقیقت اطلاعات روی درایو فلاپی و دیسکی که در آن قرار دارد، نوشته خواهد شد.
-شاخه etc: در این شاخه فایلهای پیکربندی برنامههای سرویس دهنده و برخی فایلهای سیستمی دیگر قرار میگیرند.
مثلا فایل پیکربندی سرویس دهنده وب آپاچی در سیستمهای دبیان در etc/apache/http.conf قرار دارد و به همین ترتیب.
-شاخه home: در این شاخه دایرکتوریهای خانگی کاربران سیستم و اطلاعات آنها قرار میگیرد.
بهتر است این شاخه در یک پارتیشن جداگانه قرار گرفته و متصل شود.
این کار حفاظت از دادههای کاربران را بالاتر خواهد برد.
ضمنا در صورت نیاز به فرمت و نصب مجدد سیستم، اطلاعات کاربران دست نخورده باقی مانده و پس از نصب مجدد، کلیه تنظیمات شخصی و اطلاعات آنها بدون تغییر باقی خواهند ماند.
-شاخه lib: این شاخه همانطور که از نام آن پیداست، محل قرار گیری فایلهای کتابخانه برنامهها است.
این کتابخانهها توسط برنامههای کاربردی و ابزارهای برنامه نویسی بکار گرفته میشوند.
-شاخه mnt: این شاخه معمولا دارای زیرشاخههایی مانند floppy و cdrom بوده و محل اتصال سنتی درایوهای فلاپی و CD-ROM میباشد.
همچنین پارتیشنها دیگر دیسک سخت را نیز میتوانید در این شاخه متصل نمایید.
البته اجباری به این کار وجود ندارد.
مثلا در سیستمهای مبتنی بر دبیان، درایوهای فلاپی و CDROM در شاخههای floppy و cdrom که در زیر ریشه قرار دارند، متصل میشوند.
اتصال و برداشتن اتصال پارتیشنها و درایوها با استفاده از دستور mount صورت میگیرد.
اشتراکات شبکه را نیز میتوانید در این شاخه متصل نمایید.
-شاخه proc: این شاخه یک سیستم فایل مجازی است که برخی اطلاعات مربوط به سیستم و هسته از آن قابل دستیابی میباشد.
مثلا فایل version در این شاخه حاوی اطلاعات هسته سیستم عامل مانند نسخه آن و ...
میباشد.
-شاخه sbin: دستورات و برنامههای مدیریتی سیستم در این شاخه قرار میگیرند که مخصوص کاربر root است.
-شاخه tmp: محل قرارگیری برخی فایلهای موقتی برنامههای کاربردی است.
-شاخه usr: بسیاری از برنامههای کاربردی در این شاخه نصب میشوند.
مثلا Xwindow در این شاخه قرار دارد.
همچنین برخی دستورات و دستورات مدیریتی نیز در مسیرهای usr/bin و usr/sbin قرار میگیرند.
-شاخه var: این شاخه که معمولا در کامپیوترهای سرویس دهنده در یک پارتیشن جداگانه قرار میگیرد، مخصوص برنامههای سرویس دهندهای مانند وب و FTP و بانکهای اطلاعاتی است.
مثلا فایلهای مربوط به یک وب سایت میتوانند در var/www قرار گیرند.
به دلیل اینکه در برخی از حملات DOS دیسک سخت سیستم با فایلهای آشغال پر میشود، این شاخه را در یک پارتیشن جداگانه قرار میدهند که در صورت قرارگیری تحت حمله و پرشدن احتمالی دیسک سخت، کل سیستم عامل دچار وقفه نگردد و آسیب به همان قسمت محدود شود.
تمامی شاخههایی که در بالا توضیح داده شد، میتوانند در پارتیشنهای جداگانه قرار داده شوند.
ولی ضرورتی ندارد.
پارتیشن swap هنگام نصب لینوکس، پارتیشنی به نام swap میسازید.
کاربرد این پارتیشن چیست؟
این پارتیشن که تحت ساختار سیستم فایل جایی متصل نمیشود، محل قرارگیری swapping file لینوکس که همان حافظه مجازی روی دیسک سخت است، میباشد.
بهتر است حجم آنرا برابر یا ۲ برابر حافظه سیستم خود تعیین نمایید.
اصول اولیه سطوح دسترسی فایل در یونیکس و لینوکس درمقایسه با سیستم عامل ویندوز و سایر سیستمهای عامل دیگر ، سیستمهای یونیکس و خانواده گنو/لینوکس در طراحی قوانین دسترسی به فایل از شکلی مستحکم تر و کارا تر بهره جسته اند و در این مقاله سعی میشود تا بطور خلاصه به بیان تفاوتها و نقاط قوت آن پرداخته شود .
اولین و برجسته ترین تفاوت در اینجاست که سیستمهای مبتنی بر یونیکس به معنای کاملا واقعی سیستمهائی چند کاربره هستند و برای هرفایل به تنهائی یا یک دایرکتوری میتوان سطوح دسترسی کاربران و گروه های کاربری تعریف کرد و هر کاربر بصورت پیش فرض دارای یک محدوده امن اطلاعاتی از فایلهای شخصی خانگی است.
چیزی که در اینجا در باره کاربران و گروه های کاربری لازم به ذکر است این است که هر کاربر در سیستم یونیکس یک دایرکتوری شخصی به نام home خواهد داشت که کلیه اختیارات دسترسی فایل در آن برای او مجاز بوده و میتواند در آن به ایجاد و حذف فایل یا عملیات دیگر بپردازد و هیچیک از کاربران یا گروههای دیگر بجز کاربر ریشه root در حالت عادی و بدون اجازه او نخواهند توانست به اطلاعات او دسترسی یابند .(نکته مهم امنیتی) در سیستمهای مبتنی بر یونیکس مثل لینوکس هر کاربری که مالک یا ایجادکننده یک فایل یا دایرکتوری باشد خواهد توانست با تعین سطوح دسترسی فایل یا دایرکتوری مربوطه برای دیگر کاربران یا گروههای کاربری آنان را از امکان خواندن و ایجاد تغییر و یا اجرای فایل اجرائی محروم یا بهره مند سازد .
بدیهی ایست که مجوزهای تعریف شده برای یک گروه کاربری بر روی تمام اعضای آن گروه اعمال شده و هر کاربر عضو آن گروه از تمام مزایا یا محدودیتهای موصوف بهره مند خواهد شد .
بطور کلی سه سطح دسترسی برای هر فایل یا دایرکتوری تعریف میشود که عبارتست از : 1 - Read permission (r) یا مجوز خواندن : مجوز خواندن محتوای یک فایل را به یک کاربر میدهد و برای دایرکتوریها امکان لیست کردن محتویات داخل دایرکتوری را برای کاربر فراهم میسازد.
2 - Write permission (w) یا مجوز ایجاد تغییرات : امکان ایجاد تغییرات در محتوای فایلها را به کاربر اهدا میکند .
برای دایرکتوریها این گرینه امکان ایجاد فایل جدید در دایرکتوری یا حذف فایلهای موجود در آن را برای کاربر مهیا میسازد حتی اگر این کاربر یا گروه کاربری مالک یا ایجاد کننده اصلی فایل یا دایرکتوری نباشد.
3 - eXecute permission (x) یا مجوز اجرا : این مجوز در مورد فایلهای اجرائی امکان اجرای فایل را به یک کاربر میدهد و در مورد یک دایرکتوری این گزینه امکان ورود به داخل دایرکتوری را به کاربر یا گروه خاص میدهد .
توجه داشته باشید که این گزینه را با گزینه Read اشتباه نگیرید ، چون صرفا با داشتن مجوز executeو بدون داشتن مجوز read کاربر یا گروه میتواند وارد دایرکتوری خاصی شوند ولی امکان خواندن محتویات داخلی آن دایرکتوری بهیچ عنوان برایشان فراهم نخواهد بود .
همیشه ترکیبی از سطوح سه گانه مجوزهای فوق الذکر قابل استفاده است برای مثال شما در صورت مالکیت یک فایل میتوانید دسترسی به آنرا صرفا برای شخص خود تعریف و سایر کاربران و گروهها را ازدیدن یا اجرا و ایجاد تغییر در آن محدود نمائید.
نکته : یک کاربر حتی میتواند یک فایل یا دایرکتوری را که مالک و ایجاد کننده اصلی آن خود اوست برای کاربران دیگر قابل دسترسی و برای خودش غیر قابل دسترسی تعریف کند که به این صورت حتی خودش از کلیه مزایای فایل مربوطه محروم خواهد شد و در آینده هم قادر نخواهد بود تا با ایجاد تغییر مجددا به آن فایل یا دایرکتوری دسترسی پیدا کند .
در اینجاست که مدیر سیستم یا کاربر ریشه root تنها کسی خواهد بود که بصورت پیش گزیده با داشتن کلیه مجوزهای لازم شامل خواندن و نوشتن و اجرا امکان تغییر مالکیت و سطوح دسترسی کاربران و گروهها را داشته و میتواند تغییرات لازم را در سیستم اعمال نماید .
ذکر این نکته بسیار مهم خالی از لطف نیست که حفظ و حراست از اطلاعات حیاتی سیستم مثل کلمه عبور کاربر ریشه یکی از مهمترین جنبه های امنیت سیستمهای مبتنی بر یونیکس میباشد .
بیائید تا باذکر یک مثال در مورد یک فایل و یک دایرکتوری به بررسی موضوع بپردازیم : در این مثال فرض شده که در مسیر جاری یک فایل به نام a_file و یک دایرکتوری به نام a_directory وجود دارد و با اجرای فرمان ls –l در خط فرمان این اطلاعات بدست آمده است : $ ls -l total 1 -rw-r----- 1 mehrdad users 0 Jul 8 a_file drwxr-xr-- 2 mohsen users 1024 Jul 8 a_directory/ نتایج فرمان ls –l را ازچپ به راست بررسی میکنیم : ستون اول فرمان ls –l : 1 - ده کاراکتر اول نشان دهنده نوع فایل و سطوح دسترسی آن است و اولین کاراکتر که در مورد سطر اول ( - ) و در مورد سطر دوم ( d ) میباشد نشان میدهد که مورد موجود در سطر اول یک فایل معمولی و مورد موجود در سطر دوم یک دایرکتوری است .
البته انواع دیگری از فایل وجود دارد که با کاراکتری غیر از ( - ) مشخص میگردند و برای مطالعه بیشتر میتوانید به رفرانسهای موجود مراجعه کنید .
نه کاراکتر بعدی نشان دهنده سطوح دسترسی تعریف شده میباشند و به ترتیب هر سه کاراکتر از چپ به راست شامل سطوح دسترسی متعلق به مالک owner و سطوح دسترسی گروهها groups و سطوح دسترسی برای سایرین others خواهد بود .
بعنوان نمونه سه کاراکتر مربوط به owner و groups و others در مورد یک فایل موجود در مثال بالابصورت زیر تعریف شده است : برای مالک r w -) = owner) یعنی اینکه امکان خواندن r و نوشتن w و اجراکردن x وجود دارد .
برای گروهها groups = ( r - - ) یعنی اینکه امکان خواندن فایل برای کاربران عضو کلیه گروههای کاربری موجود وجود دارد ولی هیچ کابری در گروههای موجود نمیتواند فایل را تغییر داده (یا حذف کند) و یا در صورت اجرائی بودن فایل آنرا اجرا نماید .
برای دیگران others = ( - - - ) سه کاراکتر dash به این معناست که سایر کاربران یعنی آنهائی که در هیچ گروه کاربری موجود تعریف نشده اند هیچیک از امکانات دسترسی موجود را نخواهند داشت .
(نکته امنیتی مهم) ستون دوم در فرمان ls -l : شامل یک شماره لینک میباشد و از این شماره برای تشخیص لینک به یک فایل موجود در چند نقطه سیستم استفاده میشود .
در مورد دایرکتوری ها این شماره معانی زیاد دیگری دارد که در اینجا مجال پرداختن به همه آنها نخواهد بود .
ستون سوم در فرمان ls -l : این ستون نمایش دهنده نام مالک فایل و نام گروه مالک آن میباشد .
ستون چهارم در فرمان ls -l : این ستون نمایش دهنده اندازه و حجم فایل یا دایرکتوری و تاریخ و ساعت آخرین تغییرات اعمال شده بر آن و در نهایت ستون پنجم نتایج فرمان ls -l شامل نام فایل یا دایرکتوری میباشد .
نکته : بدیهی است که (rwx ) به معنای تعریف حداکثر سطح دسترسی برای کاربر یا گروههای کاربری است و ( - - - ) به معنای عدم امکان دسترسی به فایل یا دایرکتوری میباشد .
چند نکته مهم در مورد یونیکس و لینوکس : اسامی فایلها در یونیکس و لینوکس مینوانند شامل هر نوع کاراتری حتی کاراکترهای ascii بجز صفر 0 و / باشند.
همانطوریکه میدانید در سیستمهای مبتنی بر یونیکس بر خلاف ویندوز هر فایل حتما نیاز به داشتن پسوند سه حرفی مشخص کننده نوع فایل ندارد و قابلیتها و نوع فایلهای بدون پسوند یا extension کاملا وابسته به محتویات فایل است و نه به پسوند آن .
بدیهی است که کاراکتر ( .
) جداکننده نام فایل و پسوند آن در ویندوز در محیط یونیکس و گنو/لینوکس یک کاراکتر از کاراکترهای تشکیل دهنده نام فایل محسوب میگردد .
و نکته ظریف اینجاست که در سیستمهای مبتنی بر یونیکس کلیه فایلها و دایرکتوریهائی که با کاراکتر نقطه یا دات ( .
) آغاز گردند فایلها یا دایرکتوریهای پنهان hidden محسوب میگردند .
توجه داشته باشید که چون برخی برنامه های گرافیکی مثلا برنامه openoffice کماکان از پسوند نام فایل برای ذخیره سازی و تشخیص نوع فایل بهره میبرند گاهی لازم است پسوند فایلهای ایجاد شده توسط این برنامه های کاربردی حفظ گردد تا برنامه موصوف در شناسائی نوع فایل دچار مشکل نشود .
مهمترین ابزار مدیریتی لینوکس برنامه ای به نام webmin : تمامی کاربران لینوکس و کسانی که با این سیستم عامل کار کرده و از ره آورد آن و قابلیتهای چشمگیر موجود لذت برده اند در صورتی که تمایل به کار بابرنامه های گرافیکی داشته و بخواهند تنظیمات سیستم خود را از طرق ساده تر به انجام برسانند اغلب به توزیعهایی از لینوکس مثل suse و mandrake گرایش پیدا میکنند تا به مدد برنامه های کمکی گرافیکی مدیریت سیستمی مثل yast و Mcc موجود دراین توزیعها به امور جاری و مدیریتی و تنظیمات اساسی سیستم خود سرعت بخشند .
در این بین برنامه کمکی webmin که بصورت یک پروژه مستقل برای اغلب توزیعهای لینوکس و یونیکس و os/2 .
...
طراحی و پیاده سازی گردیده و امکان نصب برروی توزیعهای مختلف لینوکس را به راحتی داراست یک محیط کامل و ابزار مدیریتی کافی در دستان مدیران سیستم قرار میدهد تا به سهولت و از طریق یک رابط گرافیکی وب مانند web base هرکاری را اراده دارند به ساده ترین شکل ممکن ودر اسرع وقت با دقت فراوان به انجام برسانند .
ورود به محیط این برنامه پس از نصب آن برروی سیستم از طزیق یک مرورگر وب مثل mozilla یا galeon و با وارد کردن آدرس url و پورت اتصال به webmin بصورت زیر صورت میگیرد : https://localhost:10000 در این مرحله برنامه webmin کلمه عبور و رمزکاربر ریشه را سوال میکند تا اجازه دسترسی کاربر را به منابع سیستمی صادر نماید .
از جمله قابلیتهای این برنامه سودمند ایجاد رابط گرافیکی با امکان مدیریت کامل بر تنظیمات سیستمی لینوکس در همه قسمتهای نصب شده و بعنوان مثال بسته های نرم افزاری زیر میباشد : برنامه های سرور لینوکس : CVS Server Apache Webserver BIND DNS Server Calamaris Log Reports DHCP Server Jabber IM Server Majordomo List Manager MySQL Database Server Netatalk Apple File/Print Sharing OpenLDAP server OpenSLP Server Postfix Configuration PostgreSQL Database Server ProFTPD Server Samba Windows File Sharing SSH Server Squid Proxy Server WU-FTP Server Wap gateway برنامه های سودمند تنظیم سیستمی لینوکس System : Backup System Bootup and Shutdown CD Backup Change Passwords Disk Quotas Disk and Network Filesystems Filesystem Backup LDAP Users and Groups MON Service Monitor Running Processes SysV Init Configuration Scheduled Commands Software Packages Security Sentries Scheduled Cron Jobs isdn4linux control Users and Groups System Logs System Documentation برنامه های سودمند تنظیم ابزارهای شبکه لینوکس Networking: Network Configuration Linux Firewall ADSL Client Extended Internet Services FreeS/WAN VPN IPsec VPN Configuration NFS Exports Client and Server Network Utilities PPP Dialin Server PPP Dialup Client PPTP VPN Client PPTP VPN Server SSL Tunnels Shorewall Firewall برنامه های سودمند مدیریت سخت افزار در لینوکس Hardware : CD Burner GRUB Boot Loader Linux Bootup Configuration LILO Linux RAID Logical Volume Management Partitions on Local Disks Printer Administration System Time Voicemail Server برنامه های سودمند مدیریت بر ابزارهای کلاستر closter سازی در لینوکس : Cluster Software Packages Cluster Users and Groups Cluster Webmin Servers Configuration Engine Heartbeat Monitor برنامه های سودمند مدیریت بر سایر قسمتهای لینوکس مثل : Batch Apache Host Addition Batch DNS Domain Addition Custom Commands Download File Manager File Upload Front Page 2000 Admin Gehrigal Theme Configurator LDAP Browser Log Viewer System and Server Status VNC Client rinetd configuration / administration SSH/Telnet Login SSH Login همانطوریکه در این قسمت بصورت خلاصه شده ملاحظه میکنید در این برنامه همه جنبه های مهم و اساسی در امر مدیریت یک سیستم عامل مبتنی بر لینوکس در نظر گرفته شده و استفاده از آن برای هر مدیر شبکه یا حتی یک کاربر ساده لینوکس مزایای بسیاری را در پی خواهد داشت .
برنامه webmin به همراه اغلب توزیعهای لینوکس عرضه میشود و آخرین نسخه مناسب با نوع توزیع لینوکس مورد استفاده را میتوان از آدرس سایت تخصصی آن یعنی www.webmin.com بصورت رایگان دریافت و بر روی سیستم نصب کرد .
مقایسه سرورهای لینوکس و ویندوز در حال حاضردو انتخاب اصلی برای خدمات میزبانی وب یا hosting در ایران استفاده از سرورهای میزبان لینوکس یا ویندوز است.
مسلما وقتی قرار است بین ویندوز و لینوکس یکی را انتخاب کنیم، حتما لینوکس و یونیکس گزینه مناسبتر خواهد بود چرا که لینوکس در طی این سالها نشان داده که به دلائل امنیتی فراوان بهترین انتخاب برای سرورهاست.
در صورت استفاده از زبانهای برنامه نویسی وب وابسته به Server Side Scripting مثل php, coldfusion, jsp, cgi (c, perl, python, tcl, ...), asp, asp.net اولین مطلب مهم این است که سرورهای لینوکس asp و asp.net را که جزو فناوریهای مایکروسافت هستند پشتیبانی نمیکنند.
البته برای پشتیبانی از asp در لینوکس اقداماتی انجام شده ولی فعلا بیشتر در حد پروژه های در دست اجرا میباشد.
پس اگر میخواهید سایتی با این دو تکنولوژی راهاندازی کنید، اصولا بی معنی است که بخواهید لینوکس و ویندوز را با هم مقایسه کنید چون حتما باید وب سرور شما ویندوز باشد.
در مورد بقیه موارد گفته شده می توان گفت که هر دو سرور لینوکس و ویندوز از پشتیبانی خوبی در این زمینه برخوردارند .
اگر بخواهیم با یک مقایسه کلی بگوئیم که از بین ویندوز و لینوکس کدامیک کارائیperformance بهتری برای هر یک این زبانها دارند، باید اذعان کرد که لینوکس در این زمینه بهتر عمل میکند.
نکته مهم دیگر این است که اگر cgi را بهصورت کامپایل شده استفاده میکنید، اصولا نمیتوانید از cgi یی که برای لینوکس کمپایل شده در ویندوز استفاده کنید و یا بلعکس.
ولی در سایر موارد میتوان از یک کد هم در سرورهای ویندوز و هم لینوکس استفاده نمود.
در یک جمع بندی کلی باید بگویم که اگر asp , asp.net استفاده میکنید، فقط میتوانید سرور ویندوز را انتخاب کنید،ولی در سایر موارد لینوکس گزینه بهتر خواهد بود .
در خصوص پایگاههای داده و بانکهای اطلاعاتی بایدگفت که بجز بانکهای اطلاعاتی access که خیلی ساده و کم اهمیت هستند و فقط مختص سیستم عامل ویندوز میباشند مابقی تکنولوژیهای رایج در ایجاد و مدیریت پایگاههای داده معمول شاملSQL server مختص سرورهای ویندوز، و MySQL مخصوص سرورهای لینوکس میباشند.
بهترین و موفقترین پایگاه داده بدون شک محصولات شرکت Oracle است که به دلیل قیمت بالا فقط در سایتها و سرورهایی استفاده میشود که نیاز به دیتابیس هائی با کارائی و حجم بسیار بالا وجود داردو در مورد وب سایتهای معمولی یا متوسط بدلیل گرانی بیش از حد قابل استفاده نخواهد بود .
البته ناگفته پیداست که SQL Server فقط در سرورهای ویندوز قابل استفاده میباشد و بقیه database ها معمولا در هر دو نوع سرور لینوکس و ویندوز قابل استفاده هستند .
مباحث پیشرفته در خصوص کارائی و مقایسه MySQL با SQL-Server نیاز به کار کارشناسی زیادی دارد ولی در مجموع در هر دو نوع سرور لینوکس و ویندوز بانکهای اطلاعاتی مورد بررسی دارای کارائی مشابهی میباشند .
نکته مهمی که همیشه ذهن انسان را بخود مشغول میکند این است که کدام یک از ایندو سرور امنیت بیشتری دارند .
در این زمینه با مراجعه به آمارهای رسمی منتشر شده در سایتهای امنیتی مهم برتری کلی مسلما با لینوکس خواهد بود.
یکی از دلایل ضعف ویندوز یکپارچهتر بودن این سیستمعامل نسبت به لینوکس و open source نبودن این سیستم عامل میباشد.
و یک نکته بسیار ظریف در این زمینه این است که وقتی یک مشکل امنیتی یا به اصطلاح باگBUG در ویندوز کشف میشود معمولا کاربران و مدیران سرور باید مدتی منتظر بمانند تا service pack یا patch برای این ضعف امنیتی از طرف مایکروسافت ارائه شود (چون کارشناسان نمی توانند خودشان مشکل را حل کنند) و این موضوع یک محدوده زمانی مناسب برای هکرها بوجود می آورد تا ازنقطه ضعفهای کشف شده کمال استفاده را برده و یک سرور را هر طوریکه بخواهند مورد تاخت و تاز و هجوم خود قرار دهند .
ولی در سیستمعاملهای Open-Source مثل لینوکس در صورت داشتن دانش کافی با کمی تغییر در کد ها ی منبع سیستم عامل و کامپایل کردن مجدد آن معمولا میتوان مشکل را حل کرد .
اما دلیل اصلی ضعف امنیتی ویندوز این است که اصولا سرورهای ویندوز از نظر ضعف امنیتی بیشتر مورد توجه هکرها و نفوذگرهای شبکه قرار میگیرند و نتیجه این امر ایناست که گاهی نقطه ضعفها و حفرههایی در ویندوز پیدا میشود که حتی مدیران مایکروسافت را هم به تعجب وا میدارد .
و ما را برآن می دارد که فکر کنیم براستی برنامهنویسان مایکروسافت تا جه حد باهوشند و موقع کد نوشتن چقدر دقت میکنند !!!!!!
اصولا برای هر نسخه منتشر شده ویندوز معمولا حداقل یک باگ پیدا میشود که معمولا باآن میتوان به سیستم نفوذ کرد و به منابع آن دستیافت و این باعث شده که مایکروسافت هم گاهی یک سری از نسخههای ویندوز را به صورت رسمی از رده خارج کند (مثلا ویندوز nt 4.0 که نسخه قبل از ویندوز ۲۰۰۰ بوده و عملا دیگر برای آن service pack ارائه نمیشود و اصولا اگر سروری از نسخه ۴.۰ ویندوز ان تی NT4.0 استفاده کند قطعا به راحتی قابل نفوذ خواهد بود .
مشکلات امنیتی لینوکس معمولا از اسکریپتهائی ناشی میشود که به صورت پیشفرض توسط خیلی از سرورها نصب میشوند .
البته این مشکلات را میتوان براحتی و با disable کردن یا uninstall نمودن برنامه های غیر ضروری از روی سرور یا نصب آخرین ورژن برنامه ها حل نمود .
در حال حاضر برای داشتن سایت به نسبت امنتر در ایران، انتخاب قطعی لینوکس خواهد بود.
زیرا علاوه برامنیت مسئله قیمت خدمات هوستینگ بسیار حائز اهمیت است و گهگاه قیمت سرورهای لینوکس گاه بمیزان 100 درصد یا بیشتر، پایینتر از سرورهای ویندوز میباشد .
توصیه های مهم امنیتی در مورد یونیکس و لینوکس سیستم عامل، یکی از عناصر بسیار مهم و حیاتی در نحوه مدیریت منابع سخت افزاری و نرم افزاری است .
پرداختن به مقوله امنیت سیستم های عامل ، همواره از بحث های مهم در رابطه با ایمن سازی اطلاعات در یک سیستم کامپیوتری بوده که امروزه با گسترش اینترنت ، اهمیت آن مضاعف شده است .
بررسی و آنالیز امنیت در سیستم های عامل می بایست با ظرافت و در چارچوبی کاملا" علمی و با در نظر گرفتن تمامی واقعیت های موجود ، انجام تا امکان نگهداری و پشتیبانی سیستمها با در نظر گرفتن مجموعه تهدیدات موجود و آتی ، بسرعت و بسادگی میسر گردد .
اکثر حملات موفقیت آمیز در اینترنت ، بدلیل وجود نقاط آسیب پذیر در تعدادی اندک از سرویس های سیستم های عامل متداول است .
مهاجمان ، با فرصت طلبی خاص خود از روش های متعددی بمنظور سوء استفاده از نقاط ضعف امنیتی شناخته شده ، استفاده نموده و در این راستا ابزارهای متنوع ، موثر و گسترده ای را بمنظور نیل به اهداف خود ، بخدمت می گیرند .
مهاجمان ، در این رهگذر متمرکز بر سازمان ها و موسساتی می گردند که هنوز مسائل موجود امنیتی ( حفره ها و نقاط آسیب پذیر ) خود را برطرف نکرده و بدون هیچگونه تبعیضی آنان را بعنوان هدف ، انتخاب می نمایند پس با شناسائی و آنالیز اینگونه نقاط آسیب پذیر توسط کارشناسان امنیت اطلاعات ، سازمان ها و موسسات قادر به استفاده از مستندات علمی تدوین شده بمنظور برخورد منطقی با مشکلات موجود و ایجاد یک دیوار حفاظتی مناسب می باشند.
لینوکس و یونیکس ، از سیستم های عامل رایج در جهان بوده که امروزه در سطح بسیار وسیعی استفاده می گردد .
تا کنون حملات متعددی توسط مهاجمین متوجه سیستم هائی بوده است که از یونیکس ( نسخه های متفاوت ) بعنوان سیستم عامل استفاده می نمایند .
با توجه به حملات متنوع و گسترده انجام شده ، بایستی نحوه مقابله با این حملات و تهدیدات شناخته شده و راههای نفوذ سریعا ترمیم گردد و کاملا مسدود گردد .
عوامل متعددی در بروز اینگونه حملات نقش دارد: عدم آگاهی لازم مدیران سیستم در خصوص ارتقاء امنیتی سیستم هائی که بر روی آنان نرم افزارهای مدیریت اطلاعات شبکه نصب یا بصورت غیر ضروری اجراء می گردد و پیکربندی نامناسب برنامه ها ، نمونه هائی از عوامل فوق بوده و می تواند زمینه یک تهاجم از نوع DoS ، یک Buffer Overflow را فراهم سازد .
بمنظور حفاظت سیستم و ترمیم سریعتر نقاط آسیب پذیر موارد زیر پیشنهاد می گردد : همیشه آخرین نسخه نرم افزارها ارائه شده را دریافت و آن را بر روی سیستم نصب نمائید.
بمنظور بهنگام سازی سیستم بایستی از تمامی Patch های ارائه شده توسط تولید کنندگان استفاده و در صورت امکان آن نرم افزار را به آخرین نسخه موجود ارتقاء دهید .
برای دریافت اطلاعات تکمیلی از مقالات ارائه شده درسایت امنیتی CERT و بخش UNIX Security Checklist ، استفاده نمائید .
فایروال موجود برروی سیستم را دقیقا نصب و با توجه به نیازهای امنیتی خود در سطح مناسب پیکربندی نمائید .