Transcript الشريحة 1
مادة نظم تشغيل ش بكية 2 احملارضة السادسة Distributed File System NFS – Samba -NIS اعداد املهندس وسام احملمود ً أوال NFS : Network File System هي الطريقة األكثر شيوعا ً لمشاركة الملفات على أنظمة Linux وهو نظام ملفات موزع يؤمن دخول بعيد لنظام الملفات المحلي (األقراص وأنظمة الملفات) يؤمن للزبائن نظام ملفات بعيد بشكل شفاف أي يستطيع المستخدم التنقل بالمجلدات بشكل سهل ومن أي نظام تشغيل آخر windowsو Linux ما هو NFS يستخدم NFSبنية Server/Clientالقياسية أي الجزء األول Serverيتألف من أقراص صلبة تحوي أنظمة ملفات المشاركة (قائمة بالملفات المشاركة) باإلضافة للعناوين الفيزيائية لهذه الملفات (أماكن توضعها الحقيقية على الشبكة) وتسمح للزبائن بالوصول إلى هذه الملفات (قراءتها – التعديل ..ألخ ) ويؤمن ميزة قفل الملف يقوم المستخدم بتصدير ملفاته التي يود مشاركتها فهو مخدم يصل الزبائن المسموح لهم برؤية الملفات المصدرة إلى الملفات عن طريق mount إعداد مخدم NFS نتأكد من تشغيل الخدمة باستخدام األمر التالي : • service nfs start لجعل الخدمة تعمل عند كل إقالع استخدم األمر • chkconfig nfs on تصدير امللفات Export افتح الملف • /etc/exports يكون هذا الملف فارغا ً لدى تحريره ألول مرة (العالمة #تسبق كل سطر ال أهمية له قد نستخدمها لوضع تعليقات أو إشارات مساعدة) كل سطر من أسطر هذا الملف غير مسبوق بهذه العالمة هو من الشكل التالي : • dir host(options) [host(options)] ... Dirالمجلد أو نظام الملفات المراد مشاركته (تصديره) Hostيحدد واحد أو عدة مستخدمين الذين لهم الحق بالوصول إلى الملف (المجلد – القرص) : Host قد يكون اسما ً (اسم حاسب) مرتبط بعنوان IPفي الملف Hostsأو اسم يستطيع مخدم DNSتفسيره قد يكون عنوان IPمفرد أو شبكة كاملة 10.0.0.0/255.0.0.0 باإلمكان استخدام الرمز (*) للسماح لجميع األسماء التي تبدأ بمحرف ما أو استخدام الرمز (؟) كما في المثال التالي : أي مهما كان المحرف الرابع Ahm?d جميع األسماء التي تبدأ بالحرف * a أستخدمه في حال لم أتأكد من كتابة االسم هل هو Ahmedأو Ahmad كذلك باإلمكان السماح لمجموعة NISكاملة برؤية الملف بوضع الـ Hostكما يلي @groupname بعد االنتهاء من التعديل على هذا الملف نفذ األمر • Exportfs -a مثال لمشاركة المجلد /dirنضيف السطر التالي إلى الملف Exportsحيث 10.0.0.2هو الجهاز الوحيد الذي بإمكاننا رؤية الملف منه )/dir 10.0.0.2(ro هذا يعني السماح للجهاز ذي العنوان 10.0.0.2بالوصول إلى المجلد dirوله حق القراءة فقط Read-Only لنستعرض بعض الخيارات التي يمكن استخدامها الوصف Option القراءة فقط تصدير الملف مع عدم السماح بتعديل محتواه ro القراءة والكتابة تصدير الملف مع السماح بتعديل محتواه rw تأجيل عملية الكتابة على القرص لتحسين األداء حيث يقوم مخدم NFSبوضعها في Cashذاكرة لتحسين األداء async وهو االفتراضي معناه :إجبار مخدم NFSعلى التعديل على القرص مباشرة sync هو االفتراضي إللغائها نستخدم no_root_squash root_squash تستخدم مع rwإلعطاء المستخدم الوصول كـ rootأي بدونها يكون المستخدم البعيد كأي مستخدم محلي ليس جذراً (ال يستطيع التعديل على جميع حتى لو حاز على الحق rwلذلك نستخدم معه هذا الخيار) no_root_squash إعداد الزبون قم بإنشاء مجلد جديد نحمل عليه الملفات الشبكية • Mkdir /mnt/nfsFiles استخدم األمر mountلتحميل الملفات إلى المجلد السابق : • Mount –t nfs 10.0.0.1:/wesam /mnt/nfsfiles مالحظة ال يمكننا تحميل مجلدين إلى المجلد /mnt/nfsfilesوإنما يحتفظ بآخر مسار فقط وبذلك نحتاج لمجلد محلي لكل مجلد مشارك مثال لتحميل مجلد آخر : Mount –t nfs 10.0.0.1:/w2 /mnt/nfs2 Mount –t nfs 10.0.0.1:/w3 /mnt/nfs3 بشرط تم تصدير هذه المجلدات من المخدم NFSذي العنوان 10.0.0.1 ولي الحق برؤية المجلدات السابقة لتحميل هذا المجلد عند اإلقالع الجهاز بشكل دائم نضيف السطر التالي إلى الملف /etc/fstab 10.0.0.1:/dir /mnt/nfs2 nfs auto,defaults حيث 10.0.0.1:/dirمسار الملف الحقيقي على الشبكة Nfsنظام الملفات المستخدم /mnt/nfs2مجلد التحميل Mount Point Auto,defaultأي تحميل تلقائي عند كل إقالع Exports عن امللف2 مثال • /usr/local *.kurtwerks.com(ro) • /dir1 ahm?d.kurtwerks.com(rw) • /home 192.168.0.0/255.255.255.0(rw) • /projects @dev(rw) • /var/tmp 192.168.0.1(rw) • /dir2 ahm?d (rw,async,no_root_squash) Exportfs -v يستخدم هذا األمر إلظهار المجلدات التي أشاركها مع اآلخرين أي يعرض هذا األمر محتويات الملف exports أو نستخدم األمر Cat /etc/exports Exportfs –v -u يستخدم هذا األمر إلزالة مشاركة مجلد مؤقتا ً (مع عدم التعديل على الملف )exports مثال : Exportfs –v –u 10.0.0.2:/home/serv/s إلعادة تفعيل المشاركة يكفي تنفيذ األمر والذي يعيد قراءة الملف exports exportfs -a مثال 2 أضف السطر التالي إلى الملف exports */dir 192.168.0. )(rw,async,no_root_squash ثم نفذ األمر exportfs –a أصبح بإمكان أي مستخدم من مستخدمي الشبكة 192.168.0.0/24من الدخول والتعديل على المجلد ماذا نفعل لمنع الجهاز 192.168.0.10من الوصول إلى المجلد مؤقتا ً ؟ Exportfs –v –u 192.168.0.10:/dir )Showmount (host يستخدم هذا األمر من قبل أي جهاز على الشبكة لمعرفة األجهزة المستفيدين من خدمة NFS مثال : Showmount 10.0.0.1 يستخدم األمر السابق لمعرفة العناوين التي تستفيد من خدمة NFS الموجودة على الجهاز 10.0.0.1 أستخدم هذا األمر على جهازي ألعرف من تمكن من رؤية المجلد الذي شاركته مع بقية المستخدمين على الشبكة Showmount -a يستخدم هذا األمر على مخدم NFSلمعرفة األجهزة التي تصل إلى المجلدات المشاركة في المثال في األسفل clientهو اسم موجود في الملف hosts يشير إلى الحاسب ذو العنوان 10.0.0.2 Showmount -e يستخدم هذا األمر على مخدم NFSلعرض قائمة المجلدات المشاركة ومن أي شبكات يتم الوصول إليها Showmount -d يستخدم هذا األمر على مخدم NFSلعرض قائمة المجلدات المشاركة فقط ً ثانيا Samba : يستخدم لربط شبكات Linuxمع شبكات MS windows تستخدم أنظمة windowsبروتوكوالً اسمه )Server Message Block (SMB يستخدم هذا البروتوكول لربط ومشاركة الخدمات مثل مشاركة الملفات والطباعة باستخدام برنامج Sambaيمكننا مضاهاة البروتوكول SMB ومشاركة الملفات والطباعة بين أنظمة windowsوLinux - 1التأكد من تنصيب Samba يتم تنصيب Sambaعلى الحاسب الذي يعمل على نظام ( Linuxمتوفر في أي توزيعة) للتأكد من أن الحزمة منصبة نفذ األمر : • rpm -q samba إذا لم تكن الحزمة منصبة ستحصل على رسالة مشابهة للرسالة التالية ( : أما إذا كانت منصبة نحصل على رسالة كالرسالة التالية تبين إصدار Sambaالمنصب على الجهاز في حال نصب النظام دو تنصيب حزمة Samba اتبع ما يلي ستحتاج القرص األول لنظام Linux Redhat 9 - 2إعداد مخدم Samba ملف اإلعداد الخاص بمخدم Sambaهو : • /etc/samba/smb.conf قم بإعادة تسمية هذا الملف في حال وجدته حتى ال نفقد محتواه (نسخة احتياطية) نتأكد من تشغيل الخدمة باستخدام األمر التالي : • service smb start لجعل الخدمة تعمل عند كل إقالع استخدم األمر • chkconfig smb on لنستعرض محتوى امللف smb.conf يتألف هذا الملف من عدة مقاطع سنقوم بالتعرف عليها بالتفصيل : ][global option = value ][homes option = value ][printers option = value ][nancy نالحظ أن كل مقطع يتألف من عدة أسطر كل سطر من الشكل option = valueولدينا المئات من الـ Optionsو الـ Values Global املقطع [global] workgroup = ONE netbios name = TERRY server string = Samba Server security = SHARE encrypt passwords = yes log file = /var/log/samba/log max log size = 50 socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 dns proxy = No wins support = Yes hosts allow = 192.168.1. hosts deny = all : workgroup = ONE اسم مجموعة العمل يكون مطابقا ً للموجود في أنظمة windows netbios name = TERRY االسم الذي سيستخدمه windowsلمعرفة مخدم Samba server string = Samba Server اسم مخدم Samba log file = /var/log/samba/log موقع حفظ ملف مسجل أحداث المخدم Samba max log size = 50 الحجم األعظمي لملف مسجل األحداث مقدراً بالكيلو بايت security = SHARE مستوى الحماية يأخذ القيمة Shareوهي القيمة المناسبة للسماح للمستخدمين مجهولي المصدر باالتصال مع المخدم socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 تضبط المخدم ليكون في أفضل أدائه TCP_NODELAYهي القيمة االفتراضية وهناك قيمة BUFعند وضعها يستخدم المخدم ذاكرة Buffer dns proxy = No في حال عدم وجود DNS wins support = Yes يستخدم لجعل مخدم Sambaيعمل كمخدم WINS hosts allow = 192.168.1. أي ستتم الموافقة على الطلبات الواردة من هذه الشبكة hosts deny = all سيتم رفض جميع الطلبات (بالتأكيد باستثناء الشبكة الموافق عليها) املقطع HOMES يستخدم هذا المقطع إلعطاء المستخدمين دخوالً سريعا ً لمجلداتهم الموجودة ضمن المجلد Home • comment = Home Directories • مجرد سطر تعليق • read only = No • المجلدات للقراءة فقط أو للتعديل والقراءة املقطع Printers يحدد هذا المقطع خيارات الطباعة : • path = /var/spool/samba يحدد مسار مجلد الطابعة المؤقت (أو المكب )Spool • guest ok = Yes السماح للضيوف باستخدام الطابعة • print ok = Yes يسمح للزبائن بإرسال أعمال الطباعة للمجلد المحدد سابقا ً وفي حال عدم وضع هذا الخيار لن يتمكن أحد من القيام بالطباعة • browseable = Yes يسمح للطابعة أن تظهر في حال تم البحث عنها املقطع ahmad في هذا المقطع أصف المجلد الذي أود مشاركته : path = /oldwin مسار المجلد المسموح لي بالدخول إليه valid users = ahmad يحدد أسماء المستخدمين الذين سأشاركهم المجلد read only = No تمكين عملية التعديل على المجلد guest ok = noمنع الضيوف من الوصول browseable = yesتمكين االستعراض استخدام األداة Samba Server بهذه الطريقة نكون قد قمنا بإعداد مخدم Samba يبقى تحديد المجلدات التي سأشاركها مع windows اضغط على الزر add لنحاول اآلن الوصول إلى المجلد من جهاز windows طبعا ً ال ننسى من الضروري إضافة الشبكة 10.0.0.إلى الملف smb.confالحظ وجود بعض الشبكات المضافة مسبقا ً وأضف عليها 10.أو 10.0.أو 10.0.0. اذهب لـ windowsافتح نافذة التشغيل run لن نتمكن من الدخول إلى المجلد ألن المخدم لم يسمح بدخول الضيوف ولرؤية المجلد يجب تغيير الصالحيات من قبل المخدم جرب حذف الملف f عدل محتوى الملف fg لن تتمكن من التعديل على الملف ولن تتمكن من حذف أحد الملفات (حتى لو نجحت في حذف ملف ستتفاجئ ببقائه عند الدخول مرة أخرى) السبب أنك دخلت ضيفا ً بصالحيات المستخدم servوهو ليس root وليس له الحق في التعديل على المجلد /ahmad غير القيمة guest accountإلى root عندها فقط ستتمكن من التعديل بنجاح شكر ًا حلسن اصغائمك