هنگامی که کار شما با سیستم فایلی که موقتا آنرا متصل نمودهاید تمام شد، و یا برای خارج کردن موقت یک سیستم فایل در حال اتصال دائمی، میتوانید از دستور umount برای خارج نمودن آن از حالت اتصال استفاده نمایید. این دستور، سیستم فایل را از نقطه اتصال آن جدا مینماید. برای استفاده از این دستور، میتوانید نام نقطه اتصال و یا نام ابزار را وارد نمایید. برای مثال:
$ umount /mnt/floppy
این دستور، دستگاه فلاپی را (که به طور معمول fd0 است) از نقطه اتصال آن جدا میکند. این کار را به صورت زیر نیز میتوانید انجام دهید:
$ umount /dev/fd0
در صورتی که هنگام umount کردن یک فایل سیستم با پیغام Device is busy مواجه شدید، درخواست شما با شکست مواجه شده است. علت آن میتواند یک پروسه فعال بر روی فایلهای آن سیستم فایل و یا یک فایل باز باشد. با بستن این پروسه (مثلا برنامه مدیر فایل) میتوانید فایل سیستم را بدون اشکال umount نمایید
سیستم فایل لینوکس در یک ساختار درختی وارونه قرار گرفته است. این ساختار از ریشه (/) آغاز میشود که درون آن دایرکتوریها و زیردایرکتوریهای مختلفی قرار گرفته اند. بعنوان یک مدیر سیستم باید بررسی کنید که تمام دیسکهای شما در این ساختار برای کاربرانتان و یا خودتان موجود باشند. همچنین باید بدانید که در محلهای مورد نیاز فضای خالی کافی برای ذخیره دادهها وجود دارد یا خیر و در صورت اشکال، این اشکالات را برطرف نمایید.
سیستم فایل لینوکس کاملا متفاوت از سیستم فایلهای مورد استفاده در سیستم عامل ویندوز مایکروسافت است. بجای تخصیص یک نام درایو (مانند A، C و...) برای هر یک از دستگاهها مانند دیسک سخت، درایو CD-ROM و...، تمام این دستگاهها در دایرکتوریهای ویژهای متصل (mount) میشوند. شما باید بتوانید این نقاط اتصال را ایجاد نمایید. پس به دایرکتوریهایی که در آنها پارتیشنهای مختلف یک دیسک سخت یا درایوهای فلاپی و CD-ROM متصل میشوند، نقاط اتصال یا mount point گویند.
هر کاربر لینوکس اعم از یک کاربر رده متوسط و یا یک مدیر سیستم لینوکس در شرایطی حتما نیاز پیدا خواهد کرد که فایل سیستمهای مختلف را جهت مشاهده محتویات درایوها اعم از درایوهای موجود بر روی هاد دیسک یا درایوهای شبکه به سیستم لینوکس متصل یا به اصطلاح
mount نماید . البته اکثر توزیعهای لینوکس به صورت خودکار دستور mount -a (اتصال تمام فایل سیستمها) را در هربار بوت اجرا میکنند. بنابراین استفاده از این دستور فقط در شرایط خاصی نیاز میباشد.Mount کردن فایل سیستمها میتواند به منظورهای زیر صورت گیرد:
-نمایش دیسکها، پارتیشن ها و فایل سیستم های راه دور (شبکه) که در حال حاضر متصل هستند.
-اتصال موقت یک سیستم فایل
برای نمایش اینکه در حال حاضر چه پارتیشنهایی از دیسک سختتان به سیستم فایل متصل شد است، باید از دستور mount استفاده نمایید. به این منظور یک پنجره ترمینال باز کرده و دستور زیر را تایپ نمایید. خروجی دستور را در زیر آن مشاهده میکنید:
$ mount
/dev/hda3 on / type ext3 (rw,errors=remount-ro)
proc on /proc type proc (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/hda2 on /boot type ext3 (rw,errors=remount-ro)
/dev/hda5 on /home type ext3 (rw,errors=remount-ro)
/dev/hda8 on /Data type ext3 (rw,errors=remount-ro)
/dev/hda7 on /mnt/D type vfat (rw,gid=105,umask=002)
همانطوری که میبینید، proc و devpts نیز به عنوان سیستم فایل نشان داده شده اند. در حقیقت این ها نوع خاصی از سیستم فایل هستند که به هیچ پارتیشنی در سیستم مربوط نمیباشند ولی در دستور mount نمایش داده میشوند.
در مثال بالا، پارتیشنهای متصل عبارتند از dev/hda2، dev/hda3، dev/hda5، dev/hda8 و dev/hda7که فضای موجود در دایرکتوری های boot، /، home،Data و mnt/D را فراهم میکنند. به کلام دیگر، نقطه اتصال پارتیشن dev/hda2 دایرکتوری boot و به همین ترتیب است. در دایرکتوری boot اطلاعات لازم برای بوت شدن و مدیر بوت سیستم (گراب یا لیلو) قرار میگیرد. این اطلاعات شامل برنامه boot loader و فایلهای پیکربندی آن است. دایرکتوری home حاوی دادههای کاربران تعریف شده روی سیستم است. هر کاربر دارای یک دایرکتوری معمولا همنام با نام کاربری خود در دایرکتوری home است. / نیز بخش اصلی سیستم لینوکس است که اکثر دایرکتوریهای سیستمی و فایلهای سیستمی سیستم عامل در آن قرار میگیرند. در مثال بالا پس از کلمه type میتوانید نوع فرمت پارتیشن مورد نظر را ببینید. مثلا ext3 یا vfat.
قرار دادن بخش های مختلف سیستم فایل لینوکس روی پارتیشنهای مختلف میتواند محاسن زیادی داشته باشد. مثلا در صورتی که دایرکتوری مربوط به کاربران یعنی home را در یک پارتیشن جداگانه قرار دهید و آن پارتیشن پر شود، اختلالی در سیستم بوجود نخواهد آمد. ولی در صورتی که این دایرکتوری در کنار دایرکتوری ریشه در یک پارتیشن قرار گیرند، پر شدن آن منجر به پرشدن کل فضای دیسک سیستم شده و در کار کل سیستم اختلال ایجاد میکند. البته در سیستمهای خانگی معمولا این اتفاق کمتر میافتد و قرار دادن کل سیستم در پارتیشن ریشه به احتمال زیاد مشکلی ایجاد نخواهد کرد، ولی این مسئله در سیستمهایی که به نحوی عملیات سرویس دادن را انجام میدهند، بسیار حیاتی و مهم است.
تمام کاربران میتوانند از دستور
mount بدون هیچ گزینه و پارامتری استفاده نماید. همانطوری که قبلا نشان داده شد، هنگامی که از این دستور بدون هرگونه گزینه و پارامتری استفاده میکنید، فایل سیستمهایی که در حاضر به سیستم متصل هستند، نمایش داده میشوند.عمومی ترین وسایلی که بصورت دستی متصل میشوند، عبارتند از دیسکهای فلاپی و درایوهای CD-ROM. البته با توجه به نوع محیط گرافیکی و نوع توزیعی که استفاده میکنید، این دیسکها ممکن است هنگام کلیک بر روی آیکون آنها و یا وارد نمودن آنها به درایو به طور خودکار متصل شوند.
در صورتی که میخواهید یک سیستم فایل را بطور دستی متصل نمایید، اطلاعات موجود در فایل fstab میتواند به شما کمک کند. شما یک گزینه را مشخص می نمایید و باقیمانده اطلاعات لازم از این فایل دریافت میشود. بنابراین اطلاعات موجود در فایل fstab به شما کمک میکند تا فایل سیستمها را خیلی سریع متصل نمایید. مواردی که میتوانید آنها را بصورت سریع متصل نمایید عبارتند از:
-درایو CD-ROM: در صورتی که یک دیسک CD-ROM با فرمت استاندارد (ISO9660) در درایو قرار دارد، میتوانید آنرا با استفاده از دستور زیر متصل نمایید:
$ mount /mnt/cdrom
به طور پیش گزیده، درایو CD-ROM در دایرکتوری mnt/cdrom یا cdrom/ متصل میشود. اطلاعات مورد نیاز این دستور به طور خودکار از فایل fstab دریافت میشوند. برای نمایش محتویات دیسکی که اکنون متصل شده است، کافی است با استفاده از دستور cd وارد مسیر آن شده و سپس دستور ls را تایپ نمایید:
$ cd /mt/cdrom
$ ls
-دیسکهای فلاپی: برای دیسکهای فلاپی نیز میتوانید همانند بالا رفتار نمایید. دستور زیر باعت اتصال دیسکهای فلاپی خواهد شد:
$ mount /mnt/floppy
البته در صورتی که از لیبرانت یا دبیان استفاده میکنید، محل اتصال فلاپی floppy/ خواهد بود.
-پارتیشنهای ویندوز: برای پارتیشنهایی که در فایل fstab تعریف نمودهاید نیز میتوانید مانند بالا عمل کنید:
$ mount /windows
در هر سه مورد فوق، میتوانید از آدرس دستگاههای سخت افزاری درایوهای CD-ROM، پارتیشن دیسک سخت و فلاپی نیز استفاده نمایید. (dev/cdrom و dev/fd0 و dev/hda1) گزینههایی وجود دارد که میتوانید آنها را به همراه دستور mount به کار ببرید. این گزینهها عبارتند از:
- گزینه t auto- : در صورتی که هنگام متصل نمودن یک دیسک یا فلاپی، مطمئن نیستید که سیستم فایل آن چیست، میتوانید از این گزینه تعیین خودکار نوع سیستم فایل استفاده نمایید.
- گزینه r- : در صورتی که فقط نیاز به خواندن یک سیستم فایل دارید و نمی خواهید آنرا تغییر دهید، میتوانید آنرا بوسیله این گزینه بصورت فقط-خواندنی متصل نمایید.
- گزینه w- : این گزینه برعکس گزینه بالا بوده و فایل سیستم را بصورت خواندن/نوشتن متصل میکند.
برخی گزینه های دستور mount وجود دارند که فقط مخصوص یک سیستم فایل مشخص هستند. برای کسب اطلاعات در مورد این گزینهها کافی است از دستور man mount استفاده نمایید.
اتصال سیستم فایل
هنگامی که سیستم لینوکس شما بوت میشود، بیشتر پارتیشنهای مربوط به لینوکس به طور خودکار به سیستم فایل متصل میشوند. بنابراین در این بخش من سعی خواهم کرد بیشتر در مورد چگونگی اتصال ابزارها و پارتیشنهای دیگر صحبت کنم.
شما میتوانید پارتیشنهایی را که سایر سیستم عاملها مانند ویندوز اختصاص داده شده اند، در لینوکس متصل نموده و اطلاعات خود را در آنها ذخیره نموده یا از آنها بخوانید. همچنین میتوانید به سادگی دستگاههای فلاپی درایو و CD-ROM را به سیستم فایل خود متصل نمایید.
فایل سیستم های مورد پشتیبانی در لینوکس ردهت
برای مشاهده اینکه اکنون چه نوع سیستم فایلهای در کامپیوترتان در حال استفاده میباشند، از دستور cat مطابق مثال زیر استفاده نمایید :
$ cat /proc/filesystems
ext3
ext2
cramfs
nodev ramfs
msdos
vfat
iso9660
romfs
استفاده از fstab برای تعریف سیستم فایلهای قابل اتصال
دیسکهای سخت و سیستم فایلهای شبکهای که هر روز استفاده میکنید، به طور معمول طوری تعریف شده اند که در هر بار بوت سیستم فایلهای شما را متصل میکند. این تعریفها در فایل etc/fstab ذخیره میشوند که در زیر نمونه ای از این فایل نشان داده شده است:
LABEL=/ / ext3 defaults,errors=remount-ro 1 1
LABEL=/boot /boot ext3 defaults,errors=remount-ro 1 2
/dev/hda5 /home ext3 defaults,errors=remount-ro 0 2
/dev/hda8 /Data ext3 defaults,errors=remount-ro 0 2
/dev/hda6 none swap sw 0 0
proc /proc proc defaults 0 0
/dev/fd0 /floppy vfat,auto defaults,user,noauto 0 0
/dev/hdc /cdrom udf,iso9660 defaults,user,noauto,ro 0 0
تمام سیستم فایلهایی که در این فایل وجود دارند هنگام بوت به طور خودکار متصل میشوند. بجز آنهایی که جلوی آنها عبارت noauto قید شده است.در مثال بالا، سیستم فایلهای / ، boot و home هنگام بوت متصل میشوند در حالی که floppy و درایو CD-ROM، هنگام بوت به طور خودکار متصل نخواهند شد. همچنین این امکان وجود دارد تا پارتیشن های ویندوز را نیز در در این فایل وارد نمود تا بتوان به داده های آنها از داخل لینوکس دسترسی پیدا کرد. برای این کار، کافی است با تایپ دستور su و کلمه عبور ریشه، بصورت کاربر ریشه وارد شده و با استفاده از یک ویرایشگر متنی مانند vi فایل etc/fstab را ویرایش نمایید:
$ vi /etc/fstab
و خط زیر را در آخر آن اضافه نمایید:
/dev/hda1 /windows vfat defaults,noauto,umask=002 0 0
نکته: چون لینوکس ردهت نمی تواند درایوهای Fat و Fat32 را هنگام بوت به صورت خودکار متصل نماید. به همین علت هم کلمه noauto در خط مربوط به مثال بالا ذکر شده است. در صورتی که این خط را ننویسید، ردهت در هنگام بوت از ادامه فرایند بوت جلوگیری نموده و اجازه نخواهد داد تا کامپیوترتان بوت شود. برای عبور از چنین شرایطی و اصلاح این خط میتوانید با فشردن دگمه i هنگام بوت و ورود به حالت سوال و جواب، اجرای این خط را متوقف کرده و پس از ورود به سیستم، فایل fstab را با استفاده از یک ویرایشگر متنی مانند vi ویرایش و اصلاح نمایید.
در سایر توزیعها مانند لیبرانت یا دبیان میتوانید پارتیشنهای ویندوز خود را بطور خودکار در ابتدای بوت متصل نمایید.
اکنون به مواردی که میتوانید در یک خط فایل fstab ذکر نمایید می پردازیم:
-فیلد اول: در این قسمت میتوانید نام ابزار مربوط به سیستم فایل را وارد نمایید. برای سیستم فایلهای مجازی مانند proc در این قسمت کلمه none وارد میشود. همچنین در این بخش امکان استفاده از UUID ها نیز وجود دارد. استفاده از UUID به این معنی است که شما بجای وارد نمودن نام ابزار سخت افزاری، نام پارتیشن مربوطه را وارد میکنید. در مثال بالا، دو پارتیشن / و root به این صورت تعریف شده اند. مزیت این کار این است که در صورتی که یکی از این پارتیشنها را به یک ابزار دیگر با آدرس متفاوت منتقل کنید، نیازی به ویرایش فایل fstab وجود ندارد. زیرا نام آنها همچنان ثابت مانده است. در لینوکس دیسکهای سخت IDE به نام hd شناخته میشوند. نخستین دیسک سخت سیستم hda نام دارد. دیسک سخت دوم نیز hdb و به همین ترتیب. پارتیشن اول دیسک سخت اول سیستم hda1 نام دارد و به همین ترتیب. پس در مثال بالا، به سیستم میگوییم تا پارتیشن اول دیسک سخت اول سیستم را متصل نماید.
-فیلد دوم: در این قسمت نقطه اتصال یک پارتیشن در سیستم فایل مشخص میشود. اطلاعات موجود در این پارتیشن از طریق نقطه اتصال آن قابل دسترسی خواهد بود.
-فیلد سوم: در این قسمت باید نوع سیستم فایل را مشخص نمایید که میتواند یکی از سیستم فایلهایی باشد که در توزیع شما پشتیبانی شده و پارتیشن مورد نظر دارای آن سیستم فایل است.
-فیلد چهارم: گزینه های دستور mount. مثلا در مثال بالا، همانطور که توزیح داده شد، گزینه noauto از اتصال خودکار سیستم فایل هنگام بوت جلوگیری میکند و یا گزینه ro سیستم فایل را بصورت فقط خواندنی متصل میکند. این گزینهها با استفاده از کاما از هم جدا میشوند.
نکته: به طور معمول، فقط کاربر ریشه مجوز اتصال و برداشتن اتصال سیستم فایلها را داراست. برای دادن این اختیار به سایر کاربران، باید آنها را در بخش گزینهها یا فیلد چهارم وارد نمایید. برای این کار کلمه users را اضافه نمایید.
-فیلد پنجم: عدد نوشته شده در این فیلد مشخص میکند که آیا سیستم فایل نیاز به dump شدن دارد یا خیر. شماره ۱ نشانگر وجود این نیاز و ۲ نشانگر عدم نیاز به این کار است. Dump به معنای نوشتن محتویات در هنگام بروز خطا در یک فایل جداگانه میباشد.
-فیلد ششم: عدد نوشته شده در این فیلد نشاندهنده این است که آیا این سیستم فایل نیاز دارد تا بوسیله برنامه تصحیح فایل سیستم (fsck) بررسی شود یا خیر. عدد ۱ نشاندهنده وجود این نیاز و عدد ۲ نشانگر عدم نیازبه این کار است.
در جدیدترین و به ظاهر امن ترین فایل سیستم مایکروسافت یعنی NTFS 5.0 امکان تعیین سطوح مختلف دسترسی فقط برای به دایرکتوری ها ( و نه فایلها!) برای کاربران مختلف به صورت زیر وجود دارد:
1-No Access
2-Read
3-Read & Execute
4-Write
5-Full Control
در حالت اول کاربر مورد نظر هیچگونه دسترسی به دایرکتوری مورد نظر ندارد. حالت دوم تنها می تواند فایلها را ببیند ولی امکان اجرای فایلها (ی اجرایی) را ندارد .در گزینه سوم این اختیار به کاربر داده شده است تا فایلها را اجرا کند. در حالت چهارم یا Write کاربر قادر به انجام هر کاری جز تغییر سطوح دسترسی به دایرکتوری مورد نظر را دارد. به این حالت Modify هم گفته میشود و بالاخره در آخرین حالت کاربر میتواند هر آنچه را اراده میکند اعمال کند!!! این سطح دسترسی معمولا مخصوص Administrator است.
همانگونه که اشاره شد در این فایل سیستم امکان فیلتر کردن دسترسی کاربران به فایلها وجود ندارد و تمام فایلهای موجود در یک دایرکتوری به لحاظ سطح دسترسی تابع دایرکتوری خود هستند. اما در لینوکس استراتژی کاملا متفاوت است. دسترسی به هر فایل یا دایرکتوری توسط ۹بیت اطلاعات اضافهای که به فایل یا دایرکتوری چسبانده میشود برای ۳ کلاس ۳ بیتی کاربر, گروه کاربر و سایر کاربران , تعیین میشود که به ترتیب با کدهای u(کاربر) , g(گروه) و o(سایرین) مشخص میشوند. 0 یا 1 بودن بیت اول تعیین کننده دسترسی خواندن (Read)برای صاحب فایل ( کاربر), بیت دوم امکان نوشتن (Write) و ایجاد تغییر در فایل یا دایرکتوری مورد نظر و بالاخره بیت سوم امکان اجرای(eXecute) فایلهای اجرایی را مشخص میکند. سه بیت دوم این دسترسیها را برای کلاس گروه کاربر و سه بیت آخر دسترسیها را برای سایر کاربران مشخص میکند. در صورتی که یک مجوز به کاربری داده نشده باشد به جای مجوز مورد نظر(یکی از حروف R,W یاX ) هنگام نمایش مجوزها، علامت دش (-) دیده میشود. آنچه در زیر دیده میشود مجوز دسترسی کامل به یک فایل است. یعنی همه کاربران امکان خواندن، نوشتن و اجرای فایل را دارند :
rwxrwxrwx
یا در حالتی که صاحب فایل دسترسی کامل، گروهش امکان خواندن و اجرا و سایرین هیچگونه دسترسی به فایل مورد نظر نداشته باشند این مجوزها به صورت زیر خواهد بود:
rwxr-x---
نمونهای از این مجوزها را میتوانید با اجرای فرمان ls -l مشاهده نمایید. توجه کنید که علاوه بر ۹بیت ذکر شده، یک کاراکتر اضافه نیز در ابتدای این رشته وجود دارد که تعیین کننده نوع فایل است که برای فایلهای عادی بصورت دش (-) و برای دایرکتوری ها بصورت d دیده میشود:
drwxr-xr-x
-rwxr-xr-x
مجوز پیش فرض برای فایلهای جدید بصورت زیر است:
rw-r- - r--
و در صورتی که فایلی توسط یکی از کامپایلرهای موجود اجرایی شده باشد x (یا امکان اجرا کردن) به دسترسیها اضافه میگردد. مجوز پیش فرض دسترسی به یک دایرکتوری جدید نیز مشابه همین حالت است:
rwxr-xr-x
در صورتی که بخواهید مجوزهای پیش فرض را برای نشست جاری خود تغییر دهید میتوانید از دستور umask استفاده کنید.
برای تغییر مجوزهای یک فایل یا دایرکتوری کاربری که این اختیار را دارد (کاربر ریشه یا صاحب فایل یا دایرکتوری) میتواند با دستور chmod این کار رابوسیله یکی از دو روش زیر انجام دهد.
-در روش نخست پس از دستور chmod میتوان با علامت های "+" یا "–" یک یا چند مجوز را به کلاس ها افزود و یا از آنها گرفت. در این حالت کلاس ها با کدهایی که در بالا ذکر شد تعیین می شوند.مثلا:
#chmod go-rx anything
این دستور تعیین می کند که مجوز خواندن و اجرای فایلی به نام anything از کلاس گروه کاربر(u) و سایرین(o) گرفته شود و برعکس آن به صورت زیر است:
#chmod go+rx anything
-در روش دوم مجموع سه سطح دسترسی(خواندن,نوشتن و اجرا) به صورت یک عدد بین صفر تا هفت برای 3 کلاس کاربر, گروهش و سایرین به صورت زیر تعیین می شود و پس از دستور chmod می آید. برای خواندن عدد چهار, برای نوشتن عدد دو و برای اجرا عدد یک منظور می شود. یعنی هفت(1+2+4) نشان دهنده دسترسی کامل است در نتیجه مثلا 777 نشان دهنده اعطای دسترسی کامل به همه کاربران است.مثلا:
#chmod 750 anything
این دستور نیز تعیین می کند که مجوزها بصورت زیر تغییر کنند:
rwxr-x---
به طور پیش فرض، هر کاربری که فایلی را ایجاد نماید، مالک آن فایل شناخته میشود. در صورتی که بخواهید مالکیت یک فایل را تغییر دهید، باید از دستور chown استفاده نمایید. هنگامی که مالکیت یک فایل یا دایرکتوری را به کاربری اعطا کنید، آن کاربر دارای تمام مجوزها برای انجام تغییرات و تغییر مجوزها روی آن فایل یا دایرکتوری است. به مثالهای زیر توجه کنید:
#chown
#chown -R
در مثال نخست، مالکیت فایلی به نام anything به کاربر memphis اعطا میشود. در مثال دوم، مالکیت دایرکتوری home/memphis و تمام فایلها و دایرکتوریهای زیر آن به کاربر memphis اعطا میشود. توجه داشته باشید که در چنین مواردی از گزینه R در در دستور استفاده میشود.