الشريحة 1

Download Report

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‬‬
‫‪ ‬عندها فقط ستتمكن من التعديل بنجاح‬
‫شكر ًا حلسن‬
‫اصغائمك‬