تعاریف پایه و نکات کاربردی در لینوکس و یونیکس 
در ابتدای کاربا سیستمهای عاملهای یونیکس بیس مثل لینوکس نکات مهمی وجود دارد که دانستن آنها به هر کاربر در امر آشناشدن با این سیستم عامل و فهمیدن مفاهیم پایه آن کمک میکند .
در این مقاله تصمیم دارم تعدادی از این مفاهیم را بصورت خلاصه برشمرده و شما را با آنها آشنا نمایم :
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 کاربر یا گروه میتواند وارد دایرکتوری خاصی شوند ولی