المحتوى عن 'samba'.



مزيد من الخيارات

  • ابحث بالكلمات المفتاحية

    أضف وسومًا وافصل بينها بفواصل ","
  • ابحث باسم الكاتب

نوع المُحتوى


التصنيفات

  • التخطيط وسير العمل
  • التمويل
  • فريق العمل
  • دراسة حالات
  • نصائح وإرشادات
  • التعامل مع العملاء
  • التعهيد الخارجي
  • التجارة الإلكترونية
  • الإدارة والقيادة
  • مقالات ريادة أعمال عامة

التصنيفات

  • PHP
    • Laravel
    • ووردبريس
  • جافاسكريبت
    • Node.js
    • jQuery
    • AngularJS
    • Cordova
  • HTML
    • HTML5
  • CSS
  • SQL
  • سي شارب #C
    • منصة Xamarin
  • بايثون
    • Flask
    • Django
  • لغة روبي
    • Sass
    • إطار عمل Bootstrap
    • إطار العمل Ruby on Rails
  • لغة Go
  • لغة جافا
  • لغة Kotlin
  • برمجة أندرويد
  • لغة Swift
  • لغة R
  • لغة TypeScript
  • ASP.NET
    • ASP.NET Core
  • سير العمل
    • Git
  • صناعة الألعاب
    • Unity3D
  • سهولة الوصول
  • مقالات برمجة عامة

التصنيفات

  • تجربة المستخدم
  • الرسوميات
    • إنكسكيب
    • أدوبي إليستريتور
    • كوريل درو
  • التصميم الجرافيكي
    • أدوبي فوتوشوب
    • أدوبي إن ديزاين
    • جيمب
  • التصميم ثلاثي الأبعاد
    • 3Ds Max
    • Blender
  • نصائح وإرشادات
  • مقالات تصميم عامة

التصنيفات

  • خواديم
    • الويب HTTP
    • قواعد البيانات
    • البريد الإلكتروني
    • DNS
    • Samba
  • الحوسبة السّحابية
    • Docker
  • إدارة الإعدادات والنّشر
    • Chef
    • Puppet
    • Ansible
  • لينكس
  • FreeBSD
  • حماية
    • الجدران النارية
    • VPN
    • SSH
  • مقالات DevOps عامة

التصنيفات

  • التسويق بالأداء
    • أدوات تحليل الزوار
  • تهيئة محركات البحث SEO
  • الشبكات الاجتماعية
  • التسويق بالبريد الالكتروني
  • التسويق الضمني
  • التسويق بالرسائل النصية القصيرة
  • استسراع النمو
  • المبيعات
  • تجارب ونصائح

التصنيفات

  • إدارة مالية
  • الإنتاجية
  • تجارب
  • مشاريع جانبية
  • التعامل مع العملاء
  • الحفاظ على الصحة
  • التسويق الذاتي
  • مقالات عمل حر عامة

التصنيفات

  • الإنتاجية وسير العمل
    • مايكروسوفت أوفيس
    • ليبر أوفيس
    • جوجل درايف
    • شيربوينت
    • Evernote
    • Trello
  • تطبيقات الويب
    • ووردبريس
    • ماجنتو
  • أندرويد
  • iOS
  • macOS
  • ويندوز

التصنيفات

  • شهادات سيسكو
    • CCNA
  • شهادات مايكروسوفت
  • شهادات Amazon Web Services
  • شهادات ريدهات
    • RHCSA
  • شهادات CompTIA
  • مقالات عامة

أسئلة وأجوبة

  • الأقسام
    • أسئلة ريادة الأعمال
    • أسئلة العمل الحر
    • أسئلة التسويق والمبيعات
    • أسئلة البرمجة
    • أسئلة التصميم
    • أسئلة DevOps
    • أسئلة البرامج والتطبيقات
    • أسئلة الشهادات المتخصصة

التصنيفات

  • ريادة الأعمال
  • العمل الحر
  • التسويق والمبيعات
  • البرمجة
  • التصميم
  • DevOps

تمّ العثور على 6 نتائج

  1. بدأنا في المقال السابق من سلسلة دروس RHCSA شرحَ كيفية إعداد وسائط التخزين المحليّة باستخدام parted و ssm وشرحنا كيفية إنشاء تجزئات معمّاة وتركيبها Mounting أثناء إقلاع النظام. نذكّر - كما أشرنا إلى ذلك خلال الدرس السابق - بخطورة تنفيذ مهام الإدارة الحرجة على أنظمة الملفّات أثناء تركيبها. سنراجع في هذا الدرس أهمّ صيغ نظم الملفات المستخدمة في Red Hat Enterprise Linux 7 ثم نغطّي مواضيع تركيب أنظمة الملفات الشبكية (CIFS و NFS)، استخدامها وفصلها؛ إما يدويا أو تلقائيا. سنتطرّق أيضا لماهية قوائم التحكم في الوصول Access control litsts, ACL. المتطلبات تأكد قبل المواصلة مع هذا الدرس من توفّرك على خادوميْ NFS وSamba لتشارك الملفات؛ تمكنك مراجعة الدرسيْن التاليّيْن لإعدادها: إعداد تشارك الملفات على RedHat Enterprise Linux باستخدام Samba. تثبيت نظام الملفات الشبكي NFS وتركيبه على أوبونتو. سنستخدم في هذا الدرس جهازيْن؛ الأول على العنوان 192.168.2.100 ويشغّل خدمتيْ Samba و NFS (لا يهمّ نظام التشغيل)؛ أما الثاني وهو العميل فيعمل بنظام RHEL 7 على العنوان 192.168.2.200؛ وهو الذي سنطبق عليه الخطوات المشروحة هنا. أنظمة الملفات على RHEL 7 اعتمد نظام التشغيل RHEL 7 نظام الملفات XFS مبدئيا نظرا لأدائه العالي وقابليته الكبيرة للتمدّد Scalability. يدعم XFS مبدئيا معيار user_xattr (خاصيّات المستخدم الموسَّعة Extended user attributes) وقوائم التحكم في الوصول ACL؛ وهو ما يعني أنك لا تحتاج للتصريح برغبتك في استخدام هذه الخيارات حتى تكون متاحة؛ عكسَ ماهو كائن في أنظمة الملفّات ext3 وext4 (تنصح ردهات بعدم استخدام نظام ext2 للملفات على RHEL 7) التي يتوجّب فيها ذكر هذه الخاصيّات، في ملفّ fstab على سبيل المثال. خاصيّات المستخدم الموسَّعة هي تمديد لخاصيات الملف وتأخذ صيغة “خاصيّة:قيمة”. تُربَط هذه الخاصيّات بملفّ أو مجلَّد وتُستخدَم لإضافة وظائف جديدة إلى نظام الملفّات؛ ترميز Encoding الملفّ، أو نوع mime الخاصّ به على سبيل المثال. قوائم التحكم في الوصول صُمّمت قوائم التحكم في الوصول ACL لتمكين مدير النظام من التحكّم في وصول المستخدمين إلى الملفّات بطريقة أكثر تفصيلا مما تتيحه الأذون التقليدية. سنعرض في الفقرات أدناه كيف تُستعمَل قوائم التحكّم في الوصول عمليا. يوجد نوعان من قوائم التحكم في الوصول؛ قوائم التحكم في الوصول الخاصّة بالنفاذ Access ACLs التي يمكن تطبيقها سواءً على الملفّات أو المجلّدات، وتلك المبدئية Default ACLs التي لا تُطبَّق إلا على المجلّدات. إن لم تُعيَّن قوائم تحكّم في الوصول لملفّات موجودة في مجلّد فإنها تأخذ قوائم التحكّم في الوصول المبدئية المطبّقة على المجلّد الأب. يمكن لقوائم التحكم في الوصول أن تُعدّ بالنسبة لمستخدم، مجموعة مستخدمين أو لمستخدم لا ينتمي لمجموعة المستخدمين المالكة للملفّ. نستخدم الأمر setfacl مع الخيار m- لضبط قوائم التحكّم في الوصول؛ ومع الخيار x- لحذفها. ننشئ في ما يلي مجموعة مستخدمين باسم academy ثم نضيف إليها المستخدمَيْن ahmed و fatima: # groupadd academy # useradd ahmed # useradd fatima # passwd ahmed New password: Retype new password: # passwd fatima New password: Retype new password: # usermod -a -G academy ahmed # usermod -a -G academy fatima ثم نتأكد من أن المستخدمَين ينتميان إلى المجموعة academy: # id ahmed uid=1006(ahmed) gid=1009(ahmed) groups=1009(ahmed),1008(academy) # id fatima uid=1007(fatima) gid=1010(fatima) groups=1010(fatima),1008(academy) يظهر جيدا أن المستخدميْن ينتميان إلى المجموعة academy إضافة لانتمائهما لمجموعة بنفس اسم المستخدم (تُنشَأ مع إنشاء المستخدم مجموعة تحمل نفس الاسم). سننشئ الآن مجلدا باسم playground داخل المجلّد mnt/، وننشئ داخله ملفّا باسم testfile.txt؛ ثم نجعل academy هي المجموعة المالكة للملفّ ونحدّد الأذون عليه بـ770 (أذون القراءة، الكتابة والتنفيذ لكل من المالك والمجموعة المالكة، ولا أذون لبقية المستخدمين): # mkdir /mnt/playground # touch /mnt/playground/testfile.txt # chown :academy /mnt/playground/testfile.txt # chmod 770 /mnt/playground/testfile.txt ثم ننتقل إلى الحساب ahmed ثم نكتب عن طريقه الجملة التالية في الملفّ mnt/playground/testfile.txt/، ونعود إلى الحساب الجذر: # su ahmed $ echo "My name is Ahmed" > /mnt/playground/testfile.txt $ exit نكرّر نفس الشيء مع الحساب fatima ولكن بكتابة جملة جديدة في آخر الملفّ: # su fatima $ echo "My name is Fatima" >> /mnt/playground/testfile.txt $ exit ملحوظة 1: استخدمنا عامل التوجيه << مع المستخدم الثاني (fatima) حتى لا نحذف ما أضافه المستخدم الأول (ahmed). ملحوظة 2: يعود السبب في كون ahmed و fatima يستطيعان الكتابة في الملف mnt/playground/testfile.txt/ إلى انتمائهما للمجموعة academy التي جعلناها مالكة الملف وأعطيناها كلّ الأذون عليه. سننشئ مستخدما ثالثا samir: # useradd samir # passwd samir New password: Retype new password: يريد samir الكتابة في الملفّ mnt/playground/testfile.txt/؛ ستخفق العمليّة كما هو متوقع نظرا لعدم امتلاكه إذن الكتابة في الملفّ. لكن ماذا إن أردنا إتاحة إمكانيّة الكتابة على الملفّ mnt/playground/testfile.txt/ للمستخدم samir، الذي لا ينتمي إلى المجموعة academy؟ الإجابة الآنية هي إضافته للمجموعة academy؛ لكن هذا سيمنحه إذن الكتابة على جميع الملفات التي تملكها المجموعة، وهو ما لا نرغب فيه. يمكننا استخدام قوائم التحكم في الوصول لهذا الغرض. يطلب الأمر setfacl عند استخدام الخيار m- التعديل على قوائم التحكم في الوصول الخاصّة بملفّ أو إضافتها، ويُستخدَم على النحو التالي: setfacl -m <rules> <files> حيث <files> ملفّ أو مجموعة ملفّات، و<rules> قواعد تأخذ إحدى الصيغ التاليّة: u:<uid>:<perms>: تضبُط قوائم التحكم في الوصول الخاصّة بالنفاذ على الملفّ بالنسبة لمستخدم؛ حيث uid معرّف المستخدم أو اسمه وperms الأذون التي نريد إعطاءها له. g:<gid>:<perms>: تضبط قوائم التحكم في الوصول الخاصّة بالنفاذ على الملفّ بالنسبة لمجموعة مستخدمين؛ حيث gid معرّف المجموعة أو اسمها وperms الأذون التي نريد إعطاءها له. m:<perms>: تحدّد قناع الأذون الفعلية Effective rights mask؛ وهي طريقة لتقييد الأذون الممنوحة للمستخدمين أو المجموعات غير المستخدم المالك والمجموعة المالكة o:<perms>: تعيّن قوائم التحكم في الوصول الخاصّة بالنفاذ بالنسبة المستخدمين غير المنتمين للمجموعة المالكة للملفّ. نحصُل على ما نريد بتطبيق القاعدة الأولى على الملفّ mnt/playground/testfile.txt/: # setfacl -m u:samir:rwx /mnt/playground/testfile.txt يضيف الأمر أعلاه قائمة للتحكم في الوصول تعطي للمستخدم samir أذون الكتابة w، القراءة r والتنفيذ x على الملفّ mnt/playground/testfile.txt/. يمكن الآن للمستخدم samir الكتابة في الملف mnt/playground/testfile.txt/. استخدم الأمر getfacl لعرض قوائم التحكم في الوصول بالنسبة لملفّ أو مجلّد: # getfacl /mnt/playground/testfile.txt getfacl: Removing leading '/' from absolute path names # file: mnt/playground/testfile.txt # owner: root # group: academy user::rwx user:samir:rwx group::rwx mask::rwx other::--- بالنسبة لقوائم التحكم في الوصول المبدئية فيمكن ضبطها بإضافة حرف d قبل القاعدة على النحو التالي (حيث directory مسار المجلّد): # setfacl -m d:o:r <directory> ستسمح قائمة التحكم في الوصول المبدئية التي عرّفها الأمر السابق لجميع المستخدمين غير الأعضاء في المجموعة المالكة بالحصول على إذن قراءة المحتويات التي ستضاف للمجلّد مستقبلا. تطبّق هذه القائمة على كل عنصر يُضاف إلى المجلّد ما لم تحدَّد له قائمة تحكم خاصّة به. لاحظ الفرق في نتيجة تنفيذ الأمر getfacl قبل ضبط قوائم التحكم في الوصول المبدئية وبعدها: # getfacl /mnt/playground/ getfacl: Removing leading '/' from absolute path names # file: mnt/playground/ # owner: root # group: root user::rwx group::r-x other::r-x # setfacl -m d:o:r /mnt/playground # getfacl /mnt/playground/ getfacl: Removing leading '/' from absolute path names # file: mnt/playground/ # owner: root # group: root user::rwx group::r-x other::r-x default:user::rwx default:group::r-x default:other::r-- تركيب نظام الملفات الشبكي NFS يُستخدَم الأمر showmount -e لسرد مجلدات NFS المتاحة على الخادوم. يتوفّر الأمر ضمن حزمة nfs-utils، لذا يجب أولا تثبيت هذه الحزمة: # yum update && yum install nfs-utils ثم ننفّذ الأمر: # showmount -e 192.168.2.100 Export list for 192.168.2.100: /share 192.168.2.200 تشير نتيجة الأمر أعلاه إلى أن الخادوم على العنوان 192.168.2.100 يتشارك المجلّد share/ مع العنوان 192.168.2.200 (عنوان الجهاز الذي نستخدمه). يمكن استخدام أمر mount لتركيب مجلدات متشاركة عبر نظام NFS على نظام الملفّات المحلي كالتالي: # mount -t nfs -o [options] remote_host:/remote/directory /local/directory حيث options خيارات التركيب (ليست ضرورية)، remote_host عنوان الخادوم الذي توجد عليه الملفّات المتشاركة، remote/directory/ مسار الملفّ على الخادوم البعيد وlocal/directory/ مسار التركيب على نظام الملفّات المحلي. يُكتَب الأمر في حالتنا (share/ هو مسار المجلد على الخادوم، كما يظهر في نتيجة الأمر showmount السابق؛ وmnt/nfs/ هو مجلد أنشأناه على نظام الملفات المحلي للتركيب عليه): # mkdir /mnt/nfs # mount -t nfs 192.168.2.100:/share /mnt/nfs ملحوظة: إن حصلت على خطأ Job for rpc-statd.service failed فهذا يعني أن الخدمة rpcbind التي يستغلها النظام للتواصل مع نظام الملفات الشبكي غير مشغَّلة. نفذ - في هذه الحالة - الأمرين التاليين لتشغيلها وتفعيلها مع إقلاع النظام: # systemctl enable rpcbind.socket # systemctl restart rpcbind.service ثم أعد تشغيل الجهاز وأعد تنفيذ أمر التركيب السابق. يتيح الأمر mount تركيب المجلدات للعمل عليها، لكن هذا التركيب لا يدوم لما بعد إعادة تشغيل النظام؛ إن أردنا جعل التركيب دائما فيجب أن نضيف سطرا جديدا إلى ملفّ etc/fstab/ المعدّ لهذا الغرض؛ يأخذ السطر الهيئة التالية: remote_host:/remote/directory /local/directory nfs options 0 0 تمكن ملاحظة أن المتغيرات المستخدمة هي نفسها المستخدمة مع أمر mount؛ المختلف هنا هو التموضع. يكون السطر - بعد تطبيق هذه الهيئة على حالتنا - على النحو التالي: 192.168.2.100:/share /mnt/nfs nfs defaults 0 0 تركيب ملفات Samba يكثُر استخدام خادوم Samba لتشارك الملفات في البيئات المختلطة (أنظمة تشغيل مختلفة، مثل وندوز ولينكس). تتيح أداة smbclient التي تأتي ضمن الحزمة samba-client، عرض الملفات المتوفّرة للتشارك عن طريق Samba: # smbclient -L 192.168.2.100 -U samba_user Enter samba_user's password: Domain=[MYGROUP] OS=[Windows 6.1] Server=[Samba 4.2.10] Sharename Type Comment --------- ---- ------- samba_share Disk Directory for collaboration IPC$ IPC IPC Service (Samba Server Version 4.2.10) samba_user Disk Home Directories Domain=[MYGROUP] OS=[Windows 6.1] Server=[Samba 4.2.10] Server Comment --------- ------- Workgroup Master --------- ------- سيُطلب منك إدخال كلمة سر المستخدم samba_user؛ الذي هو عضو في مستخدمي Samba على الخادوم. راجع مقال إعداد تشارك الملفات على RedHat Enterprise Linux باستخدام Samba للمزيد من التفاصيل عن إعداد Samba لمشاركة الملفات. ستحتاج من أجل تركيب مجلدات متشاركة عبر خادوم Samba لتثبيت الحزمة cifs-utils على العميل (جهازك): # yum update && yum install cifs-utils ثم استخدم الأمر mount على النحو التالي: # mount -t cifs -o credentials=/path/to/credentials/file //remote_host/samba_share /local/directory يحدّد الخيار credentials ملفّا لمعلومات استثياق مستخدم يحقّ له الوصول إلى المجلدات المتشاركة على الخادوم، remote_host هو عنوان الخادوم؛ samba_share اسم المجلد المتشارَك على الخادوم كما يظهر في نتيجة الأمر smbclient وlocal/directory/ مسار مجلد التركيب المحلي. ننشئ قبل تنفيذ أمر التركيب مجلدا خاصا لهذا الغرض: # mkdir /mnt/samba ثم ننشئ ملفّ الاستيثاق smbcredentials.، وهو ملفّ مخفي، في المجلد الشخصي للمستخدم الجذر (/root/) مع تحديد الأذون بـ600 حتى لا يمكن لغير المستخدم الجذر قراءة محتواه. نضع داخل ملفّ الاستيثاق البيانات على النحو التالي: username=samba_user password=samba_user password تحدّد قيمة المعطى الأول اسمَ المستخدم، وقيمةُ المعطى الثاني كلمةَ السر. # mount -t cifs -o credentials=/root/.smbcredentials //192.168.2.100/samba_share /mnt/samba إن أردت جعل الملفّ متاحا تلقائيا فيمكنك إضافة سطر على النحو التالي إلى ملفّ etc/fstab/: //192.168.0.10/samba_share /mnt/samba cifs credentials=/root/.smbcredentials,defaults 0 0 يمكن حذف ملفّ الاستيثاق (خيار credentials) إذا كان المجلد على الخادوم متاحا للعموم. يجب الانتباه إلى أنه يجب ليُركَّب المجلّد - في حالتيْ NFS وSamba - أن يكون الخادوم حيث توجد مجلدات التشارك متاحا عبر الشبكة. لا تكتف بقراءة الدرس؛ طبّق ما قرأته أكثر من مرة بطرق الخاصّة واستخدم قسم الأسئلة إن واجهتك مشكلة (مع تحديدها). ترجمة -وبتصرّف- للمقال RHCSA Series: Using ACLs (Access Control Lists) and Mounting Samba / NFS Shares – Part 7 لصاحبه Gabriel Cánepa.
  2. تعتمد الكثير من بيئات المؤسسات التي توجد بها حواسيب بنُظم تشغيل مختلفة (توزيعات لينكس أو وندوز) على خادوم 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.
  3. الوصول إلى مشاركة سامبا من بين استخدامات Samba نجد الاندماج مع شبكة ويندوز موجودة مسبقًا، وبعد أن يصبح سامبا جزءًا من نطاق Active Directory، فيمكن لخدمة سامبا توفير خدمات مشاركة الملفات والطباعة إلى مستخدمي AD. أبسط طريقة للانضمام إلى نطاق AD هي استخدام Likewise-open؛ لإرشادات تفصيلية، انظر إلى «Likewise Open Installation and Administration Guide». بعد أن يصبح جزءًا في نطاق Active Directory؛ أدخِل الأمر الآتي في الطرفية: sudo apt-get install samba smbfs smbclient ثم عدِّل الملف ‎/etc/samba/smb.conf مُغيِّرًا: workgroup = EXAMPLE ... security = ads realm = EXAMPLE.COM ... idmap backend = lwopen idmap uid = 50-9999999999 idmap gid = 50-9999999999 أعد تشغيل سامبا لتأخذ التعديلات الجديدة تأثيرها: sudo restart smbd sudo restart nmbd يجب أن تكون الآن قادرًا على الوصول إلى أي من مشاركات سامبا من عميل Windows؛ لكن للتأكد من إعطاء مستخدمي أو مجموعات AD الملائمة الوصول إلى مجلد مشترك؛ راجع الدرس «تأمين خادوم سامبا لتخديم الملفات والطباعة» لمزيدٍ من التفاصيل. الوصول إلى مشاركة ويندوز بعد أن أصبح خادوم سامبا جزءًا من نطاق Active Directory فتستطيع الوصول إلى أيّة مشاركات من خادوم ويندوز: أدخِل الأمر الآتي في الطرفية لوصل مشاركة من ويندوز: mount.cifs //fs01.example.com/share mount_point من الممكن الوصول إلى مشاركات على حواسيب ليست جزءًا من نطاق AD، لكن يجب توفير اسم مستخدم وكلمة مرور للوصول إليها. لوصل مشاركة مجلد أثناء الإقلاع، أضف قيدًا في ملف ‎/etc/fstab؛ على سبيل المثال: //192.168.0.5/share /mnt/windows cifs auto,username=steve,password=secret,rw 0 0 طريقة أخرى لنسخ الملفات من خادوم ويندوز هي استخدام الأداة smbclient؛ فلعرض الملفات في مشاركة ويندوز: smbclient //fs01.example.com/share -k -c "ls" لنسخ ملف من مشاركة، اكتب الأمر: smbclient //fs01.example.com/share -k -c "get file.txt" الأمر السابق سينسخ الملف file.txt إلى مجلد العمل الحالي. ولنسخ ملف إلى المشاركة: smbclient //fs01.example.com/share -k -c "put /etc/hosts hosts" الأمر السابق سينسخ الملف ‎ /etc/hostsإلى ‎//fs01.example.com/share/hosts. الخيار ‎-c المُستخدَم في الأوامر السابقة يسمح لك بتنفيذ أمر smbclient مباشرةً؛ وهذا يفيد في كتابة السكربتات والعمليات البسيطة على الملفات؛ للدخول إلى مِحَث smb‎: \>‎؛ مثل محث FTP حيث تُنفَّذ أوامر لمعالجة الملفات العادية والمجلدات، فنفِّذ الأمر: smbclient //fs01.example.com/share -k ملاحظة: استبدل كل أماكن ورود fs01.example.com، و ‎//192.168.0.5/share، و username=steve,password=secret و file.txt بعنوان IP للخادوم، واسم المشاركة، واسم الملف، واسم المستخدم الحقيقي وكلمة مروره بالقيم الملائمة. مصادر لخياراتٍ إضافية للأمر smbclient، راجع صفحة الدليل man smbclient. صفحة دليل man mount.cifs هي أيضًا مرجع مفيد لمعلومات تفصيلية. ترجمة -وبتصرف- للمقال Ubuntu Server Guide: Active Directory Integration with Samba.
  4. ubuntu server guide

    على الرغم من أن سامبا لا يمكن أن يكون Active Directory Primary Domain Controller‏ (PDC)، لكن يمكن أن يُضبَط خادوم سامبا ليظهر كمتحكم من نمط Windows NT4؛ ميزة لهذا الضبط هي قابلية جعل تصاريح المستخدمين والحواسيب مركزية؛ يمكن أيضًا أن يَستخدم سامبا عدِّة أنواع من السند الخلفي (backends) لتخزين بيانات المستخدم. متحكم رئيسي بالنطاق يشرح هذا القسم طريقة ضبط سامبا ليعمل كمتحكم رئيسي بالنطاق (PDC) باستخدام السند الخلفي الافتراضي smbpasswd. 1. أولًا، ثبِّت سامبا و libpam-smbpass لمزامنة حسابات المستخدمين؛ وذلك بإدخال اﻷمر الآتي في الطرفية: sudo apt-get install samba libpam-smbpass 2. ثم اضبط سامبا بتعديل الملف ‎/etc/samba/smb.conf؛ حيث يجب أن يُضبَط نمط security إلى user؛ ويجب أن تتعلق workgroup بمنظمتك: workgroup = EXAMPLE ... security = user 3. في قسم «Domains» المحاط بتعليقات، أضف أو أزل التعليق عمَّا يلي (قُسِّم آخر سطر إلى قسمين ليظهر بشكلٍ مفهوم): domain logons = yes logon path = \\%N\%U\profile logon drive = H: logon home = \\%N\%U logon script = logon.cmd add machine script = sudo /usr/sbin/useradd -N -g machines -c Machine -d /var/lib/samba -s /bin/false %u ملاحظة: إذا أردت عدم استخدام «Roamin Profiles» فاترك الخيارين «logon home» و «logon path» مسبوقَين بتعليق. domain logons: يوفر خدمة netlogon مما يجعل سامبا يتصرف كمتحكم بالنطاق. logon path: يضع ملف profile الخاص بويندوز في مجلد المنزل للمستخدم؛ من الممكن ضبط مشاركة [profiles] ووضع كل ملفات profile في مجلد واحد. logon home: تحديد مكان مجلد المنزل. logon script: تحديد السكربت الذي يُشغَّل محليًا بعد أن يُسجِّل المستخدم دخوله؛ يجب أن يوضع السكربت في مشاركة [netlogon]. add machine script: السكربت الذي يُنشِئ تلقائيًا الحساب Machine Trust الضروري لكي تنضم محطة العمل (workstation) إلى النطاق. في هذا المثال، أُنشِئت المجموعة machines بالأداة addgroup؛ راجع درس إدارة المستخدمين قسم «إضافة وحذف المستخدمين» لمزيدٍ من التفاصيل. 4. أزل التعليق عن مشاركة [homes] للسماح بربط logon home: [homes] comment = Home Directories browseable = no read only = no create mask = 0700 directory mask = 0700 valid users = %S 5. بعد أن يُضبَط كمتحكم بالنطاق، يجب أن تُضبَط الآن المشاركة [netlogon]، أزل التعليق عما يلي لتفعيل تلك المشاركة: [netlogon] comment = Network Logon Service path = /srv/samba/netlogon guest ok = yes read only = yes share modes = no ملاحظة: مسار مشاركة netlogon الافتراضي هو ‎/home/samba/netlogon؛ لكن وفقًا لمعيار هيكلة نظام الملفات (FHS)، إن ‎/srv هو المسار الصحيح للبيانات الموفرة من الخادوم. 6. أنشِئ الآن مجلد netlogon وملف سكربت logon.cmd فارغًا (حاليًا): sudo mkdir -p /srv/samba/netlogon sudo touch /srv/samba/netlogon/logon.cmd يمكنك إدخال أوامر سكربت Windows Logon في ملف logon.cmd لتخصيص بيئة العميل. 7. أعد تشغيل سامبا لتفعيل المتحكم بالنطاق الجديد: sudo restart smbd sudo restart nmbd 8. في النهاية، هنالك بعض الأوامر الإضافية لضبط الحقوق الملائمة. لما كان حساب الجذر معطلًا افتراضيًا، ولكي تنضم محطة عمل إلى النطاق، فيجب أن تُربَط مجموعة في النظام إلى مجموعة Windows Domain Admins؛ أدخِل الأمر الآتي الذي يستخدم الأداة net: sudo net groupmap add ntgroup="Domain Admins" unixgroup=sysadmin rid=512 type=d ملاحظة: عدِّل sysadmin إلى المجموعة التي تفضلها؛ وأيضًا يجب أن يكون المستخدم الذي ينضم إلى النطاق عضوًا في المجموعة sysadmin ومجموعة النظام admin، التي تسمح باستخدام sudo. إذا لم يحصل المستخدم على تصاريح سامبا بعد؛ فيمكنك إضافتها باستخدام الأداة smbpasswd، لا تنسَ تعديل اسم sysadmin ليلائم نظامك: sudo smbpasswd -a sysadmin أيضًا، يجب أن تكون الحقوق المعطاة إلى مجموعة Domain Admins مُحدَّدةً للسماح لإضافة machine script (والوظائف الإدارية الأخرى) بأن تعمل؛ ويمكن فعل ذلك بالأمر: net rpc rights grant -U sysadmin "EXAMPLE\Domain Admins" \ SeMachineAccountPrivilege \ SePrintOperatorPrivilege SeAddUsersPrivilege \ SeDiskOperatorPrivilege SeRemoteShutdownPrivilege 9. يجب أن تكون الآن قادرًا على ضم عملاء ويندوز إلى النطاق بنفس الطريقة التي ينضمون فيها إلى نطاق NT4 يعمل على خادوم ويندوز. متحكم احتياطي بالنطاق بوجود متحكم رئيسي بالنطاق (PDC) في الشبكة، فمن الأفضل وجود متحكم احتياطي بالنطاق (BDC) أيضًا؛ مما يسمح باستيثاق العملاء في حال أصبح المتحكم الرئيسي غير متوفرٍ. عندما تضبط سامبا كمتحكم احتياطي، فستحتاج إلى آلية لمزامنة معلومات الحسابات مع المتحكم الرئيسي؛ هنالك عدِّة طرق لفعل ذلك تتضمن scp، أو rsync، أو باستخدام LDAP كسند passdb خلفي. استخدام LDAP هو أكثر الطرق مرونةً لمزامنة معلومات الحسابات، ﻷن كلا المتحكمَين بالنطاق يستخدمان نفس المعلومات في الوقت الحقيقي؛ لكن إعداد خادوم LDAP هو أمرٌ زائد التعقيد لشبكة تحتوي عددًا قليلًا من حسابات المستخدمين والحواسيب؛ راجع درس «استخدام سامبا مع LDAP» للتفاصيل. أولًا، ثبِّت samba و libpam-smbpass، وذلك بإدخال الأمر الآتي في الطرفية: sudo apt-get install samba libpam-smbpass عدِّل الآن ملف ‎/etc/samba/smb.conf وأزل التعليق عمّا يلي في قسم [global]: workgroup = EXAMPLE ... security = user في قسم Domains المحاط بتعليق، أضف أو أزل التعليق عن: domain logons = yes domain master = no تأكد أن المستخدم لديه الحقوق لقراءة الملفات في ‎/var/lib/samba؛ على سبيل المثال، للسماح لمجموعة admin بنقل الملفات عبر scp، فأدخِل الأمر: sudo chgrp -R admin /var/lib/samba ثم، زامن حسابات المستخدمين، باستخدام scp لنسخ مجلد ‎/var/lib/samba من PDC: sudo scp -r username@pdc:/var/lib/samba /var/lib ملاحظة: استبدل username باسم مستخدم صالح، و pdc باسم PDC أو عنوان IP له. ثم في النهاية، أعِد تشغيل سامبا: sudo restart smbd sudo restart nmbd يمكنك اختبار عمل متحكم النطاق الاحتياطي بإيقاف عفريت سامبا في PDC، ثم محاولة تسجيل الدخول من عميل ويندوز موجود في النطاق. شيء آخر لتبقيه في بالك أنَّه إذا ضُبِط الخيار logon home إلى مجلد في PDC، فإذا أصبح PDC غير متوفرٍ، فإن الوصول إلى قرص المنزل للمستخدم سيصبح متعذرًا؛ لهذا السبب من الأفضل ضبط logon home ليقبع في خادوم ملفات منفصل عن PDC و BDC. مصادر الفصل الرابع والخامس من «Samba HOWTO Collection» يشرحان طريقة ضبط خادوم سامبا ليكون متحكمًا رئيسيًا واحتياطيًا بالنطاق على التوالي وبالترتيب. ترجمة -وبتصرف- للمقال Ubuntu Server Guide: Samba as a domain controller.
  5. أنماط حماية سامبا هنالك مستويان أمنيان متوفران لبروتوكول الشبكة «نظام ملفات الإنترنت الشائع» (Common Internet Filesystem اختصارًا CIFS) هما user-level و share-level؛ نمط الحماية المستخدم في سامبا يسمح بمرونة زائدة، موفرًا أربع طرق لاستخدام الحماية من مستوى user-level وطريقة لاستخدام share-level: النمط security=user: يتطلب من العملاء توفير اسم مستخدم وكلمة مرور للاتصال إلى المشاركات؛ حسابات المستخدمين في سامبا منفصلة عن حسابات مستخدمي النظام، لكن الحزمة libpam-smbpass ستُزامن مستخدمي النظام وكلمات مرورهم مع قاعدة بيانات مستخدمي سامبا. النمط security=domain: هذا النمط يسمح لخادوم سامبا بأن يَظهر لعملاء ويندوز كالمتحكم الرئيسي بالنطاق (Primary Domain Controller اختصارًا PDC)، أو متحكم الاحتياطي بالنطاق (Backup Domain Controller اختصارًا BDC)، أو خادوم عضو في النطاق (Domain Member Server اختصارًا DMS)، وسنشرح ذلك في الدرس القادم. النمط security=ADS: السماح لخادوم سامبا بالانضمام إلى نطاق Active Directory كعضو أصيل (native member). النمط security=server: هذا النمط تُرِك قبل أن يتمكن سامبا من أن يصبح خادومًا عضوًا، وبسبب بعض المشاكل الأمنية، فلا يجب أن يُستخدَم؛ راجع قسم «Server Security» من دليل سامبا لمزيدٍ من التفاصيل. النمط security=share: يسمح لجميع العملاء بالاتصال إلى المشاركات دون توفير اسم مستخدم وكلمة مرور. يعتمد اختيارك لنمط الحماية بالبيئة التي تعمل فيها وما الذي تريد من خادوم سامبا أن يُنجزه. النمط Security = User سيعيد هذا القسم ضبط خادوم سامبا لمشاركة الملفات والطباعة من القسمين السابقين، كي يتطلب الاستيثاق. أولًا، ثبِّت الحزمة libpam-smbpass التي ستزامن مستخدمي النظام إلى قاعدة بيانات مستخدمي سامبا: sudo apt-get install libpam-smbpass ملاحظة: لو اخترت مهمة «Samba Server» أثناء التثبيت، فستكون الحزمة libpam-smbpass مثبَّتةً مسبقًا. عدِّل الملف ‎/etc/samba/smb.conf، وعدِّل ما يلي في قسم [share]: guest ok = no في النهاية، أعد تشغيل سامبا لكي تأخذ الإعدادات الجديدة مفعولها: sudo restart smbd sudo restart nmbd سيُطلَب منك الآن إدخال اسم مستخدم وكلمة مرور عند الاتصال إلى المجلدات المشاركة أو الطابعات. ملاحظة: إذا اخترت ربط قرص شبكي للمشاركة، فعليك تفعيل الحقل «Reconnect at Logon»؛ مما يجعله يطلب اسم المستخدم وكلمة المرور مرةً واحدةً فقط، على الأقل إلى أن تُغيَّر كلمة المرور. تأمين المشاركة هنالك عدِّة خيارات متوفرة لزيادة الحماية لمشاركات المجلدات المنفصلة؛ وباستخدام مثال «[share]»، فسيشرح هذا القسم بعض الخيارات الشائعة. المجموعات تُعرِّف المجموعات تشكيلةً من الحواسيب أو المستخدمين الذي يملكون وصولًا متكررًا إلى مورد شبكي معين؛ على سبيل المثال، إذا عُرِّفت المجموعة qa وكانت تحتوي على المستخدمين freda، و danika، و rob؛ ومجموعة ثانية هي support تحتوي على المستخدمين danika، و jeremy، و vincent؛ وضُبِط مورد شبكي معيّن للسماح بالوصول إلى المجموعة qa، والذي بدوره سيمنح المستخدمين freda، و danika، و rob وصولًا لكن ليس jeremy أو vincent؛ ولما كان المستخدم danika ينتمي إلى كلي المجموعتين qa و support؛ فسيتمكن من الوصول إلى الموارد التي يُسمَح لكلا المجموعتين بالوصول إليها، بينما كل المستخدمين الباقيين سيقيدون بالموارد التي تسمح بوصول مجموعتهم إليها. يبحث سامبا عن المجموعات في النظام المحلي المُعرَّفة في ‎/etc/group ليحدد أي مستخدم ينتمي إلى أي مجموعة؛ للمزيد من المعلومات حول إضافة أو إزالة المستخدمين من المجموعات، راجع القسم «إضافة وحذف المستخدمين» من درس إدارة المستخدمين. عند تعريف المجموعات في ملف ضبط سامبا،‏ ‎/etc/samba/smb.conf؛ فإن الصيغة المتعارف عليها هي بدء اسم المجموعة بالرمز «@»؛ على سبيل المثال، إذا أردت تعريف مجموعة مسماة sysadmin في قسم محدد من ملف ‎/‎etc/samba/smb.conf، فعليك إدخال اسم المجموعة ‎@sysadmin. أذونات الملف تُعرِّف أذونات الملف الحقوق المحددة التي يملكها حاسوب أو مستخدم على مجلد أو ملف أو مجموعة ملفات؛ يمكن تعريف هذه الأذونات بتعديل الملف ‎/etc/samba/smb.conf وتحديد الأذونات لمشاركة ملف معيّن. على سبيل المثال، لو عَرَّفتَ مشاركة سامبا اسمها share وأردت إعطاء أذونات «للقراءة فقط» لمجموعة المستخدم qa؛ لكنك تريد السماح بالكتابة لمجموعة اسمها sysadmin ومستخدم اسمه vincent، فعليك تعديل الملف ‎/etc/samba/smb.conf وإضافة القيود الآتية تحت قيد [share]: read list = @qa write list = @sysadmin, vincent طريقة أخرى لضبط الأذونات في سامبا هي التصريح عن أذونات «إدارية» لمورد معيّن مُشارَك؛ حيث يمكن للمستخدمين الذي يملكون أذونات إدارية قراءة أو كتابة أو تعديل أيّة معلومات موجودة في المورد الذي أُعطي ذاك المستخدم أذوناتٍ إدارية خاصة عليه. على سبيل المثال، إذا أردت إعطاء المستخدم melissa أذوناتٍ إدارية للمشاركة share، فعليك تعديل الملف ‎/etc/samba/smb.conf وإضافة الأسطر الآتية تحت القيد [share]: admin users = melissa بعد تعديل الملف ‎/etc/samba/smb.conf، أعد تشغيل سامبا كي تأخذ التعديلات مجراها: sudo restart smbd sudo restart nmbd ملاحظة: لكي تعمل «read list» و «write list»، لا يجب أن يكون نمط حماية المستخدم في سامبا مضبوطًا إلى security = share. ضُبِط الآن سامبا ليحدد أيّة مجموعات تملك الوصول إلى مجلد مُشارَك، يجب الآن تحديث أذونات نظام الملفات. نظام أذونات لينُكس التقليدي لا يترابط جيدًا مع قوائم التحكم بالوصول في ويندوز (NT (Windows NT Access Control Lists اختصارًا ACLs؛ لحسن الحظ، توجد POSIX ACLs في خواديم أوبنتو موفرةً تحكمًا أفضل؛ على سبيل المثال، للسماح باستخدام ACLs على ‎/srv بنظام ملفات EXT3، فعدِّل الملف ‎/etc/fstab وأضف الخيار acl كما يلي: UUID=66bcdd2e-8861-4fb0-b7e4-e61c569fe17d /srv ext3 noatime,relatime,acl 0 1 ثم أعد وصل القسم: sudo mount -v -o remount /srv ملاحظة: تفترض الأوامر السابقة أن ‎/srv على قسمٍ مختلف؛ إذا كان ‎/srv، أو أي مسار آخر تختار مشاركته، هو جزء من قسم الجذر /، فربما عليك إعادة إقلاع النظام. لمطابقة ضبط سامبا، فستُعطى المجموعة sysadmin أذونات القراءة والكتابة والتنفيذ إلى ‎/srv/samba ‎/share، وستُعطى المجموعة qa إذنَيّ القراءة والتنفيذ؛ وستُملَك الملفات من المستخدم melissa. أدخِل الأوامر الآتية في الطرفية: sudo chown -R melissa /srv/samba/share/ sudo chgrp -R sysadmin /srv/samba/share/ sudo setfacl -R -m g:qa:rx /srv/samba/share/ ملاحظة: الأمر setfacl السابق يعطي أذونات التنفيذ إلى جميع الملفات في المجلد ‎/‎srv/samba/share، ربما يكون أو لا يكون هذا ما تريده. الآن من عميل ويندوز، يجب أن تلاحظ تطبيق الأذونات الجديدة للملف؛ راجع صفحات دليل acl و setfacl لمزيد من المعلومات حول POSIX ACLs. ملف ضبط سامبا لبرمجية AppArmor يأتي أوبنتو مع وحدة الحماية AppArmor، الذي يوفر تحكمًا مقيّدًا للوصول؛ ملف الضبط الافتراضي الخاص ببرمجية AppArmor لخدمة سامبا يجب أن يلائم ضبطك، للمزيد من التفاصيل حول استخدام AppArmor راجع درس AppArmor. هنالك ملفات ضبط افتراضية لكلي ‎/usr/sbin/smbd و ‎/usr/sbin/nmbd (الملفات الثنائية لعفريت سامبا) كجزءٍ من حزمة apparmor-profiles؛ أدخِل الأمر الآتي من الطرفية لتثبيت الحزمة: sudo apt-get install apparmor-profiles apparmor-utils افتراضيًا، تكون ملفات الضبط لعفريتي smbd و nmbd في وضع «البناء» مما يسمح لخدمة سامبا بالعمل دون تعديل ملف الضبط، وستُسجَّل الأخطاء فقط؛ لجعل ملف ضبط smbd في وضع «الإجبار»، ولكي يعمل سامبا كما يجب، فيجب أن يُعدَّل ملف الضبط لتضمين المجلدات التي تمت مشاركتها. عدِّل ملف ‎/etc/apparmor.d/usr.sbin.smbd مضيفًا معلومات [share]: /srv/samba/share/ r, /srv/samba/share/** rwkix, ضع الملف في وضع «الإجبار» وأعد تحميله: sudo aa-enforce /usr/sbin/smbd cat /etc/apparmor.d/usr.sbin.smbd | sudo apparmor_parser -r يجب أن تكون قادرًا على قراءة وكتابة وتنفيذ الملفات في المجلد المُشارَك كالمعتاد، لكن smbd يملك الآن حق الوصول إلى الملفات والمجلدات المضبوطة فقط؛ تأكد من إضافة القيود لكل مجلد تضبط مشاركته في سامبا؛ وستسجل أيضًا أيّة أخطاء إلى ‎/var/log/syslog. مصادر الفصل الثامن عشر من «Samba HOWTO Collection» مخصصٌ للحماية. للمزيد من المعلومات حول Samba و ACLs، راجع الصفحة «Samba ACLs». راجع أيضًا صفحة ويكي أوبنتو «Samba». ترجمة -وبتصرف- للمقال Ubuntu Server Guide: Securing File and Printer.
  6. تتألف شبكات الحواسيب عادةً من خليط من أنظمة التشغيل، وعلى الرغم من أن شبكة مبنية كاملًا من حواسيب بأنظمة خادوم وسطح مكتب أوبنتو يمكن أن تكون ذات فائدة عظيمة؛ إلّا أن بعض بيئات الشبكة يجب أن تحتوي على أنظمة أوبنتو ومايكروسوفت® ويندوز® تعمل سويةً بتناغم؛ سيقدم هذا الدرس المبادئ الأساسية والأدوات المستخدم في ضبط خادوم أوبنتو لمشاركة موارد الشبكة مع حواسيب ويندوز. مقدمة يتطلب التواصل الشبكي الناجح بين خادوم أوبنتو وعملاء ويندوز توفير ودمج الخدمات الشائعة لبيئات ويندوز؛ تساعد مثل هذه الخدمات في مشاركة البيانات والمعلومات عن الحواسيب والمستخدمين الموجودين في الشبكة، ويمكن تصنيفها تحت ثلاثة تصنيفات للوظائف التي تؤديها: خدمات مشاركة الملفات والطابعات. استخدام بروتوكول «Server Message Block» (اختصارًا SMB) لتسهيل مشاركة الملفات والمجلدات والأقراص ومشاركة الطابعات عبر الشبكة. خدمات الدليل (Directory). مشاركة المعلومات الحيوية عن الحواسيب ومستخدمي الشبكة باستخدام تقنيات مثل LDAP و ®Microsoft Active Directory. الاستيثاق والوصول. التحقق من هوية حاسوب أو مستخدم للشبكة وتحديد المعلومات التي يُصرَّح للحاسوب أو المستخدم بالوصول إليها عبر تقنيات مثل أذونات الملفات، وسياسات المجموعات، وخدمة الاستيثاق Kerberos. لحسن الحظ، يمكن لخادوم أوبنتو توفير هذه الخدمات إلى عملاء ويندوز ومشاركة موارد الشبكة معهم؛ واحد من أهم البرمجيات التي يتضمنها نظام أوبنتو للتعامل الشبكي مع ويندوز هو مجموعة أدوات وتطبيقات خادوم SMB المُسمى سامبا. سيقدم هذا الدرس بعض حالات استخدام سامبا الشائعة، وطريقة تثبيت وضبط الحزم الضرورية؛ تفاصيلٌ إضافيةٌ يمكن العثور عليها في موقع سامبا. خادوم الملفات أحد أشهر الطرق للتواصل الشبكي بين أوبنتو وويندوز هو ضبط سامبا كخادوم ملفات؛ يشرح هذا القسم طريقة ضبط خادوم سامبا لمشاركة الملفات مع عملاء ويندوز. سيُضبَط الخادوم لمشاركة الملفات مع أي عميل على الشبكة دون طلب كلمة مرور منه؛ إذا كانت بيئتك تتطلب متحكمات بالوصول أكثر تقييدًا ، فراجع القسم «تأمين خادوم سامبا لتخديم الملفات والطباعة». التثبيت أول خطوة هي تثبيت حزمة samba؛ وذلك بإدخال الأمر الآتي من الطرفية: sudo apt-get install samba هذا كل ما عليك فعله! يجب أن تكون الآن جاهزًا لضبط سامبا لمشاركة الملفات. الضبط ملف ضبط سامبا الرئيسي موجودٌ في ‎/etc/samba/smb.conf؛ توجد كميةٌ كبيرةٌ من التعليقات في ملف الضبط لتوثيق مختلف تعليمات الضبط. ملاحظة: لا تُضمَّن جميع الخيارات المتوفرة في ملف الضبط الافتراضي؛ راجع صفحة الدليل للملف smb.conf أو مجموعة «Samba HOWTO». أولًا، عدِّل الأزواج المفتاح/القيمة في القسم [global] من ملف ‎/etc/samba/smb.conf: workgroup = EXAMPLE ... security = user المعامل security موجودٌ في أسفل قسم [global]، ويوجد قبله تعليق افتراضيًا؛ غيِّر أيضًا القيمة EXAMPLE إلى قيمة تلائم بيئتك. أنشِئ قسمًا جديدًا في نهاية الملف -أو أزل التعليق عن أحد الأمثلة- للمجلد الذي تريد أن تشاركه: [share] comment = Ubuntu File Server Share path = /srv/samba/share browsable = yes guest ok = yes read only = no create mask = 0755 comment: وصف قصير عن المشاركة، عدِّله ليناسب احتياجاتك. path: مسار المجلد الذي تريد مشاركته؛ يستخدم هذا المثال ‎/srv/samba/sharename لأنه وفقًا لمعيار هيكلة نظام الملفات (Filesystem Hierarchy Standard اختصارًا FHS)، فإن ‎/srv3 هو مكان تخزين البيانات التي ستُخدَّم؛ ويمكن (تقنيًا) أن تكون مشاركات سامبا في أي مكان في نظام الملفات لطالما كانت الأذونات صحيحةً، لكن الالتزام بالمعايير أمرٌ حسن. browsable: يفعِّل إمكانية تصفح عملاء ويندوز للمجلد باستخدام «مستكشف الملفات». guest ok: يسمح للعملاء بالاتصال إلى المشاركة دون توفير كلمة مرور. read only: تحديد إذا ما كانت المشاركة للقراءة فقط أم كان إذن الكتابة معطيًا؛ يُعطى إذن الكتابة فقط عندما تكون القيمة هي no (كما هو الحال في هذا المثال) إذا كانت القيمة yes، فإن الوصول للمشاركة سيكون للقراءة فقط. create mask: تحديد أذونات الملفات الجديدة عندما تُنشَأ. بعد أن ضُبِطَ سامبا، فيجب إنشاء المجلد وتغيير الأذونات؛ وذلك بإدخال الأمر الآتي من الطرفية: sudo mkdir -p /srv/samba/share sudo chown nobody.nogroup /srv/samba/share/ ملاحظة: الخيار ‎-p يخُبِر mkdir بأن يُنشِئ كامل شجرة المجلد إن لم تكن موجودةً. في النهاية، أعد تشغيل خدمات samba لتفعيل الضبط الجديد: sudo restart smbd sudo restart nmbd تحذير: يسمح الضبط السابق بالوصول لأي مستخدم في الشبكة المحلية، لضبط أكثر أمانًا راجع القسم «تأمين خادوم سامبا لتخديم الملفات والطباعة». تستطيع الآن من عميل ويندوز أن تكون قادرًا على تصفح خادوم أوبنتو للملفات ورؤية مشاركة المجلد؛ إذا لم تظهر المشاركة عند عميلك تلقائيًا، فحاول أن تصل إلى الخادوم عبر عنوان IP الخاص به؛ مثلًا، ‎ \\192.168.1.1 في نافذة مستكشف الملفات، حاول إنشاء مجلد من ويندوز للتحقق من أن كل شيء يعمل على ما يرام. لمشاركة مجلدات إضافية، فأنشِئ ببساطة أقسام [dir] في ‎/etc/samba/smb.conf وأعد تشغيل خدمة سامبا؛ عليك أن تتأكد أن المجلد الذي تريد مشاركته موجود فعلًا، والأذونات المُعطاة له صحيحة. ملاحظة: المشاركة المُسماة «[share]» والمسار ‎/srv/samba/share هما مجرد مثالين؛ عدِّل اسم ومسار المشاركة لملائمة بيئتك؛ فكرة جيدة هي تسمية اسم المشاركة باسم المجلد في نظام الملفات؛ مثال آخر سيكون مشاركةً باسم [qa] بمسار ‎/srv/samba/qa. مصادر كتاب «Using Samba» من O'Reilly هو مصدر جيد للمعلومات. صفحة ويكي أوبنتو «Samba» فيها بعض المعلومات. خادوم سامبا للطباعة استخدام شائع آخر لخادوم سامبا هو ضبطه لمشاركة الطابعات المثبتة إما محليًا أو عبر الشبكة على خادوم أوبنتو؛ وبآليةٍ شبيهةٍ بالآلية في قسم «خادوم ملفات سامبا»، سيضبط هذا القسم سامبا للسماح لأي عميل في الشبكة المحلية باستخدام الطابعات المثبتة دون طلب اسم مستخدم وكلمة مرور. لضبط أكثر أمانًا، راجع القسم الآتي «تأمين خادوم سامبا لتخديم الملفات والطباعة». التثبيت قبل تثبيت وضبط سامبا، من الأفضل أن يكون لديك تثبيت CUPS يعمل جيدًا، راجع القسم «خادوم الطباعة CUPS» في الدرس الخاص به لمزيدٍ من المعلومات. أدخِل ما يلي في الطرفية لتثبيت حزمة samba: sudo apt-get install samba الضبط بعد تثبيت سامبا، عدِّل الملف ‎/etc/samba/smb.conf مغيّرًا الخاصية workgroup إلى القيمة الملائمة لشبكتك، وعدِّل قيمة security إلى user: workgroup = EXAMPLE ... security = user عدِّل قيمة الخيار guest ok إلى yes في قسم [printers]: browsable = yes guest ok = yes أعد تشغيل سامبا بعد إتمام تعديل ملف smb.conf: sudo restart smbd sudo restart nmbd سيشارك ضبط سامبا الافتراضي كل الطابعات المثبتة، كل ما عليك فعله هو تثبيت الطابعة محليًا على عملاء ويندوز. مصادر راجع موقع CUPS لمزيد من المعلومات حول ضبط CUPS. ترجمة -وبتصرف- للمقال Ubuntu Server Guide: Samba.