Samba هو برنامج يتيح لك الوصول إلى محركات أقراص الشبكة على مختلف أنظمة التشغيلعبر بروتوكول SMB / CIFS. لديه أجزاء العميل والخادم. إنه برنامج مجاني تم طرحه بموجب ترخيص GPL.
يعمل Samba على معظم الأنظمة الشبيهة بـ Unix مثل GNU / Linux و Solaris المتوافق مع POSIX و Mac OS X Server ، والعديد من نكهات BSD ، و OS / 2 ، و Windows. يتم تضمين Samba في جميع توزيعات GNU / Linux تقريبًا ، بما في ذلك ، بالطبع ، Ubuntu.
التركيب
لكى يفعل مجلد مشتركفي Ubuntu Desktop ، فقط انقر بزر الماوس الأيمن على مجلد وحدد عنصر قائمة نشر المجلد. لست بحاجة إلى تعديل أي ملفات تكوين. كل ما هو موصوف أدناه ينطبق فقط على التكوين اليدوي ، على سبيل المثال ، في حالة إنشاء خادم ملفات.
للتثبيت ، فقط افتح Terminal وأدخل:
sudo apt-get install samba
سيتم تنزيل التطبيق وتثبيته تلقائيًا.
لنقم بعمل نسخة احتياطية باستخدام المحطة الملف الأوليإعدادات:
Sudo cp /etc/samba/smb.conf(،.bak)
يمكنك الآن تحرير ملف الإعدادات /etc/samba/smb.conf من خلال فتحه في أي محرر نصوص له حقوق المستخدم المتميز. على سبيل المثال ، مثل هذا:
Sudo nano /etc/samba/smb.conf مثال على تكوين Samba كخادم ملفات مستقل مع إذن :؛ إعدادات الخادم العالمية ؛ إعدادات الخادم العامة ؛ اسم الكمبيوتر الذي سيتم عرضه في بيئة الشبكة netbios name = main-server server string =؛ مجموعة عمل العملاء = WORKGROUP يعلن عن الإصدار = خيارات مأخذ التوصيل 5.0 = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF = 8192 SO_SNDBUF = 8192 passdb backend = أمان tdbsam = كلمات مرور فارغة للمستخدم = صحيح ؛ ملف لأسماء المستخدمين المستعارة اسم المستخدم map = / etc / samba / smbusers name resolution order = hosts wins bcast؛ wins تم تعيين الدعم إلى نعم إذا كان nmbd الخاص بك (8) في Samba هو خادم WINS. لا تقم بتعيين هذه المعلمة إلى "نعم" إلا إذا كان لديك شبكات فرعية متعددة ولا تريد أن يعمل nmbd كخادم WINS. لا تقم أبدًا بتعيين هذه المعلمة على "نعم" على أكثر من جهاز داخل نفس الشبكة الفرعية. يفوز بالدعم = لا ؛ طباعة دعم الطابعة = اسم طباعة CUPS = CUPS ؛ ملف سجل السجلات = /var/log/samba/log.٪m syslog = 0 syslog فقط = no ؛ تكوين الربط للواجهات ، التي يتم الاستماع عليها ، إذا لم يتم تحديدها يستمع إلى جميع الواجهات ؛ واجهات = lo ، eth0 ؛ ربط الواجهات فقط = صحيح ؛ ؛ ؛ المسار = / فار / ليب / سامبا / طابعات ؛ قابل للتصفح = نعم ؛ ضيف طيب = نعم ؛ قراءة فقط = نعم ؛ قائمة الكتابة = الجذر ؛ إنشاء قناع = 0664 ؛ قناع الدليل = 0775 ؛ ؛ ؛ المسار = / tmp ؛ قابل للطباعة = نعم ؛ ضيف طيب = نعم ؛ قابل للتصفح = لا ؛ ؛ ؛ المسار = / media / cdrom ؛ قابل للتصفح = نعم ؛ للقراءة فقط = نعم ؛ ضيف طيب = نعم ؛ كرة القرص الصلب؛ كرات الأسماء ، التي يراها العملاء ؛ المسار إلى مسار القرص المشترك = / media / sda1 ؛ هل يمكنني التصفح القابل للتصفح = نعم للقراءة فقط = لا يوجد ضيف طيب = لا يوجد قناع إنشاء = 0644 قناع الدليل = 0755 ؛ الارتباط باسم مستخدم أو مجموعة محددة ، والأسماء مفصولة بمسافة ؛ فرض المستخدم = user1 user2 ؛ مجموعة القوة = group1 group2 ؛ مرة اخرى HDD، عن طريق القياس مع المسار أعلاه = / media / sde1 للتصفح = نعم للقراءة فقط = لا ضيف طيب = لا إنشاء قناع = 0644 قناع الدليل = 0755
الآن نحن بحاجة للتعامل مع المستخدمين.
يستخدم Samba المستخدمين الموجودين بالفعل في النظام ، خذ اسم المستخدم كمثال ، دعنا نقول أنه موجود بالفعل في النظام ، فأنت بحاجة إلى إضافته إلى قاعدة بيانات SMB وتعيين كلمة مرور للوصول إلى الموارد المشتركة ، قم بذلك باستخدام الأمر :
Smbpasswd -مستخدم
سيُطلب منك إدخال كلمة مرور ، وستتم إضافة المستخدم إلى قاعدة البيانات ، والآن تحتاج إلى تمكين هذا المستخدم.
مستخدم Smbpasswd
بعد ذلك ، سننشئ اسمًا مستعارًا لمستخدم اسم المستخدم من أجل تسهيل الوصول من جهاز Windows الذي لدينا ، على سبيل المثال ، مستخدم باسم Admin ، لذلك سننشئ ونعدل الملف / etc / samba / smbusers:
Sudo touch / etc / samba / smbusers sudo gedit / etc / samba / smbusers
اكتب سطرين للملف
# Unix_name = SMB_name1 مستخدم SMB_name2 = المسؤول
هذا يكمل التكوين ، إعادة تشغيل Samba.
غالبًا ما يتم استخدام Samba لإنشاء خادم ملفات على شبكة Windows.
لإنشاء خادم ملفات مدمج في مجال Active Directory ، تحتاج أولاً إلى إدخال جهاز Ubuntu الخاص بك في المجال. تم تخصيص مقال منفصل لهذا:
لإنشاء خادم ملفات ، لا تحتاج إلى تكوين PAM ، ما عليك سوى إضافة مستخدمي المجال والمجموعات إلى النظام عبر Winbind.
بعد تسجيل الدخول بنجاح إلى المجال ، تحتاج فقط إلى تكوين الموارد المشتركة على جهاز الكمبيوتر الخاص بك.
تجدر الإشارة هنا إلى شيء مهم جدًا على الفور: يحاول Samba عرض أذونات على ملفات Windows لأذونات Unix ، ولكن نظرًا للاختلافات الجوهرية في آليات تعيين الأذونات ، فإن هذا ليس ممكنًا دائمًا. يرجى ملاحظة أن حقوق الملفات يتم التحكم فيها دائمًا وعلى أي حال من خلال نظام الملفات الخاص بك على جهاز كمبيوتر مزود بـ Ubuntu ، يمكن لـ samba التكيف معها فقط ، ولكن لا يمكن تغيير سلوكها.
لذلك ، بشكل افتراضي ، سيكون للموارد المشتركة خيارات تحكم في الوصول ضئيلة للغاية - تعيين حقوق مختلفة لمستخدم ، ومجموعة ، وكل شخص آخر. ومع ذلك ، من السهل إصلاح ذلك عن طريق إضافة دعم POSIX ACL إلى نظام الملفات الخاص بك. في هذه الحالة ، سيكون من الممكن تعيين حقوق مختلفة لمستخدمين ومجموعات مختلفة ، تمامًا كما هو الحال في Windows.
دعم POSIX ACL موجود على الأقل في ext3 / 4 ، لتنشيطه تحتاج فقط إلى إضافة معلمة ACL إلى خيارات التحميل للقسم المطلوب.
من المهم أن يكون الدليل الذي تريد مشاركته عبر Samba موجودًا على قرص مُثبت بخيار التحكم في التحكم بالوصول (acl). خلاف ذلك ، لن تكون قادرًا بشكل طبيعي على استخدام آلية التمييز بين حقوق الوصول إلى الملفات الموجودة على الكرات.
هناك نقطة أخرى مهمة للغاية: لا تدعم قوائم POSIX ACL وراثة حقوق الوصول من الدلائل الأصلية ، وهذه الميزة موجودة في Windows. لذلك ، يقوم Samba بتنفيذ آلية إضافية لتخزين المعلومات حول وراثة حقوق الوصول ، والتي تستخدم السمات الموسعة لنظام الملفات. لذلك ، لكي يتعامل Samba بشكل صحيح مع وراثة الحقوق ، بالإضافة إلى ACL ، من الضروري إضافة المعامل user_xattr إلى خيارات تحميل نظام الملفات ، وهو المسؤول تحديدًا عن تمكين دعم السمات الموسعة.
على سبيل المثال ، أستخدم دائمًا أقراص LVM منفصلة لتنظيم الموارد المشتركة ، وخطوط fstab الخاصة بي تبدو كالتالي:
/ dev / mapper / data-profiles / var / data / profile ext3 ، noexec ، acl ، user_xattr 0 2
هناك حاجة إلى خيار noexec لأنه لا ينبغي أن تكون هناك ملفات Linux قابلة للتنفيذ على كرات Windows بنسبة 100٪ ، ولا يضر تشغيلها بأمان مرة أخرى.
للعمل مع ACL على Ubuntu ، تحتاج إلى تثبيت حزمة من الأدوات المساعدة المقابلة:
Sudo aptitude install ACL
بعد ذلك ، يمكنك إلقاء نظرة على الحقوق الممتدة (مثل ACL) في ملف أو دليل باستخدام الأمر
ملف Getfacl
وتثبيت مع الأمر
ملف Setfacl
فقط في هذه الحالة ، أود أن ألفت انتباهك إلى حقيقة أن آلية POSIX ACL لا علاقة لها بـ Samba - إنها مجرد وظيفة إضافية على آلية امتياز Linux القياسية. وفقًا لذلك ، يمكن لـ Samba استخدامه ، لكن لا يمكنه تغييره أو الالتفاف حوله بأي شكل من الأشكال.
للعمل مع سمات نظام الملفات الممتدة ، تحتاج إلى حزمة أدوات مساعدة تشبه إلى حد بعيد acl - attr ، والتي يمكن تثبيتها باستخدام الأمر
Sudo aptitude install Attr
لعرض السمات الممتدة ، يمكنك استخدام الأمر
ملف Getfattr
وللتثبيت
ملف Setfattr
ومع ذلك ، هناك عقبة صغيرة واحدة. الحقيقة هي أن Samba يخزن جميع المعلومات حول الوراثة في شكل ثنائي في مستخدم سمة واحدة ممتدة. لذلك ، لن تكون قادرًا على تغيير شيء ما باستخدام setfattr ، إلا إذا قمت بإزالة السمات الموسعة بالكامل (في بعض الأحيان قد تحتاج إلى القيام بذلك).
حسنًا ، سيتعين عليك إدارة وراثة الحقوق من جهاز يعمل بنظام Windows باستخدام الأدوات القياسية لهذا النظام. أو باستخدام الأداة المساعدة smbcacls ، إذا كان بإمكانك معرفة كيفية استخدامها.
هناك أيضًا وحدة VFS تجريبية ، acl_xattr ، والتي تسمح لك بتخزين NT ACLs بالكامل في سمات ممتدة. لسوء الحظ ، لا يوجد توثيق عليه ، لذلك من الصعب قول شيء واضح عنه. من المتوقع أن يتمتع Samba 4 بدعم NT ACL المتكامل بالكامل ، ولكن في الوقت الحالي ، يمكنك استخدام ما هو موجود.
إذا كان لديك أي شيء تضيفه حول السمات الموسعة في Samba وكيفية التعامل معها ، فتأكد من كتابته في هذا الموضوع في المنتدى. سأكون ممتنا لأي روابط ومقالات وتعليقات حول هذا الموضوع.
بالإضافة إلى ذلك ، تسمح سمات نظام الملفات الموسعة لـ Samba بدعم سمات ملفات DOS بشكل كامل مثل المخفي ، والمؤرشف ، وما إلى ذلك.
لذلك ، سنفترض أن لديك دليلًا على النظام تريد مشاركته من خلال Samba (وهو موجود على قرص مزود بدعم ACL و user_xattr). أنت الآن بحاجة إلى تكوين مشاركتها بالفعل. للقيام بذلك ، تحتاج إلى إدخال المعلومات المناسبة في ملف /etc/samba/smb.conf.
دعنا نبدء ب الاعدادات العامة، والتي يمكن إضافتها إلى قسم هذا الملف (هذه بعيدة كل البعد عن جميع المعلمات الممكنة ، فقط عدد قليل من المعلمات المفيدة للغاية):
# تعطيل مشاركة الطابعة. ما لم تكن ، بالطبع ، تريد حقًا مشاركتها. # لتعطيله تمامًا ، تحتاج إلى تحديد جميع الأسطر الأربعة الموجودة أسفل طابعات التحميل = عدم إظهار معالج إضافة طابعة = لا يوجد اسم printcap = / dev / null تعطيل spoolss = نعم # إنشاء الملفات المخفية بالأسماء التالية عند عرضها من Windows إخفاء الملفات = / $ RECYCLE .BIN / desktop.ini / lost + found / Thumbs.db / # استخدم مستخدم UNIX التالي للمشاركة العامة كحساب ضيف ضيف = لا أحد # تعامل المستخدمين غير المسجلين كخريطة ضيف إلى الضيف = مستخدم سيء ## الإعدادات باستخدام ملف متقدم سمات النظام # معالجة وراثة الحقوق باستخدام مخطط سمات FS الموسعة وراثة ACL = نعم # استخدم سمات FS الموسعة لتخزين سمات DOS تخزين سمات دوس = نعم # تعطيل تعيين سمة DOS على حقوق UNIX ، ممكّن افتراضيًا # وفقًا لرجل smb.conf عند الاستخدام السمات الموسعة يجب تعطيل هذه الخيارات في أرشيف الخريطة = لا يوجد نظام خرائط = لا توجد خريطة مخفية = لا توجد خريطة للقراءة فقط = n ا
الآن إعدادات المورد المشترك مباشرة. اسميها مظهر، وهي موجودة فعليًا على جهاز Ubuntu / فار / بيانات / ملفات شخصية:
تعليق تعليق # = ملفات تعريف المستخدمين # المسار إلى المجلد الذي نشاركه path = / var / data / profiles / # المستخدمون الذين لديهم حقوق وصول غير محدودة إلى المشاركة # لدي مجموعة من مسؤولي المجال. # عند العمل مع الملفات ، يتم التعامل مع هؤلاء المستخدمين كمستخدمين جذر محليين = "DOMAIN \ Domain Administrators" # إخفاء المجلدات التي لا يملك المستخدم حق الوصول إليها إخفاء غير قابل للقراءة = نعم # ليس الوصول للقراءة فقط للقراءة فقط = لا # أقنعة لـ الملفات التي تم إنشاؤها - يمكن ضبطها حسب الرغبة #create mask = 0600 # قناع الدليل = 0700 # تعطيل الأقفال - من الأفضل تعطيل القفل = لا
هناك العديد من الخيارات الأخرى - راجع وثائق Samba للحصول على التفاصيل.
لا تنسَ وضع المالك الصحيح وحقوق الوصول للمجلد الذي تشاركه ، وإلا ، على الرغم من أي إعدادات لـ samba ، فقد يتم حظر الكتابة إليه على مستوى حقوق Linux. عادة ما أفعل هذا:
Sudo chmod ug + rwx / var / data / profiles sudo chown root: "مستخدمو المجال" / var / data / profiles
لاحظ ، نظرًا لأن جهاز Ubuntu الخاص بك هو عضو في المجال ، يمكنك استخدام مستخدمي المجال والمجموعات كمالكين للملفات مباشرة في Ubuntu.
تحقق من صحة تكوين Samba باستخدام الأمر
Testparm
ثم أعد تشغيل Samba:
إعادة تشغيل Sudo /etc/init.d/samba
يمكنك الآن الوصول إلى المورد المشترك من أي جهاز في المجال.
بالمناسبة ، لا تنسَ SGID والبتات اللاصقة للأدلة. إنها تسمح لك بوراثة مجموعة المالكين وتمنع المستخدمين من حذف ملفات أخرى غير ملفاتهم - قد يكون هذا مناسبًا جدًا للمستودعات متعددة المستخدمين. ومع ذلك ، بخلاف حقوق التحرير من Windows ، فإن تغيير هذه البتات في المجلدات الموجودة على مورد مشترك لن يعمل - فقط يدويًا مباشرة على كمبيوتر Ubuntu.
من بين أشياء أخرى ، يسمح لك Samba بتنظيم تخزين الإصدارات السابقة من الملفات ، وهو أمر مفيد في بعض الأحيان عند إنشاء مشاركات مع بيانات المستخدم.
لا يمتلك كل شخص مجال Active Directory. لذلك ، غالبًا ما يكون من الضروري تنظيم تخزين ملفات مستقل على جهاز Linux خاص به النظام الخاصتفويض. هذا من السهل جدا القيام به.
الميزة الرئيسية لمثل هذا التنظيم لتخزين الملفات هي أنه سيتم تخزين جميع المعلومات حول المستخدمين في قاعدة بيانات Samba ؛ وفقًا لذلك ، سيكون من الضروري إضافة مستخدمين وحذفهم يدويًا على السامبا.
أهم شيء هو تحديد الطريقة المستخدمة للوصول إلى المورد. لتغييره ، تحتاج إلى تعيين قيمة معلمة الأمان بشكل صحيح في قسم /etc/samba/smb.conf من الملف. يمكنك قراءة المزيد حول هذه المعلمة أو قراءة الوثائق الرسمية.
عادة ما تكون القيمة حصة أو مستخدم.
إنه مناسب للمنزل حتى يتمكن الجميع من رؤية الجميع. يمكن القيام بذلك عن طريق إضافة 4 أسطر إلى قسم /etc/samba/smb.conf من الملف. قد يكون البعض موجودًا بالفعل.
[global] workgroup = WORKGROUP تعيين الضيف = اسم netbios للمستخدم السيئ = أمان دفتر الملاحظات = مستخدمNOTEBOOK - اسم الكمبيوتر الذي سيكون على الشبكة. بالإضافة إلى ذلك ، تحتاج إلى تثبيت برامج إضافية:
sudo apt-get install sambaبالنسبة إلى kubuntu ، تحتاج أيضًا إلى تثبيت smb4k. بعد تحرير التكوينات ، تحتاج إلى إعادة تشغيل الخدمات. في systemd (منذ 15.04) تبدو إعادة التشغيل كما يلي:
أعد تشغيل sudo systemctl smbd.service nmbd.serviceيمكنك عرض "الكرات" من خلال متصفح الملفات nautilus أو konkueror أو مثل هذا:
Smbclient -L 127.0.0.1
... الوثائق الرسمية باللغة الإنجليزية.
قم بإنشاء مجلد لمشاركة الملفات.
mkdir ~ / حصةأضف الأسطر التالية إلى نهاية ملف /etc/samba/smb.conf ، واستبدل yuraku1504 باسم مستخدم كمبيوتر samba:
[MyShareWork] تعليق = مسار مشاركة Samba مجهول = / home / yuraku1504 / مشاركة ضيف طيب = نعم قابل للتصفح = نعم قابل للكتابة = نعم للقراءة فقط = لا يوجد مستخدم فرض = yuraku1504 Force Group = yuraku1504سيتم فتح المجلد للقراءة والكتابة.
Samba هو برنامج يسمح لأجهزة الكمبيوتر التي تعمل بنظام UNIX / Linux بتقليد أجهزة Windows. باستخدام Samba ، يمكن لأجهزة الكمبيوتر تبادل الملفات أو إدارة مهام الطباعة كخوادم ملفات أو خوادم طباعة Windows. مثل نظام التشغيل UNIX / Linux الذي يعمل عليه ، يعد Samba برنامجًا مفتوح المصدر تم تطويره بواسطة العديد من المبرمجين. مصدر الرمز.
يتم استخدام بروتوكول SMB بواسطة أنظمة التشغيل Microsoft Windows 2000 و NT و 95/98 لتوفير الوصول إلى الأقراص والطابعات. استخدام مجموعة أدوات Samba من Andrew Tridgell ( [بريد إلكتروني محمي]) ، يمكن لأجهزة UNIX (بما في ذلك Linux) تنظيم الوصول إلى الأقراص والطابعات لأجهزة Windows. أدوات smbfs التي كتبها Paal-Kr. انجستاد ( [بريد إلكتروني محمي]) وفولكر لينديك ( [بريد إلكتروني محمي]) ، قم بتمكين أجهزة UNIX من تحميل مشاركات SMB المتوفرة على أجهزة Windows أو Samba.
يمكن تنفيذ الإجراءات التالية الأكثر شيوعًا باستخدام Samba:
التثبيت ، كما تعلم ، يجب أن يبدأ بدراسة مفصلة للوثائق. ومع ذلك ، يتجاهل معظم مسؤولي النظام هذه القاعدة ، مسترشدين بأخرى: "إذا فشل كل شيء آخر ، اقرأ الوثائق." بشكل عام ، نوصي ببدء تثبيت Samba باستخدام أمر بسيط: $ man samba (الشكل 1).
وأيضًا من خلال قراءة الوثائق المتوفرة على http://www.samba.org/. وتجدر الإشارة إلى أنه لاستخدام Samba ، يجب أن يكون جهازك على مقطع Ethernet LAN واحد باستخدام بروتوكول TCP / IP. لن يعمل Samba مع بروتوكولات الشبكة الأخرى. هذا سهل من حيث المبدأ ، لأن Linux و Windows 95/98 / NT يأتيان مع دعم TCP / IP. ومع ذلك ، إذا كنت تستخدم أجهزة Windows 3.x ، فأنت بحاجة إلى إضافة دعم TCP / IP.
للحصول على النصوص المصدر احدث اصدار Samba ، انتقل إلى http://www.samba.org/ وحدد خادم مرآة أقرب إليك: ftp://ftp.samba.org/. يتم تضمين حزمة Samba مع توزيعات عدد من أنظمة UNIX / Linux ، مثل Rad Hat أو Suse Linux. اقرأ وثائق Linux الخاصة بك بعناية ، ومن الممكن أن تحتاج فقط إلى إدخال القرص المضغوط وتثبيت حزم Samba. في هذه الحالة ، يمكنك متابعة قراءة المقال من الفصل التالي.
بعد استلام هذه الحزمة ، نقوم باستخراج كل ما هو موجود تحت "الختم" * .tar.gz ، على سبيل المثال ، في الدليل / tmp (ولهذا ليس من الضروري أن يكون الجذر :) ، وهذا هو:
$ tar -zxvf samba-latest.tar.gz
إذا لم تكن لديك مشكلة في استخراج هذه الحزمة ، فستجد دليلًا جديدًا ، مثل samba-latest ، بالملفات المستخرجة. انتقل إليه ، وابحث في ملفي "README" و "Manifest" - تعليمات التثبيت موجودة في الملف الأخير وتبدو كما يلي:
$ ./configure جعل تثبيت $ su #
الآن نحن بحاجة إلى الانتباه إلى مكان وجود ملفات التكوين الخاصة بك. تضعها معظم توزيعات Samba في الدليل / etc افتراضيًا وتضعها في الدليل / usr / local / samba.
توجد معلومات تكوين Samba الأساسية في ملف smb.conf. يجب التعامل مع هذا الملف بعناية. إذا كنت تخطط لتغيير إصدار العمل بأي طريقة ، فتأكد من عمل نسخة.
لبدء تشغيل الخادم لأول مرة ، يجب أن يكون لديك نسخة صالحة للعمل من ملف smb.conf. قم بالتغيير إلى الدليل حيث يجب أن يوجد ملف التكوين الخاص بك. على الأرجح سيكون / etc أو / usr / local / samba / lib. اعمل نسخة من هذا الملف، على سبيل المثال smb.old - هذا ممكن مع امتيازات الجذر. الآن بعد أن أصبح لديك ملف "نظيف" ، يمكنك إدخال أبسط تكوين ، أي اكتب الأسطر التالية:
# ملف تكوين Samba الأساسي (smb.conf) مجموعة العمل = PTO اسم netbios = GALKA
أدناه سنكتشف ما تعنيه هذه الأسطر في ملف التكوين ، لكن أولاً سنأخذ استراحة مؤقتًا منه وننتقل إلى شياطين SMB.
هناك نوعان من شيطان SMB: / usr / sbin / smbd و / usr / sbin / nmbd. يمكنك بدء Samba daemons من inetd أو كعملية قائمة بذاتها. سوف يستجيب Samba بشكل أسرع قليلاً عندما يبدأ كعملية قائمة بذاتها.
في بعض الأحيان يكون من الضروري التحقق من وجود سطور مشابهة لما يلي في ملف / etc / services:
Netbios-ns 137 / tcp nbns netbios-ns 137 / udp nbns netbios-dgm 138 / tcp nbdgm netbios-dgm 138 / udp nbdgm netbios-ssn 139 / tcp nbssn
تأكد من عدم تعليقهم جميعًا. اعتمادًا على التوزيع الخاص بك ، قد تحتاج إلى إضافتها إلى هذا الملف. لن يتمكن Samba من الارتباط بالمنافذ المناسبة حتى تصبح هذه الخطوط في ملف etc / services / /.
لبدء الشياطين من inetd ، ضع الأسطر التالية في ملف التكوين inetd ، /etc/inetd.conf:
# خدمات SAMBA NetBIOS (لمشاركة ملفات الكمبيوتر والطباعة) netbios-ssn stream tcp nowait root / usr / sbin / smbd smbd netbios-ns dgram udp wait root / usr / sbin / nmbd nmbd
ثم أعد تشغيل البرنامج الخفي inetd عن طريق تشغيل الأمر:
Kill -HUP 1 `cat / var / run / inetd.pid`
لبدء الشياطين من البرامج النصية لبدء تشغيل النظام ، ضع النص التالي في /etc/rc.d/init.d/smb (لتوزيع RedHat) أو /etc/rc.d (لتوزيع Suse Linux) وأنشئ روابط رمزية لها باستخدام أسماء مثل /etc/rc.d/rcX.d/S91smb (تبدأ خدمات SMB في وضع متعدد المستخدمين) ، /etc/rc.d/rcX.d/K91smb (تقتل خدمات SMB عند الإغلاق) ، /etc/rc.d/ rc6 .d / K91smb (يقتل خدمات SMB عند إعادة التشغيل) ، حيث X هو رقم مستوى تمهيد النظام ، وعادة ما يكون 2 أو 3.
#! / بن / ش. /etc/rc.config # حدد القاعدة واتبع اسم ارتباط مستوى التشغيل. base = $ (0 ## * /) link = $ (base # *) # فرض التنفيذ إذا لم يتم استدعاؤها بواسطة دليل مستوى التشغيل. test $ link = $ base && START_SMB = yes test "$ START_SMB" = "yes" || exit 0 # قيمة إرجاع الصدى للنجاح (المحددة في /etc/rc.config). return = $ rc_done case "$ 1" في البداية) echo -n "بدء خدمات SMB:" startproc / usr / sbin / nmbd -D || العودة = rc_failed $ startproc / usr / sbin / smbd -D || return = rc_failed echo -e "$ return" ؛؛ startd) echo -n "بدء خدمات SMB:" startproc / usr / sbin / nmbd -D -d 10 || العودة = $ rc_failed startproc / usr / sbin / smbd -D -d 10 || return = rc_failed echo -e "$ return" ؛؛ stop) echo -n "إيقاف تشغيل خدمات SMB:" killproc -TERM / usr / sbin / nmbd || العودة = rc_failed killproc -TERM / usr / sbin / smbd || return = rc_failed echo -e "$ return" ؛؛ إعادة التشغيل | إعادة التحميل) $ 0 توقف && $ 0 ابدأ || العودة = rc_failed دولار ؛؛ status) echo -n "التحقق من خدمة smb:" checkproc / usr / sbin / nmbd && echo -n "OK" || echo -n "بدون معالجة" checkproc / usr / sbin / smbd && echo "OK" || صدى "لا توجد معالجة" ؛؛ *) صدى "الاستخدام: $ 0 (بدء | إيقاف | إعادة تشغيل | إعادة تحميل | الحالة)" خروج 1 esac # إبلاغ المتصل ليس فقط بإسهاب وتعيين حالة الخروج. اختبار "$ return" = "$ rc_done" || خروج 1 مخرج 0
إذا تلقيت ، عند بدء تشغيل Samba ، رسالة تفيد بأن البرنامج الخفي لا يمكنه الاتصال بالمنفذ 139 ، فمن المرجح أن لديك بالفعل عمليات Samba قيد التشغيل ولم يتم إنهاؤها. انظر إلى قائمة العمليات (باستخدام الأمر "ps ax | grep mbd") لمعرفة ما إذا كان هناك المزيد من خدمات Samba قيد التشغيل. إذا رفضت الشياطين البدء لسبب آخر ، فعلى الأرجح أن هذا البرنامج النصي لا يتناسب مع نظام UNIX / Linux الخاص بك وسيتعين عليك البحث في الوثائق مرة أخرى ، وإصلاح شيء ما فيه ، وربما إعادة كتابته.
من الواضح ، في التكوين الموصوف أعلاه ، أن Samba يمكن أن يعمل ، لكن عمليا لا يمكنه فعل أي شيء. سيتم مناقشة المزيد من الأمثلة المفيدة والمعقدة أدناه. لكن عليك أولاً أن تفهم توجيهات smb.conf.
يبدأ كل قسم من الملف بعنوان قسم مثل ، إلخ.
انتقل الآن إلى علامة التبويب الأولى "التكوين" وانقر فوق الزر "مشاركة الملفات والطباعة". في النافذة التي تظهر ، حدد المربعين "يمكن مشاركة الملفات على هذا الكمبيوتر" (أريد أن أكون قادرًا على منح الآخرين حق الوصول إلى ملفاتي) و "يمكن جعل الطابعات على هذا الكمبيوتر عامة" (أريد أن أكون قادرًا على ذلك السماح للآخرين بالطباعة إلى الطابعة (الطابعات) الخاصة بي).
أخيرًا ، أخبرنا Windows أن Samba هو خادم WINS وأن Samba سيكون خادم التصفح. للقيام بذلك ، انتقل إلى خصائص بروتوكول TCP / IP (الشكل 4). في النافذة التي تظهر ، حدد تكوين WINS. حدد المربع "تمكين حل WINS." في الحقل الظاهر "خادم WINS الرئيسي" (ترتيب بحث خادم WINS) ، اكتب عنوان IP للخادم (سامبا) - 192.168.0.1 وانقر على "إضافة" أو انتقل إلى علامة التبويب خيارات متقدمة وانقر فوق في استعراض Master في النافذة اليسرى واضبط القيمة على معطل في النافذة اليمنى.
في Windows NT ، تختلف شاشات خصائص الشبكة قليلاً (كما هو موضح في الأشكال) ، لكن مفهوم البناء العام يظل كما هو.
بعد إعادة تشغيل Windows ، لا تتردد في النقر فوق " بيئة الشبكة»(جوار الشبكة) وستتمكن من رؤية خادم Samba بالإضافة إلى دليلك الرئيسي على خادم Linux. الآن يمكنك ببساطة تعيين هذه الموارد كمحركات أقراص شبكة وتعيين أحرف محركات أقراص لها.
دعنا نعقد التهيئة قليلاً: فلنجعل الدليل / home / public قابلاً للقراءة من قبل الجميع ، لكن نسمح فقط للأشخاص من مجموعة ADMINS بوضع المعلومات فيه. للقيام بذلك ، دعنا نغير الإدخال على النحو التالي:
التعليق = مسار الأشياء العامة = / home / public = نعم قابل للكتابة = نعم للطباعة = لا توجد قائمة كتابة =ADMINS
هناك العديد من الأمثلة المتاحة لتكوينات خادم ملفات Samba ، ولكن من الأفضل أن تنظر إلى وثائق Samba أو صفحات الدليل وتكتشفها بنفسك.
من غير المحتمل أن يتمكن مستخدمو Linux OS المبتدئون من فهم النظام بسرعة للوصول إلى ملفات Linux من نظام Windows ، والعكس صحيح. لكن ليس كل شيء معقدًا جدًا. تم وصف الوصول إلى موارد Linux من نظام Windows بإيجاز أعلاه ، وسننظر الآن في الوصول إلى موارد Windows من نظام Linux.
برنامج عميل SMB لأجهزة UNIX / Linux مضمن في توزيع Samba. يوفر واجهة سطر أوامر تشبه بروتوكول نقل الملفات. يمكنك استخدام هذه الأداة لنقل الملفات بين "خادم" Windows وعميل Linux.
لمعرفة الموارد المتاحة على جهاز معين ، قم بتشغيل الأمر:
/ usr / sbin / smbclient -L host
حيث المضيف هو اسم الجهاز الذي تريد رؤيته. سيعيد هذا الأمر قائمة بأسماء الخدمات - أي أسماء محركات الأقراص أو الطابعات التي يمكن الوصول إليها. حتى يتم تكوين خادم SMB بدون التحكم في الوصول ، سيطلب منك كلمة مرور. استجابةً للطلب ، أدخل كلمة المرور للمستخدم "الضيف" أو كلمة المرور الشخصية الخاصة بك على هذا الجهاز.
لاستخدام العميل ، قم بتشغيل الأمر التالي:
/ usr / sbin / smbclient الخدمة
حيث service هي اسم الجهاز والخدمة. على سبيل المثال ، إذا كنت تحاول الوصول إلى دليل يمكن الوصول إليه باعتباره عامًا على جهاز يسمى galka ، فيجب أن يكون اسم الخدمة \\ galka \ public.
سوف تتلقى مطالبة smbclient:
توقيت الخادم هو Wen May 22 15:58:44 2001 المنطقة الزمنية هي UTC + 10.0 المجال = OS = Server = smb: \>
أوامر استخدام Samba هي نفس أوامر ftp ، ولكن إذا لم تكن مرتاحًا لأي منهما ، فاكتب h للحصول على المساعدة.
يمكنك بالطبع استخدام smbclient للاختبار ، لكنك ستتعب منه قريبًا جدًا. ستحتاج على الأرجح إلى حزمة smbfs لكي تعمل. يأتي Smbfs مع اثنين من المرافق البسيطة ، smbmount و smbumount. إنهم يعملون مثل mount و umount لموارد SMB. على سبيل المثال،
Smbmount // computer_name /atalog / Mountpoint -U user_name
نتيجة لذلك ، ستتلقى موردًا "مُركبًا" مع إمكانية الوصول إليه باستخدام الطرق المعتادة للمستكشف.
خادم الطباعة لينوكس
لتنظيم الوصول إلى طابعة Linux من أجهزة Windows ، تحتاج إلى التأكد من أن الطابعة تعمل في نظام Linux. إذا كان بإمكانك الطباعة على نظام Linux ، فسيكون الوصول إلى الطابعة أمرًا سهلاً للغاية.
أضف إعداد الطابعة إلى ملف smb.conf الخاص بك:
الطباعة = اسم printcap bsd = / etc / printcap load printers = yes log file = /var/log/samba-log.٪m lock directory = / var / lock / samba comment = أمان جميع الطابعات = مسار الخادم = / var / spool / lpd / lp التصفح = لا للطباعة = نعم عام = نعم قابل للكتابة = لا يوجد وضع إنشاء = 0700 أمان = مسار الخادم = / var / spool / lpd / lp printer name = lp writable = yes public = yes printable = yes print command = lpr -r -h -P٪ p٪ s
تأكد من أن المسار إلى الطابعة (في حالتنا) يطابق الدليل المخزن المحدد في ملف / etc / printcap ، أي تحقق من الأسطر:
اسم Printcap = / etc / printcap تحميل الطابعات = نعم
تتحكم هذه الخطوط في ما إذا كان يجب تحميل جميع الطابعات المدرجة في / etc / printcap افتراضيًا. في هذه الحالة ، ليست هناك حاجة لتهيئة كل طابعة على حدة. يحدد القسم إعدادات الطابعات التي تريد تحديدها بشكل صريح. إذا كان نظام الطباعة الفرعي الذي تستخدمه لا يعمل بهذه الطريقة (BSD) ، فأنت بحاجة إلى إعداد ملف printcap مزيف (أو استخدم "أمر الطباعة" ، انظر أدناه). لمزيد من المعلومات حول نظام printcap ، راجع Printing-HOWTO.
الوصول إلى طابعة Windows من Linux Machines
للوصول إلى الطابعة على جهاز يعمل بنظام التشغيل Windows ، يجب استيفاء الشروط التالية:
الإدخال في الملف أدناه / etc / printcap مخصص لطابعة HP 5MP في مشغل برامج وندوز NT. الحقول التالية في ملف / etc / printcap مستخدمة:
سم - تعليق ؛ lp هو اسم الجهاز الذي سيتم فتحه للإخراج ؛ sd - دليل التخزين المؤقت للطابعة (على الجهاز المحلي) ؛ af - ملف محاسبة استخدام الطابعة ؛ mx - الحجم الأقصى للملف (صفر - بلا حدود) ؛ إذا كان اسم عامل تصفية الإدخال (البرنامج النصي).
مقتطف من ملف / etc / printcap:
# / etc / printcap # # // galka / oreilly عبر smbprint # lp: \: cm = HP 5MP Postscript OReilly على galka: \: lp = / dev / lp1: \: sd = / var / spool / lpd / lp: \: af = / var / spool / lpd / lp / acct: \: mx # 0: \: if = / usr / bin / smbprint:
تأكد من وجود الدلائل المخزنة والدليل المستخدم للمحاسبة وقابليهما للكتابة. تأكد من أن سطر "if" يحتوي على المسار الصحيح لبرنامج smbprint النصي (الوارد أدناه) وأن الإدخالات تشير إلى جهاز الإخراج الصحيح (/ ملف خاص dev).
#! / bin / sh –x # # ملف سجل التصحيح ، قم بالتغيير إلى / dev / null إذا أردت. # logfile = / tmp / smb-print.log # logfile = / dev / null # # المعلمة الأخيرة لعامل التصفية هي اسم ملف المحاسبة. # spool_dir = / var / spool / lpd / lp config_file = $ spool_dir / .config # يجب قراءة المتغيرات التالية المعينة في ملف التكوين: # server # service # password # user Eval `cat $ config_file` # # بعض تعليمات التصحيح ، قم بتغيير >> إلى> إذا كنت تريد نفس المساحة. # echo "server $ server، service $ service" >> $ logfile (# NOTE قد ترغب في إضافة السطر "echo translate" إذا كنت تريد ترجمة # CR / LF تلقائيًا عند printing.echo ترجمة echo "print -" cat) | / usr / bin / smbclient "\\\\ $ server \\ $ service" $ password -U $ user -N -P >> $ logfile
تأتي معظم توزيعات Linux مع nenscript لتحويل مستندات ASCII إلى PostScript.
في الآونة الأخيرة ، اقتصرت قدرات سامبا على تلك المذكورة أعلاه فقط. ومع ذلك ، يمكن القول بثقة أن الإصدار الجديد من Samba 2.2 يلائم نظام التشغيل Windows 2000 من حيث الوظائف ويحتوي على تحسينات إضافية. مطور Samba الرئيسي ، Jeremy Allison ، يسميه "تحديثًا مهمًا" من شأنه أن يساعد أنظمة Samba على الانتشار بسهولة أكبر على شبكة Microsoft. يوفر البرنامج مدخرات ليس فقط لأنك لست مضطرًا للدفع مقابل نظام تشغيل الخادم ، ولكن أيضًا لأنك لست مضطرًا لدفع تراخيص "CAL" لجميع أجهزة الكمبيوتر التي تستخدم الخادم.
حول الميزات الجديدة لسامبا 2.2. اقرأ مقالتنا “Samba 2.2 - what الجديد » .
كمبيوتر برس 10 "2001
سامبا- برنامج يتيح لك الوصول إلى محركات أقراص الشبكة على أنظمة تشغيل مختلفة باستخدام بروتوكول SMB / CIFS. لديه أجزاء العميل والخادم. إنه برنامج مجاني تم طرحه بموجب ترخيص GPL.سامبايعمل على معظم الأنظمة الشبيهة بـ Unix مثل GNU / Linux و Solaris المتوافق مع POSIX و Mac OS X Server ، والعديد من نكهات BSD ، و OS / 2 ، و Windows. سامبامضمن في جميع توزيعات جنو / لينكس تقريبًا ، بما في ذلك ، بالطبع ، Ubuntu.
لإنشاء مجلد مشترك في Ubuntu Desktop ، فقط انقر بزر الماوس الأيمن على المجلد وحدد عنصر قائمة نشر المجلد. لست بحاجة إلى تعديل أي ملفات تكوين. كل ما هو موصوف أدناه ينطبق فقط على التكوين اليدوي ، على سبيل المثال ، في حالة إنشاء خادم ملفات.
للتثبيت ، فقط افتح Terminal وأدخل:
سودو apt-get install samba
سيتم تنزيل التطبيق وتثبيته تلقائيًا.
لنقم بعمل نسخة احتياطية من ملف التكوين الأولي باستخدام Terminal:
Sudo cp /etc/samba/smb.conf(،.bak)
يمكنك الآن تحرير ملف الإعدادات /etc/samba/smb.conf من خلال فتحه في أي محرر نصوص له حقوق المستخدم المتميز. على سبيل المثال ، مثل هذا:
سودو نانو /etc/samba/smb.conf
ما يلي بشكل عام هو حالة استخدام واحدة محددة لـ Samba ، وفي عدد كبير من الحالات ، يتم تكوين كل شيء بشكل مختلف تمامًا. تحتاج المقالة إلى تصحيح ، مع التركيز على إمكانيات Samba ، وليس فقط على استخدام هذا البرنامج كمخزن للملفات بإذن محلي. من الأفضل أخذ مثال لتخزين الملفات في مقالة مفصلة منفصلة.
مثال على تكوين Samba كخادم ملفات مستقل مع إذن:
؛ إعدادات الخادم العالمية ؛ إعدادات الخادم العامة ؛ اسم الكمبيوتر الذي سيتم عرضه في بيئة الشبكة netbios name = main-server server string =؛ مجموعة عمل العملاء = WORKGROUP يعلن عن الإصدار = خيارات مأخذ التوصيل 5.0 = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF = 8192 SO_SNDBUF = 8192 passdb backend = أمان tdbsam = كلمات مرور فارغة للمستخدم = صحيح ؛ ملف لأسماء المستخدمين المستعارة اسم المستخدم map = / etc / samba / smbusers name resolution order = hosts wins bcast؛ wins تم تعيين الدعم إلى نعم إذا كان nmbd الخاص بك (8) في Samba هو خادم WINS. لا تقم بتعيين هذه المعلمة إلى "نعم" إلا إذا كان لديك شبكات فرعية متعددة ولا تريد أن يعمل nmbd كخادم WINS. لا تقم أبدًا بتعيين هذه المعلمة على "نعم" على أكثر من جهاز داخل نفس الشبكة الفرعية. يفوز بالدعم = لا ؛ طباعة دعم الطابعة = اسم طباعة CUPS = CUPS ؛ ملف سجل السجلات = /var/log/samba/log.٪m syslog = 0 syslog فقط = no ؛ تكوين الربط للواجهات ، التي يتم الاستماع عليها ، إذا لم يتم تحديدها يستمع إلى جميع الواجهات ؛ واجهات = lo ، eth0 ؛ ربط الواجهات فقط = صحيح ؛ ؛ ؛ المسار = / فار / ليب / سامبا / طابعات ؛ قابل للتصفح = نعم ؛ ضيف طيب = نعم ؛ قراءة فقط = نعم ؛ قائمة الكتابة = الجذر ؛ إنشاء قناع = 0664 ؛ قناع الدليل = 0775 ؛ ؛ ؛ المسار = / tmp ؛ قابل للطباعة = نعم ؛ ضيف طيب = نعم ؛ قابل للتصفح = لا ؛ ؛ ؛ المسار = / media / cdrom ؛ قابل للتصفح = نعم ؛ للقراءة فقط = نعم ؛ ضيف طيب = نعم ؛ كرة القرص الصلب كرات الأسماء ، التي يراها العملاء ؛ المسار إلى مسار القرص المشترك = / media / sda1 ؛ هل يمكنني التصفح القابل للتصفح = نعم للقراءة فقط = لا يوجد ضيف طيب = لا يوجد قناع إنشاء = 0644 قناع الدليل = 0755 ؛ الارتباط باسم مستخدم أو مجموعة محددة ، والأسماء مفصولة بمسافة ؛ فرض المستخدم = user1 user2 ؛ مجموعة القوة = group1 group2 ؛ محرك أقراص ثابت آخر ، مشابه للمسار أعلاه = / media / sde1 قابل للتصفح = نعم للقراءة فقط = لا يوجد ضيف طيب = لا يوجد قناع إنشاء = 0644 قناع الدليل = 0755
الآن نحن بحاجة للتعامل مع المستخدمين.
يستخدم Samba المستخدمين الموجودين بالفعل في النظام ، خذ اسم المستخدم كمثال ، دعنا نقول أنه موجود بالفعل في النظام ، فأنت بحاجة إلى إضافته إلى قاعدة بيانات SMB وتعيين كلمة مرور للوصول إلى الموارد المشتركة ، قم بذلك باستخدام الأمر :
Smbpasswd -مستخدم
سيُطلب منك إدخال كلمة مرور ، وستتم إضافة المستخدم إلى قاعدة البيانات ، والآن تحتاج إلى تمكين هذا المستخدم.
مستخدم Smbpasswd
بعد ذلك ، سننشئ اسمًا مستعارًا لمستخدم اسم المستخدم من أجل تسهيل الوصول من جهاز Windows الذي لدينا ، على سبيل المثال ، مستخدم باسم Admin ، لذلك سننشئ ونعدل الملف / etc / samba / smbusers:
Sudo touch / etc / samba / smbusers sudo gedit / etc / samba / smbusers
اكتب سطرين للملف
# Unix_name = SMB_name1 مستخدم SMB_name2 = المسؤول
هذا يكمل التكوين ، إعادة تشغيل Samba.
يمكنك تثبيت أبسط واجهة مستخدم رسومية لـ Samba باستخدام الأمر:
سودو apt-get install system-config-samba
يبدأ بالأمر:
نظام سودو config-samba
يقوم بكتابة جميع التغييرات التي تم إجراؤها على ملف تكوين السامبا.
للإدارة عن بعد ، يعتبر Samba كواجهة ويب لـ Samba مثاليًا