طريقة اعداد Samba Server على نضام اوبونتو








السلام عليكم ورحمة الله تعالى وبركاته .ربما من اكثر الخدمات جدلا حول كيفية اعدادها هو samba. ليس لانه مقعد، ولكن بسبب كثرة خياراته المتاحة وتعدد طرق اعداده.يكمن سبب تعدد خياراته وطرق اعداده بسبب طبيعة العمل الذي يؤديه، اذ يمكنه ان يعمل 4 وظائف رئيسية وكل وظيفة لديها طريقة اعداد خاصة بها.على العموم، هذا المقال لن يغطي سوى وظيفة واحدة لـ samba وهي ان يعمل بوضعية Stand Alone Service بحيث يوفر مشاركة الملفات والمجلدات بدون ان تضطر الى الخوض في خياراته الكثيرة.


تثبيت SAMBA





root@server:~# apt-get install samba


بعد الانتهاء من تثبيت سامبا، لنبدا باعداده، حيث ستجد ملف الاعداد في الدليل /etc/samba/smb.conf


root@server:~# mv /etc/samba/smb.conf /etc/samba/smb.conf.orig


root@server:~# touch /etc/samba/smb.conf


كما ذكرت سابقا، بالرغم من كثرة خيارات وطرق اعداد samba الا اننا في الحقيقة نحتاج الى 3 سطور فقط لجعله يعمل وهذه السطور هي: (اكتبها داخل الملف smb.conf)


[global]


netbios name = alpha


workgroup = mshome


ماذا تعني هذه السطور؟


[global] هو القسم العام الذي يندرج اغلب اعداد samba تحته، وهو اجباري، ومن دونه لن يعمل.


netbios name هو الاسم الذي سيستخدمه بقية اجهزة الشبكة للاتصال بجهازك.


workgroup هو اسم مجموعة العمل (هذا اليخيار ثابت حتى لو كنت تملك مجال “domain” بدل محطة العمل “workgroup”)


شغل او اعد تشغيل samba الان:


root@server:~# /etc/init.d/samba stop


root@server:~# /etc/init.d/samba start


الان يمكنك الذهاب الى اي جهاز عليه ويندوز والدخول الى شبكة الاتصال لتجد جهازك متوفر هناك تحت الاسم alpha


يمكنك دائما التاكد ان ملف الاعداد لا يحتوي على اخطاء باستخدام الامر testparm كالاتي:


root@server:~# testparm


Load smb config files from /etc/samba/smb.conf


Loaded services file OK.


Server role: ROLE_STANDALONE


Press enter to see a dump of your service definitions


وفي حال وجود خطأ، فانه سيظهر رسالة مثل:


root@server:~# testparm


Load smb config files from /etc/samba/smb.conf


Unknown parameter encountered: "wrkgroup"


Ignoring unknown parameter "wrkgroup"


Loaded services file OK.


Server role: ROLE_STANDALONE


Press enter to see a dump of your service definitions





مشاركة مجلد:


مشاركة مجلد باستخدام سامبا يعتبر ايضا عملية سهلة جدا، كل ما عليك فعله هو اتباع الخطوات التالية:


1. تحديد المجلد الذي تريد مشاركته (كمثال، ساستخدم /media/sda8/shares/samba)


root@server:~# mkdir -p /media/sda8/shares/samba


root@server:~# chmod 777 /media/sda8/shares/samba


لاحظ الصلاحيات، بالرغم ان كل المستخدمين مسموح لهم الكتابة، الا ان سامبا سيحدد من يستطيع الكتابة ومن لا يستطيع بناء على الخيارات التي سنستخدمها.


2. تحديد اسم المشاركة (عندما تفتح المشاركة من الاجهزة التي عليها ويندوز، ستظهر المشاركة بالاسم الذي اخترته) ساختار: test


الان بالعودة الى ملف smb.conf، لنضف اليه بعض السطور الجديدة بحيث يصبح كالاتي:


[global]


netbios name = alpha


workgroup = mshome


[test]


path = /media/sda8/shares/samba/test


comment = A shared folder which will not work!


احفظ الملف واعد تشغيل samba.


من اجهزة ويندوز، ستلاحظ انه ظهر جهاز اسمه alpha وايضا مجلد اسمه test ولكن ستلاحظ انه يطلب منك اسم مستخدم وكلمة مرور ومهما اضفت من اسماء مستخدمين لن تستطيع الدخول.


هذا يحدث لاننا لم نخبر samba من لديه صلاحيات الدخول الى الجهاز.


حتى يستطيع المستخدمون الوصول الى المجلدات المشاركة، علينا اتباع الاتي:


1. اضف مستخدم جديد للنظام باستخدام الامر التالي:


root@server:~# adduser --disabled-login --no-create-home username


2. الان اضف المستخدم الى قاعدة بيانات samba:


root@server:~# smbpasswd -a username


اذهب الان الى اي جهاز ويندوز واستخدم اسم المستخدم وكلمة المرور لتدخل على المجلد.


كما لاحظت، يمكنك دخول المجلد بدون اي مشكلة، ولكن لن تستطيع الكتابة عليه وهذا يحدث لان samba يعطي صلاحيات القراءة فقط لاي مجلد تم مشاركته، علينا اخبار samba اننا نريد الكتابة على هذا المجلد. سننشيء مشاركة جديدة اسمها project لنتبعها كمثال.


root@server:~# mkdir       -p    /media/sda8/shares/samba/project


root@server:~# chmod 777 /media/sda8/shares/samba/project


في الملف smb.conf اضف التالي:


[project]


path = /media/sda8/shares/samba/project


comment = This is a writable folder


writable = yes


لاحظ اننا اضفنا الخيار (writable = yes) الذي يجعل المجلد قابل للكتابة. لو كنت تريد المستخدم projectadmin فقط من يستطيع الكتابة على المجلد، اضف السطر (valid users = projectadmin) بحيث يصبح الاعداد كالاتي:


[project]


path = /media/sda8/shares/samba/project


comment = This is a writable folder


writable = yes


valid users = projectadmin


بهذا، لن يستطيع الكتابة على هذا المجلد سوى المستخدم projectadmin.ولكن ماذا لو اردت العكس؟ يعني جميع المستخدمين قادرين على الكتابة الا المستخدم joha؟ نضيف خيار معاكس للاول وهو (invalid users = zouhir):


[project]


path = /media/sda8/shares/samba/project


comment = This is a writable folder


writable = yes


invalid users = zouhir


ايضا يمكنك تحديد الاجهزة التي تستطيع الوصول الى المجلد المشارك وذلك باستخدام الخيار (hosts allow = ip)


[project]


path = /media/sda8/shares/samba/project


comment = This is a writable folder


writable = yes


valid users = projectadmin


hosts allow = 172.16.1.23, 172.16.1.24


الان فقط المستخدم projectadmin سيكون قادر على الكتابة على المجلد وايضا سيستطيع الكتابة على المجلد فقط اذا كان يستخدم الجهاز 172.16.1.23 او الجهاز 172.16.1.24 ولكن ماذا لو اردت ان تجعل samba يقبل من الجميع الدخول اليه، سواء كان هناك اسم مستخدم وكلمة مرور او لا؟


لعمل هذا، علينا اضافة 3 سطور اضافية للملف smb.conf كالاتي:


[global]


netbios name = alpha


workgroup = mshome


map to guest = bad user


guest account = smbguest


[project]


path = /media/sda8/shares/samba/project


comment = This is a writable folder


writable = yes


valid users = projectadmin


hosts allow = 172.16.1.23, 172.16.1.24


guest ok = yes


ملاحظة: اسم المستخدم smbguest هو مستخدم افتراضي يتم تعيينه لاي شخص يحاول الدخول الى المجلدات المشاركة وليس لديه اسم مستخدم وكلمة مرور.


يمكنك تغيير هذا المستخدم باي واحد اخر تريده مثل anonusers كالاتي:


root@server:~# adduser --disabled-login --no-create-home anonuser


root@server:~# smbpasswd -a anonuser


وتعديل الخيار guest account = smbguest الى guest account = anonuser





اضافة سلة نفايات الى المجلدات المشاركة: 


في بعض الاحيان، يتم حذف ملف عن طريق الخطا، اذا حدث هذا لا يوجد طريقة سهلة لاستعادته، لهذا السبب، يوفر سامبا امكانية اضافة سلة نفايات للمجلدات المشاركة بحيث اي ملف يتم حذفه يذهب الى سلة المحذوفات. نستطيع استخدام هذه الميزة عبر تفعيل module اسمه recycle كالاتي:


[project]


path = /media/sda8/shares/samba/project


comment = This is a writable folder


writable = yes


valid users = projectadmin


hosts allow = 172.16.1.23, 172.16.1.24


guest ok = yes


vfs object = recycle


recycle:repository = trash


recycle:keeptree = yes


recycle:versions = yes


شرح الخيارات الجديدة التي تم اضافتها:


vfs object = recycle : قمنا بتفعيل الـ module الخاص بسلة النفايات عبر (recycle)


recycle:repository = trash : قمنا بتغيير اسم سلة النفايات الى trash (الافتراضي هو .recycle)


recycle:keeptree = yes : قمنا بحفظ شجرة المجلدات كما هي (الافتراضي هو مزج كل الملفات في سلة النفايات)


recycle:versions = yes : قمنا بالسماح بحفظ اصدارات مختلفة من نفس الملف بدل من حفظ اخر اصدار له.




بعد كل هذه الاعداد، كل ما بقي علينا اعادة تشغيل سامبا.


عبر الأمر التالي:





root@server:~# /etc/init.d/samba restart





مع تحياتي  لكل من واجهته أية مشكلة أنا في الخدمة لا تنسو الردود أسفل الموضوع ردودكم تشجعنا على المواصلة


طريقة اعداد Samba Server على نضام اوبونتو 4.5 5 Unknown الاثنين، 26 يناير 2015 السلام عليكم ورحمة الله تعالى وبركاته .ربما من اكثر الخدمات جدلا حول كيفية اعدادها هو samba. ليس لانه مقعد، ولكن بسبب كثرة خياراته المتاحة و...


On : الاثنين، 26 يناير 2015,

If you enjoyed this article, sign up for free updates.

author picture

About Author

I'am Unknown, a part-time blogger and template designer from Indonesia who is the founder And Author of تحميل جميع البرامج. I love create Blogger Themes, write about blog design, And Blogspot tweaks. You can subscribe me on G+ @ Unknown .

ليست هناك تعليقات

إرسال تعليق