تعتمد الكثير من بيئات المؤسسات التي توجد بها حواسيب بنُظم تشغيل مختلفة (توزيعات لينكس أو وندوز) على خادوم Samba لتشارك الملفّات والطّابعات أو لتقديم خدمات الاستيثاق ضمن بيئاتها الداخليّة. سنشرح في هذا المقال كيفيّة إعداد تشارك الملفّات عبر خادوم Samba على توزيعة RedHat Enterprise Linux 7. يمكن الوصول للملفّات المتشاركة بهذه الطريقة من حواسيب عميلة Clients تستخدم واحدة من توزيعات لينكس أو نظام وندوز على حدّ السواء.
تثبيت خادوم Samba
نستخدم لأغراض الشّرح في هذا الدّرس حاسوبين يعملان بتوزيعة RedHat Enterprise Linux؛ نثبّت على الأول خادوم Samba وعلى الثاني عميلا لنفس الغرض. نعدّ الحاسوبيْن ضمن شبكة داخليّة على النحو التالي:
-
خادوم Samba على العنوان
192.168.2.100
(سنشير إليه بالخادوم). -
عميل Samba على العنوان
192.168.2.200
(سنشير إليه بالعميل).
راجع مقال إنشاء شبكة داخليّة افتراضية باستخدام Oracle VirtualBox لمعرفة كيفية إنشاء بيئة اختبار لهذا الغرض باستخدام برنامج Oracle VirtualBox.
سجّل الدخول إلى الخادوم بالحساب الجذر root
ثم حدّث النظام وثبّت الحزم التاليّة الضروريّة لعمل Samba:
$ su - Password # yum update # yum install samba samba-client samba-common
إعداد تشارك الملفات على Samba
سنفترض أننا نريد إعداد مجلّد مشترك بين مجموعة من المستخدمين تعمل في نفس القطاع (الماليّة Finance). ننشئ لهذا الغرض مجموعة مستخدمين باسم finance
ونضيف إليها مستخدمَيْن user1
وuser2
؛ ثم ننشئ الملفّ المشترك (على الخادوم) ونضبط أذونه ونعطي ملكيّته للمجموعة finance
(ننفّذ الأوامر التاليّة على الخادوم بصلاحيّات الجذر):
# groupadd finance # useradd user1 # useradd user2 # usermod -a -G finance user1 # usermod -a -G finance user2 # mkdir /finance # chmod 0770 /finance # chgrp finance /finance
إعداد SELinux و Firewalld للسماح لـ Samba
تستخدم توزيعة RedHat Enterprise Linux وتوزيعات أخرى (مثل Centos وFedora) مبدئيا SELinux، وهو وحدة Module تعمل مع نواة لينكس، لتنفيذ سياسات أمنيّة للتحكّم في الوصول. لكي يسمح SELinux لـSamba بالوصول إلى مجلّد أو ملفّ فإن هذا المجلّد يجب أن يُعلَّم باللّصيقة Label المسمّاة samba_share_t
. نستخدم الأمر semanage
على النحو التالي لتعليم المجلّد finance/
الذي أنشأناه سابقا والمجلّدات المتفرّعة عنه بهذه اللّصيقة:
# semanage fcontext -at samba_share_t "/finance(/.*)?"
ثم ننفّذ الأمر restorecon لتطبيق التعديلات:
# restorecon /finance
يجب أيضا التأكد من الجدار الناري Firewall يسمح بمرور البيانات من Samba وإليه عبر الشبكة. نضيف في ما يلي Samba إلى الخدمات المسموح بها على الجدار الناري ثم نعيد تحميل الإعدادات:
# firewall-cmd --permanent --add-service=samba # firewall-cmd --reload
إعداد مشاركة الملفات على Samba
نريد أن يكون أعضاء المجموعة finance
قادرين على تصفّح محتويات المجلّد finance/
الموجود على الخادوم وحفظ ملفّات عليه. ستكون الملفّات أو المجلّدات التي ينشئها أعضاء المجموعة finance
على الخادوم ذات أذون 0770
ومجموعة مالكة finance
. نفتح ملفّ الإعداد etc/samba/smb.conf/
ونضيف المحتوى التالي إلى آخر الملفّ:
[finance] comment=Directory for collaboration of the company's finance team browsable=yes path=/finance public=no valid users=@finance write list=@finance writeable=yes create mask=0770 force create mode=0770 force group=finance
احفظ الملفّ ثم نفّذ الأمر testparm
للتأكد من عدم وجود أخطاء في الصّياغة. يُظهِر الأمر أخطاء عند وجود أخطاء في صياغة ملف إعداد Samba وإلا فإن النتيجة تظهر ملخّصا بإعدادات Samba.
إن أردت إنشاء مجلّد متاح للجميع لتشارك الملفات فيمكنك إضافة مقطع جديد (باسم مختلف) في ملفّ إعداد Samba مع تغيير قيمة public
إلى yes
بدلا من no
وحذف تعليمتيْ valid users
وwrite list
.
إضافة مستخدمين إلى Samba
سنضيف المستخدميْن user1
و user2
الذين أنشأناهما سابقا إلى Samba باستخدام أمر smbpasswd
الذي يتعامل مع قاعدة بيانات Samba الداخليّة. يطلُب الأمر عند تنفيذه إعطاء كلمة سرّ للمستخدم؛ سيحتاج المستخدم كلمة السر هذه في ما بعد للاتصال بالخادوم والدخول إلى مجلّد التشارك:
# smbpasswd -a user1 # smbpasswd -a user2
أنهينا إعداد Samba لتشارك الملفات؛ بقي لنا إعادة تشغيل الخدمة لأخذ الإعدادات في الحسبان ثم إضافتها للخدمات التي تعمل مع بدء تشغيل النظام:
# systemctl start smb # systemctl enable smb
ثم نختبر الاتصال بخادوم تشارك الملفات (ستُطلب منك كلمة سرّ المستخدم user1
):
# smbclient -L localhost -U user1
نكون بهذه الخطوة قد أنهينا تثبيت خادوم Samba وإعداده لتشارك الملفات. سننتقل الآن إلى الحاسوب الثاني (العميل) لتجربة الاتصال عن طريقه بالخادوم.
تركيب مجلد Samba على عميل لينكس
نبدأ أولا بتثبيت حزم Samba الضرورية على العميل كالتالي:
$ su - Password # yum update # yum install samba samba-client samba-common cifs-utils
ثم نتأكّد بعد انتهاء التثبيت من وجود اتّصال بين العميل والخادوم بتنفيذ الأمر التالي (على العميل، 192.168.2.100
هو عنوان IP الخاصّ بالخادوم):
# smbclient –L 192.168.2.100 -U user2
نفّذ نفس الأمر مع المستخدم user1
.
يمكننا الآن تركيب Mount المجلّد finance/
الموجود على الخادوم (ذي العنوان 192.168.2.100
) كأي وسيط تخزين آخر كالتالي (ننشئ أولا مجلدا للتركيب عليه):
# mkdir /mnt/samba # mount //192.168.2.100/finance /mnt/samba -o username=user1
سيُطلَب منك إدخال كلمة سر المستخدم user1
التي أعددتها سابقا. إن لم يظهر خطأ فهذا يعني أن التركيب تمّ على ما يُرام. يمكنك التأكد من ذلك بتنفيذ الأمر mount
دون خيارات والبحث عن المجلّد finance
في النتائج:
# mount | grep "finance"
مثال على النتيجة:
//192.168.2.100/finance on /mnt/samba type cifs (rw,relatime,vers=1.0,cache=strict,username=user1,domain=LOCALHOST,uid=0,noforceuid,gid=0,noforcegid,addr=192.168.2.200,unix,posixpaths,serverino,acl,rsize=1048576,wsize=65536,actimeo=1)
ننفذ الأمر التالي لفصل المجلّد:
umount /mnt/samba
استخدم ملفّ etc/fstab/
إن أردت دوام تركيب المجلد. افتح الملفّ وأضف إليه السّطر التالي etc/fstab/
:
//192.168.2.100/finance /mnt/samba cifs credentials=/media/samba/.smbcredentials,defaults 0 0
حيثُ media/samba/.smbcredentials/
ملفّ مخفيّ يحوي سطرين؛ الأول اسم مستخدم يمكنه الوصول إلى المجلّد المتشارَك والثاني كلمة سر المستخدم:
username=user1 password=PasswordForUser1
نحدّد صلاحيّات الملفّ media/samba/.smbcredentials/
بـ600
وملكيّته root:root
(حتى لا يمكن لغير المستخدم الجذر الاطّلاع على فحواه). يمكن تركيب المجلّد مباشرة بعد تغيير ملفّ fstab
بتنفيذ الأمر mount -a
.
يمكننا الآن تجربة إنشاء ملفّ في مجلّد التشارك (الذي يوجد الآن على مسار التركيب mnt/samba/
):
# touch /mnt/samba/testfile1.txt
جرّب الدخول إلى الخادوم وسرد محتويات المجلّد finance/
؛ ستجد أن ملفا جديدا باسم testfile1.txt
قد أنشئ:
# ls -l total 0 -rwxrwx---. 1 user1 finance 0 Jun 8 03:29 testfile1.txt
لاحظ أن مالك الملفّ هو user1
والمجموعة المالكة هي finance
؛ كما أن الأذون هي 770
. يعود السبب في ذلك إلى إعدادات المشاركة التي ضبطناها في ملفّ الإعداد etc/samba/smb.conf
(تعليمتا force group=finance
و Force create mode=0770
).
ترجمة -وبتصرّف- للمقال Setting Up Samba and Configure FirewallD and SELinux to Allow File Sharing on Linux/Windows Clients – Part 6 لصاحبه Gabriel Cánepa.
أفضل التعليقات
لا توجد أية تعليقات بعد
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.