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