460 likes | 713 Vues
مادة نظم تشغيل شبكية 2 المحاضرة السادسة Distributed File System NFS – Samba -NIS إعداد المهندس وسام المحمود. أولاً : NFS. N etwork F ile S ystem هي الطريقة الأكثر شيوعاً لمشاركة الملفات على أنظمة Linux وهو نظام ملفات موزع يؤمن دخول بعيد لنظام الملفات المحلي (الأقراص وأنظمة الملفات)
E N D
مادة نظم تشغيل شبكية 2 المحاضرة السادسةDistributed File SystemNFS – 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
لنستعرض بعض الخيارات التي يمكن استخدامها
إعداد الزبون • قم بإنشاء مجلد جديد نحمل عليه الملفات الشبكية • 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/nfs2nfsauto,defaults • حيث 10.0.0.1:/dir مسار الملف الحقيقي على الشبكة • Nfs نظام الملفات المستخدم • /mnt/nfs2 مجلد التحميل Mount Point • Auto,default أي تحميل تلقائي عند كل إقلاع
مثال 2 عن الملف Exports • /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 اتبع ما يلي
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 • يبقى تحديد المجلدات التي سأشاركها مع windows • اضغط على الزر add
لنحاول الآن الوصول إلى المجلد من جهاز windows • طبعاً لا ننسى من الضروري إضافة الشبكة 10.0.0. إلى الملف smb.conf لاحظ وجود بعض الشبكات المضافة مسبقاً وأضف عليها 10. أو 10.0. أو 10.0.0. • اذهب لـ windows افتح نافذة التشغيل run
لن نتمكن من الدخول إلى المجلد لأن المخدم لم يسمح بدخول الضيوف ولرؤية المجلد يجب تغيير الصلاحيات من قبل المخدم
جرب حذف الملف f • عدل محتوى الملف fg
لن تتمكن من التعديل على الملف • ولن تتمكن من حذف أحد الملفات (حتى لو نجحت في حذف ملف ستتفاجئ ببقائه عند الدخول مرة أخرى) • السبب أنك دخلت ضيفاً بصلاحيات المستخدم serv وهو ليس root • وليس له الحق في التعديل على المجلد /ahmad • غير القيمة guest account إلى root • عندها فقط ستتمكن من التعديل بنجاح
شكراً لحسن إصغائكم